diff --git a/.editorconfig b/.editorconfig index a8a3dad2..db7d37e9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,7 +7,6 @@ root = true # Default settings ############################################# [*] -# Every file is UTF-8 without a byte order mark, with LF line endings, on every platform. XAML included. charset = utf-8 end_of_line = lf insert_final_newline = true @@ -185,161 +184,170 @@ csharp_space_between_square_brackets = false dotnet_diagnostic.AvoidAsyncVoid.severity = suggestion ################### -# Microsoft.CodeAnalysis.NetAnalyzers (CA) +# Microsoft .NET Analyzers (CA) - Design Rules ################### -# Design dotnet_diagnostic.CA1000.severity = none # Do not declare static members on generic types — common factory pattern dotnet_diagnostic.CA1001.severity = error # Types that own disposable fields should be disposable dotnet_diagnostic.CA1002.severity = none # Do not expose generic lists — we deliberately expose List; interface-based collections are an older convention we don't follow -dotnet_diagnostic.CA1003.severity = none # Use generic event handler instances — covered by SST2304 -dotnet_diagnostic.CA1005.severity = none # Avoid excessive parameters on generic types — we deliberately expose 3+ type-parameter types (tuple-style handles, raw engine signals); the ergonomic guidance conflicts with that design +dotnet_diagnostic.CA1003.severity = error # Use generic event handler instances +dotnet_diagnostic.CA1005.severity = error # Avoid excessive parameters on generic types dotnet_diagnostic.CA1008.severity = error # Enums should have zero value dotnet_diagnostic.CA1010.severity = none # Collections should implement generic interface — we deliberately expose concrete collection types; interface-based collections are an older convention we don't follow -dotnet_diagnostic.CA1012.severity = none # Abstract types should not have public constructors — covered by SST1428 +dotnet_diagnostic.CA1012.severity = error # Abstract types should not have public constructors dotnet_diagnostic.CA1014.severity = none # Mark assemblies with CLSCompliantAttribute — we don't ship CLS-compliant assemblies dotnet_diagnostic.CA1016.severity = error # Mark assemblies with AssemblyVersionAttribute dotnet_diagnostic.CA1017.severity = none # Mark assemblies with ComVisibleAttribute — we don't ship COM-visible assemblies dotnet_diagnostic.CA1018.severity = error # Mark attributes with AttributeUsageAttribute -dotnet_diagnostic.CA1019.severity = none # Define accessors for attribute arguments — conflicts with SST2324, which caps an internal attribute's accessor at internal +dotnet_diagnostic.CA1019.severity = error # Define accessors for attribute arguments dotnet_diagnostic.CA1021.severity = none # Avoid out parameters - disabled - needed for the zero-allocation idiom in Try/Find APIs and other performance-critical paths dotnet_diagnostic.CA1024.severity = error # Use properties where appropriate dotnet_diagnostic.CA1027.severity = error # Mark enums with FlagsAttribute -dotnet_diagnostic.CA1028.severity = none # Enum storage should be Int32 — covered by SST2313 +dotnet_diagnostic.CA1028.severity = error # Enum storage should be Int32 dotnet_diagnostic.CA1030.severity = none # Use events where appropriate — we use Rx observables instead of CLR events dotnet_diagnostic.CA1031.severity = none # Do not catch general exception types — required at logging/dispose/IO boundaries -dotnet_diagnostic.CA1032.severity = none # Implement standard exception constructors — covered by SST1488 +dotnet_diagnostic.CA1032.severity = error # Implement standard exception constructors dotnet_diagnostic.CA1033.severity = none # Interface methods should be callable by child types — explicit interface implementations are a deliberate design choice dotnet_diagnostic.CA1034.severity = none # Nested types should not be visible — public nested types are sometimes the cleanest API (e.g. interface-scoped exception helpers) dotnet_diagnostic.CA1036.severity = none # Override methods on comparable types — relational operators rarely meaningful for our types -dotnet_diagnostic.CA1040.severity = none # Avoid empty interfaces — duplicate of SST1437 (canonical); marker interfaces (IActivatableView etc.) are deliberate public API -dotnet_diagnostic.CA1041.severity = none # Provide ObsoleteAttribute message — covered by SST2308 +dotnet_diagnostic.CA1040.severity = error # Avoid empty interfaces +dotnet_diagnostic.CA1041.severity = error # Provide ObsoleteAttribute message dotnet_diagnostic.CA1043.severity = error # Use integral or string argument for indexers -dotnet_diagnostic.CA1044.severity = none # Properties should not be write only — covered by SST1421 -dotnet_diagnostic.CA1045.severity = none # Do not pass types by reference — we deliberately use ref-passing static helpers so they carry only the data they touch; data-oriented layout is the default here +dotnet_diagnostic.CA1044.severity = error # Properties should not be write only +dotnet_diagnostic.CA1045.severity = error # Do not pass types by reference dotnet_diagnostic.CA1046.severity = error # Do not overload operator equals on reference types -dotnet_diagnostic.CA1047.severity = none # Do not declare protected member in sealed type — covered by SST1427 -dotnet_diagnostic.CA1048.severity = none # Do not declare virtual members in sealed types — covered by SST1491 -dotnet_diagnostic.CA1050.severity = none # Declare types in namespaces — covered by SST2312 -dotnet_diagnostic.CA1051.severity = none # Duplicate of SST1401 (canonical) — do not declare visible instance fields -dotnet_diagnostic.CA1052.severity = none # Static holder types should be sealed — covered by SST1432 -dotnet_diagnostic.CA1053.severity = none # Static holder types should not have constructors — covered by SST1432 +dotnet_diagnostic.CA1047.severity = error # Do not declare protected member in sealed type +dotnet_diagnostic.CA1048.severity = error # Do not declare virtual members in sealed types +dotnet_diagnostic.CA1050.severity = error # Declare types in namespaces +dotnet_diagnostic.CA1051.severity = error # Do not declare visible instance fields +dotnet_diagnostic.CA1052.severity = error # Static holder types should be sealed +dotnet_diagnostic.CA1053.severity = error # Static holder types should not have constructors dotnet_diagnostic.CA1054.severity = suggestion # URI parameters should not be strings dotnet_diagnostic.CA1055.severity = suggestion # URI return values should not be strings dotnet_diagnostic.CA1056.severity = suggestion # URI properties should not be strings dotnet_diagnostic.CA1058.severity = error # Types should not extend certain base types dotnet_diagnostic.CA1059.severity = error # Members should not expose certain concrete types dotnet_diagnostic.CA1060.severity = error # Move P/Invokes to NativeMethods class -dotnet_diagnostic.CA1061.severity = none # Do not hide base class methods — covered by SST2427 +dotnet_diagnostic.CA1061.severity = error # Do not hide base class methods dotnet_diagnostic.CA1062.severity = none # Validate arguments of public methods - Nullable=enable + we own every consumer, so the compiler already guarantees non-null params -dotnet_diagnostic.CA1063.severity = none # Implement IDisposable correctly — covered by SST2300 +dotnet_diagnostic.CA1063.severity = error # Implement IDisposable correctly dotnet_diagnostic.CA1064.severity = error # Exceptions should be public -dotnet_diagnostic.CA1065.severity = none # Do not raise exceptions in unexpected locations — covered by SST1485 +dotnet_diagnostic.CA1065.severity = error # Do not raise exceptions in unexpected locations dotnet_diagnostic.CA1066.severity = error # Implement IEquatable when overriding Equals dotnet_diagnostic.CA1067.severity = error # Override Equals when implementing IEquatable dotnet_diagnostic.CA1068.severity = error # CancellationToken parameters must come last dotnet_diagnostic.CA1069.severity = error # Enums should not have duplicate values dotnet_diagnostic.CA1070.severity = error # Do not declare event fields as virtual -# Globalization +################### +# Microsoft .NET Analyzers (CA) - Globalization Rules +################### dotnet_diagnostic.CA1303.severity = none # Do not pass literals as localized parameters — we don't ship localized resources -dotnet_diagnostic.CA1307.severity = none # Covered by PSH1207 (canonical) dotnet_diagnostic.CA1308.severity = none # Normalize strings to uppercase — ToLowerInvariant is correct for filesystem path / cache key normalization -dotnet_diagnostic.CA1310.severity = none # Covered by PSH1207 (canonical) -# Interoperability +################### +# Microsoft .NET Analyzers (CA) - Interoperability Rules +################### dotnet_diagnostic.CA1401.severity = error # P/Invokes should not be visible -# Maintainability -dotnet_diagnostic.CA1500.severity = none # Variable names should not match field names — covered by SST1484 -dotnet_diagnostic.CA1501.severity = none # Covered by SST1446 (canonical) -dotnet_diagnostic.CA1502.severity = none # Covered by SST1442 (canonical) +################### +# Microsoft .NET Analyzers (CA) - Maintainability Rules +################### +dotnet_diagnostic.CA1500.severity = error # Variable names should not match field names +dotnet_diagnostic.CA1501.severity = none # Avoid excessive inheritance — disabled because the analyzer noticeably slows down the build +dotnet_diagnostic.CA1502.severity = none # Avoid excessive complexity — disabled because the analyzer noticeably slows down the build dotnet_diagnostic.CA1505.severity = error # Avoid unmaintainable code dotnet_diagnostic.CA1506.severity = none # Avoid excessive class coupling — adds little signal here, mostly trips on legitimate orchestration code -dotnet_diagnostic.CA1507.severity = none # Use nameof in place of string — covered by SST1463 +dotnet_diagnostic.CA1507.severity = error # Use nameof in place of string dotnet_diagnostic.CA1508.severity = error # Avoid dead conditional code dotnet_diagnostic.CA1509.severity = error # Invalid entry in code metrics configuration file -dotnet_diagnostic.CA1510.severity = none # Covered by PSH1409 (canonical) -dotnet_diagnostic.CA1511.severity = none # Covered by PSH1409 (canonical) -dotnet_diagnostic.CA1512.severity = none # Covered by PSH1409 (canonical) -dotnet_diagnostic.CA1513.severity = none # Covered by PSH1409 (canonical) -dotnet_diagnostic.CA1514.severity = none # Avoid redundant length argument — covered by PSH1220 +dotnet_diagnostic.CA1510.severity = none # Use ArgumentNullException throw helper — disabled because we target older TFMs and use ArgumentExceptionHelper for cross-platform parity +dotnet_diagnostic.CA1511.severity = none # Use ArgumentException throw helper — disabled because we target older TFMs and use ArgumentExceptionHelper for cross-platform parity +dotnet_diagnostic.CA1512.severity = none # Use ArgumentOutOfRangeException throw helper — disabled because we target older TFMs and use ArgumentExceptionHelper for cross-platform parity +dotnet_diagnostic.CA1513.severity = none # Use ObjectDisposedException throw helper — disabled because we target older TFMs and use ArgumentExceptionHelper for cross-platform parity +dotnet_diagnostic.CA1514.severity = error # Avoid redundant length argument dotnet_diagnostic.CA1515.severity = none # Consider making public types internal — interferes with tests and reflection-discovered types (BenchmarkDotNet, TUnit, etc.) dotnet_diagnostic.CA1516.severity = error # Use cross-platform intrinsics -# Naming +################### +# Microsoft .NET Analyzers (CA) - Naming Rules +################### dotnet_diagnostic.CA1710.severity = suggestion # Identifiers should have correct suffix dotnet_diagnostic.CA1724.severity = none # Type Names Should Not Match Namespaces — namespace/type name overlap is intentional API surface -# Performance -dotnet_diagnostic.CA1802.severity = none # Use literals where appropriate — covered by PSH1402 -dotnet_diagnostic.CA1805.severity = none # Do not initialize unnecessarily — covered by PSH1403 +################### +# Microsoft .NET Analyzers (CA) - Performance Rules +################### +dotnet_diagnostic.CA1802.severity = error # Use literals where appropriate +dotnet_diagnostic.CA1805.severity = error # Do not initialize unnecessarily dotnet_diagnostic.CA1806.severity = error # Do not ignore method results dotnet_diagnostic.CA1810.severity = none # Initialize reference type static fields inline — explicit static constructors are deliberate in some types dotnet_diagnostic.CA1812.severity = error # Avoid uninstantiated internal classes -dotnet_diagnostic.CA1813.severity = none # Avoid unsealed attributes — covered by PSH1401 -dotnet_diagnostic.CA1814.severity = none # Prefer jagged arrays over multidimensional — covered by PSH1020 -dotnet_diagnostic.CA1815.severity = none # Override equals and operator equals on value types — covered by PSH1005 +dotnet_diagnostic.CA1813.severity = error # Avoid unsealed attributes +dotnet_diagnostic.CA1814.severity = error # Prefer jagged arrays over multidimensional +dotnet_diagnostic.CA1815.severity = error # Override equals and operator equals on value types dotnet_diagnostic.CA1819.severity = none # Properties should not return arrays — incompatible with the RxUI/sqlite-net mapping style we use throughout the codebase -dotnet_diagnostic.CA1820.severity = none # Test for empty strings using string length — covered by PSH1204 -dotnet_diagnostic.CA1821.severity = none # Remove empty finalizers — covered by PSH1002 -dotnet_diagnostic.CA1822.severity = none # Mark members as static — covered by PSH1414 -dotnet_diagnostic.CA1823.severity = none # Avoid unused private fields — covered by SST1441 +dotnet_diagnostic.CA1820.severity = error # Test for empty strings using string length +dotnet_diagnostic.CA1821.severity = error # Remove empty finalizers +dotnet_diagnostic.CA1822.severity = error # Mark members as static +dotnet_diagnostic.CA1823.severity = error # Avoid unused private fields dotnet_diagnostic.CA1824.severity = error # Mark assemblies with NeutralResourcesLanguageAttribute -dotnet_diagnostic.CA1825.severity = none # Avoid zero-length array allocations — covered by PSH1001 -dotnet_diagnostic.CA1826.severity = none # Use property instead of Linq Enumerable method — covered by PSH1103 -dotnet_diagnostic.CA1827.severity = none # Do not use Count/LongCount when Any can be used — covered by PSH1119 -dotnet_diagnostic.CA1828.severity = none # Do not use CountAsync/LongCountAsync when AnyAsync can be used — covered by PSH1126 -dotnet_diagnostic.CA1829.severity = none # Use Length/Count property instead of Enumerable.Count — covered by PSH1103 -dotnet_diagnostic.CA1830.severity = none # Prefer strongly-typed Append/Insert overloads on StringBuilder — covered by PSH1202 -dotnet_diagnostic.CA1831.severity = none # Use AsSpan instead of Range-based indexers for string — covered by PSH1212 -dotnet_diagnostic.CA1832.severity = none # Use AsSpan or AsMemory instead of Range-based indexers for getting ReadOnlySpan or ReadOnlyMemory portion of an array — covered by PSH1019 -dotnet_diagnostic.CA1833.severity = none # Use AsSpan or AsMemory instead of Range-based indexers for getting Span or Memory portion of an array — conflicts with PSH1019, which owns the array range-indexer rewrite and refuses it for mutable Span/Memory targets -dotnet_diagnostic.CA1834.severity = none # Use StringBuilder.Append(char) for single character strings — covered by PSH1202 -dotnet_diagnostic.CA1835.severity = none # Prefer the memory-based overloads of ReadAsync/WriteAsync methods in stream-based classes — covered by PSH1314 -dotnet_diagnostic.CA1836.severity = none # Prefer IsEmpty over Count when available — covered by PSH1117 -dotnet_diagnostic.CA1837.severity = none # Use Environment.ProcessId — covered by PSH1405 +dotnet_diagnostic.CA1825.severity = error # Avoid zero-length array allocations +dotnet_diagnostic.CA1826.severity = error # Use property instead of Linq Enumerable method +dotnet_diagnostic.CA1827.severity = error # Do not use Count/LongCount when Any can be used +dotnet_diagnostic.CA1828.severity = error # Do not use CountAsync/LongCountAsync when AnyAsync can be used +dotnet_diagnostic.CA1829.severity = error # Use Length/Count property instead of Enumerable.Count method +dotnet_diagnostic.CA1830.severity = error # Prefer strongly-typed Append and Insert method overloads on StringBuilder +dotnet_diagnostic.CA1831.severity = error # Use AsSpan instead of Range-based indexers for string when appropriate +dotnet_diagnostic.CA1832.severity = error # Use AsSpan or AsMemory instead of Range-based indexers for getting ReadOnlySpan or ReadOnlyMemory portion of an array +dotnet_diagnostic.CA1833.severity = error # Use AsSpan or AsMemory instead of Range-based indexers for getting Span or Memory portion of an array +dotnet_diagnostic.CA1834.severity = error # Use StringBuilder.Append(char) for single character strings +dotnet_diagnostic.CA1835.severity = error # Prefer the memory-based overloads of ReadAsync/WriteAsync methods in stream-based classes +dotnet_diagnostic.CA1836.severity = error # Prefer IsEmpty over Count when available +dotnet_diagnostic.CA1837.severity = error # Use Environment.ProcessId instead of Process.GetCurrentProcess().Id dotnet_diagnostic.CA1838.severity = error # Avoid StringBuilder parameters for P/Invokes -dotnet_diagnostic.CA1839.severity = none # Use Environment.ProcessPath — covered by PSH1405 -dotnet_diagnostic.CA1840.severity = none # Use Environment.CurrentManagedThreadId — covered by PSH1405 -dotnet_diagnostic.CA1841.severity = none # Prefer Dictionary.Contains methods — covered by PSH1407 -dotnet_diagnostic.CA1842.severity = none # Do not use 'WhenAll' with a single task — covered by PSH1301 -dotnet_diagnostic.CA1843.severity = none # Do not use 'WaitAll' with a single task — covered by PSH1301 +dotnet_diagnostic.CA1839.severity = error # Use Environment.ProcessPath instead of Process.GetCurrentProcess().MainModule.FileName +dotnet_diagnostic.CA1840.severity = error # Use Environment.CurrentManagedThreadId instead of Thread.CurrentThread.ManagedThreadId +dotnet_diagnostic.CA1841.severity = error # Prefer Dictionary.Contains methods +dotnet_diagnostic.CA1842.severity = error # Do not use 'WhenAll' with a single task +dotnet_diagnostic.CA1843.severity = error # Do not use 'WaitAll' with a single task dotnet_diagnostic.CA1844.severity = error # Provide memory-based overrides of async methods when subclassing 'Stream' -dotnet_diagnostic.CA1845.severity = none # Use span-based 'string.Concat' — covered by PSH1222 -dotnet_diagnostic.CA1846.severity = none # Prefer AsSpan over Substring — covered by PSH1212 -dotnet_diagnostic.CA1847.severity = none # Covered by PSH1201 (canonical) +dotnet_diagnostic.CA1845.severity = error # Use span-based 'string.Concat' +dotnet_diagnostic.CA1846.severity = error # Prefer AsSpan over Substring +dotnet_diagnostic.CA1847.severity = none # Use char literal for a single character lookup — disabled because the string.Contains(char) overload doesn't exist on .NET Framework / netstandard2.0 and we target both dotnet_diagnostic.CA1848.severity = error # Use the LoggerMessage delegates -dotnet_diagnostic.CA1849.severity = none # Call async methods when in an async method — covered by PSH1313 -dotnet_diagnostic.CA1850.severity = none # Prefer static HashData method over ComputeHash — covered by PSH1400 +dotnet_diagnostic.CA1849.severity = error # Call async methods when in an async method +dotnet_diagnostic.CA1850.severity = error # Prefer static HashData method over ComputeHash dotnet_diagnostic.CA1851.severity = error # Possible multiple enumerations of IEnumerable collection -dotnet_diagnostic.CA1852.severity = none # Seal internal types — covered by PSH1411 +dotnet_diagnostic.CA1852.severity = error # Seal internal types dotnet_code_quality.CA1852.api_surface = private, internal # only flag non-public classes; public classes stay open for inheritance -dotnet_diagnostic.CA1853.severity = none # Unnecessary call to 'Dictionary.ContainsKey(key)' — covered by PSH1105 -dotnet_diagnostic.CA1854.severity = none # Prefer the IDictionary.TryGetValue method — covered by PSH1104 +dotnet_diagnostic.CA1853.severity = error # Unnecessary call to 'Dictionary.ContainsKey(key)' +dotnet_diagnostic.CA1854.severity = error # Prefer the IDictionary.TryGetValue(TKey, out TValue) method dotnet_diagnostic.CA1855.severity = error # Prefer 'Clear' over 'Fill' dotnet_diagnostic.CA1856.severity = error # Incorrect usage of ConstantExpected attribute dotnet_diagnostic.CA1857.severity = error # A constant is expected for the parameter -dotnet_diagnostic.CA1858.severity = none # Use 'StartsWith' instead of 'IndexOf' — covered by PSH1221 +dotnet_diagnostic.CA1858.severity = error # Use 'StartsWith' instead of 'IndexOf' dotnet_diagnostic.CA1859.severity = error # Use concrete types when possible for improved performance -dotnet_diagnostic.CA1860.severity = none # Avoid using 'Enumerable.Any()' extension method — covered by PSH1103 -dotnet_diagnostic.CA1861.severity = none # Avoid constant arrays as arguments — covered by PSH1004 -dotnet_diagnostic.CA1862.severity = none # Use the 'StringComparison' overloads for case-insensitive comparisons — covered by PSH1200 -dotnet_diagnostic.CA1863.severity = none # Use 'CompositeFormat' — covered by PSH1223 -dotnet_diagnostic.CA1864.severity = none # Prefer the 'IDictionary.TryAdd' method — covered by PSH1115 -dotnet_diagnostic.CA1865.severity = none # Covered by PSH1201 (canonical) -dotnet_diagnostic.CA1866.severity = none # Covered by PSH1201 (canonical) -dotnet_diagnostic.CA1867.severity = none # Covered by PSH1201 (canonical) -dotnet_diagnostic.CA1868.severity = none # Unnecessary call to 'Contains' for sets — covered by PSH1105 -dotnet_diagnostic.CA1869.severity = none # Cache and reuse 'JsonSerializerOptions' instances — covered by PSH1416 -dotnet_diagnostic.CA1870.severity = none # Use a cached 'SearchValues' instance — covered by PSH1213 +dotnet_diagnostic.CA1860.severity = error # Avoid using 'Enumerable.Any()' extension method +dotnet_diagnostic.CA1861.severity = error # Avoid constant arrays as arguments +dotnet_diagnostic.CA1862.severity = error # Use the 'StringComparison' method overloads to perform case-insensitive string comparisons +dotnet_diagnostic.CA1863.severity = error # Use 'CompositeFormat' +dotnet_diagnostic.CA1864.severity = error # Prefer the 'IDictionary.TryAdd(TKey, TValue)' method +dotnet_diagnostic.CA1865.severity = none # Use char overload (string.StartsWith) — disabled because the string.StartsWith(char) overload doesn't exist on .NET Framework / netstandard2.0 and we target both +dotnet_diagnostic.CA1866.severity = none # Use char overload (string.EndsWith) — disabled because the string.EndsWith(char) overload doesn't exist on .NET Framework / netstandard2.0 and we target both +dotnet_diagnostic.CA1867.severity = none # Use char overload (string.IndexOf / string.LastIndexOf) — disabled because the char overloads don't exist on .NET Framework / netstandard2.0 and we target both +dotnet_diagnostic.CA1868.severity = error # Unnecessary call to 'Contains' for sets +dotnet_diagnostic.CA1869.severity = error # Cache and reuse 'JsonSerializerOptions' instances +dotnet_diagnostic.CA1870.severity = error # Use a cached 'SearchValues' instance dotnet_diagnostic.CA1871.severity = error # Do not pass a nullable struct to 'ArgumentNullException.ThrowIfNull' -dotnet_diagnostic.CA1872.severity = none # Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString' — covered by PSH1224 -dotnet_diagnostic.CA1873.severity = none # Avoid potentially expensive evaluation of arguments to 'Debug.Assert' — covered by PSH1417 -dotnet_diagnostic.CA1874.severity = none # Use 'Regex.IsMatch' — covered by PSH1406 -dotnet_diagnostic.CA1875.severity = none # Use 'Regex.Count' — covered by PSH1406 -dotnet_diagnostic.CA1877.severity = none # Use 'Encoding.GetString' instead of 'Encoding.GetChars' — covered by PSH1225 +dotnet_diagnostic.CA1872.severity = error # Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString' +dotnet_diagnostic.CA1873.severity = error # Avoid potentially expensive evaluation of arguments to 'Debug.Assert' +dotnet_diagnostic.CA1874.severity = error # Use 'Regex.IsMatch' +dotnet_diagnostic.CA1875.severity = error # Use 'Regex.Count' +dotnet_diagnostic.CA1877.severity = error # Use 'Encoding.GetString' instead of 'Encoding.GetChars' -# Reliability +################### +# Microsoft .NET Analyzers (CA) - Reliability Rules +################### dotnet_diagnostic.CA2000.severity = suggestion # Dispose objects before losing scope dotnet_diagnostic.CA2002.severity = error # Do not lock on objects with weak identity dotnet_diagnostic.CA2007.severity = none # Do not directly await a Task — Rx and library callers drive synchronization context themselves @@ -362,39 +370,41 @@ dotnet_diagnostic.CA2024.severity = error # Do not use 'StreamReader.EndOfStream dotnet_diagnostic.CA2025.severity = error # Do not pass 'IDisposable' instances into unawaited tasks dotnet_diagnostic.CA2026.severity = error # Do not use methods or types annotated with [RequiresDynamicCode] in code that uses [RequiresDynamicCode] -# Usage +################### +# Microsoft .NET Analyzers (CA) - Usage Rules +################### dotnet_diagnostic.CA1801.severity = error # Review unused parameters dotnet_code_quality.CA1801.api_surface = private, internal # only flag non-public APIs so we don't break public signatures dotnet_diagnostic.CA1816.severity = error # Call GC.SuppressFinalize correctly -dotnet_diagnostic.CA2200.severity = none # Rethrow to preserve stack details — covered by SST1430 +dotnet_diagnostic.CA2200.severity = error # Rethrow to preserve stack details dotnet_diagnostic.CA2201.severity = error # Do not raise reserved exception types dotnet_diagnostic.CA2207.severity = error # Initialize value type static fields inline dotnet_diagnostic.CA2208.severity = none # Instantiate argument exceptions correctly — too sensitive: flags valid context-forwarding nameof(arg.Property) patterns -dotnet_diagnostic.CA2211.severity = none # Non-constant fields should not be visible — covered by SST1499 +dotnet_diagnostic.CA2211.severity = error # Non-constant fields should not be visible dotnet_diagnostic.CA2213.severity = error # Disposable fields should be disposed -dotnet_diagnostic.CA2214.severity = none # Do not call overridable methods in constructors — covered by SST1483 +dotnet_diagnostic.CA2214.severity = error # Do not call overridable methods in constructors dotnet_diagnostic.CA2215.severity = error # Dispose methods should call base class dispose -dotnet_diagnostic.CA2216.severity = none # Disposable types should declare finalizer — conflicts with SST2317, which owns the owned-native-handle shape and prescribes a SafeHandle instead of a finalizer -dotnet_diagnostic.CA2217.severity = none # Do not mark enums with FlagsAttribute — covered by SST2303 +dotnet_diagnostic.CA2216.severity = error # Disposable types should declare finalizer +dotnet_diagnostic.CA2217.severity = error # Do not mark enums with FlagsAttribute dotnet_diagnostic.CA2218.severity = error # Override GetHashCode on overriding Equals dotnet_diagnostic.CA2219.severity = error # Do not raise exceptions in finally clauses -dotnet_diagnostic.CA2224.severity = none # Override Equals on overloading operator equals — covered by SST2302 +dotnet_diagnostic.CA2224.severity = error # Override Equals on overloading operator equals dotnet_diagnostic.CA2225.severity = error # Operator overloads have named alternates dotnet_diagnostic.CA2226.severity = error # Operators should have symmetrical overloads dotnet_diagnostic.CA2227.severity = none # Collection properties should be read only — settable collection properties are common in our DTOs and config types dotnet_diagnostic.CA2231.severity = error # Overload operator equals on overriding ValueType.Equals dotnet_diagnostic.CA2234.severity = error # Pass System.Uri objects instead of strings dotnet_diagnostic.CA2241.severity = error # Provide correct arguments to formatting methods -dotnet_diagnostic.CA2242.severity = none # Test for NaN correctly — covered by SST1473 +dotnet_diagnostic.CA2242.severity = error # Test for NaN correctly dotnet_diagnostic.CA2243.severity = error # Attribute string literals should parse correctly dotnet_diagnostic.CA2244.severity = error # Do not duplicate indexed element initializations -dotnet_diagnostic.CA2245.severity = none # Do not assign a property to itself — covered by SST1189 +dotnet_diagnostic.CA2245.severity = error # Do not assign a property to itself dotnet_diagnostic.CA2246.severity = error # Do not assign a symbol and its member in the same statement dotnet_diagnostic.CA2247.severity = error # Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum dotnet_diagnostic.CA2248.severity = error # Provide correct enum argument to Enum.HasFlag dotnet_diagnostic.CA2249.severity = error # Use String.Contains instead of String.IndexOf for substring checks dotnet_diagnostic.CA2250.severity = error # Use ThrowIfCancellationRequested -dotnet_diagnostic.CA2251.severity = none # Covered by PSH1216 (canonical) +dotnet_diagnostic.CA2251.severity = error # Use String.Equals over String.Compare dotnet_diagnostic.CA2252.severity = error # Opt in to preview features before using them dotnet_diagnostic.CA2253.severity = error # Named placeholders should not be numeric values dotnet_diagnostic.CA2254.severity = error # Template should be a static expression @@ -415,7 +425,9 @@ dotnet_diagnostic.CA2268.severity = error # Use 'string.Equals(string, string, S # Skipped (deprecated ISerializable formatter): CA2229 Implement serialization constructors, # CA2235 Mark all non-serializable fields, CA2237 Mark ISerializable types with SerializableAttribute. -# Security +################### +# Microsoft .NET Analyzers (CA) - Security Rules +################### # SQL Injection & Command Injection dotnet_diagnostic.CA2100.severity = error # Review SQL queries for security vulnerabilities @@ -538,9 +550,8 @@ dotnet_diagnostic.CA2153.severity = error # Do not catch corrupted state excepti dotnet_diagnostic.CA5367.severity = error # Do not serialize types with pointer fields ################### -# Microsoft .NET SDK Diagnostics (SYSLIB) +# Microsoft .NET Runtime Obsoletions (SYSLIB0xxx) ################### -# Runtime obsoletions dotnet_diagnostic.SYSLIB0001.severity = error # The UTF-7 encoding is insecure and should not be used dotnet_diagnostic.SYSLIB0002.severity = error # PrincipalPermissionAttribute is not honored by the runtime and must not be used dotnet_diagnostic.SYSLIB0003.severity = error # Code Access Security (CAS) is not supported or honored by the runtime @@ -603,7 +614,9 @@ dotnet_diagnostic.SYSLIB0059.severity = error # SystemEvents.EventsThreadShutdow dotnet_diagnostic.SYSLIB0060.severity = error # Constructors of DirectoryServices.ActiveDirectory.ConfigurationContext are obsolete dotnet_diagnostic.SYSLIB0061.severity = error # CryptographyConfig.AddOID and AddAlgorithm methods are obsolete -# Source generators +################### +# Microsoft .NET Source Generator Diagnostics (SYSLIB1xxx) +################### # LoggerMessage source generator dotnet_diagnostic.SYSLIB1001.severity = error # Logging method names cannot start with _ dotnet_diagnostic.SYSLIB1002.severity = error # Don't include log level parameters as templates in the logging message @@ -691,435 +704,165 @@ dotnet_diagnostic.SYSLIB1103.severity = error # Configuration binding source gen dotnet_diagnostic.SYSLIB1104.severity = error # Configuration binding source generator: language version is too low ################### -# Microsoft .NET Code Style Analyzers (IDE) +# Microsoft .NET Style Rules (IDExxxx) - Language Rules ################### -# Language rules # EnforceCodeStyleInBuild=true (set in Directory.Build.props) promotes these # IDE rules into `dotnet build` so they fire at compile time, not just in the # IDE. We enable the ones that are unambiguous wins and skip the rules that -# conflict with an existing convention (SA1101, SA1200, SA1206, SA1400, SA1633, +# conflict with an existing convention (SST1117, SST1200, SST1206, SST1400, SST1633, # etc.) so we don't double-report. # Bug catchers — always error. -dotnet_diagnostic.IDE0035.severity = none # Remove unreachable code — covered by SST1453 -dotnet_diagnostic.IDE0043.severity = none # Format string contains invalid placeholder — covered by SST1454 -dotnet_diagnostic.IDE0052.severity = none # Remove unread private member — covered by SST1441 +dotnet_diagnostic.IDE0035.severity = none # Remove unreachable code +dotnet_diagnostic.IDE0043.severity = none # Format string contains invalid placeholder +dotnet_diagnostic.IDE0051.severity = none # Remove unused private member +dotnet_diagnostic.IDE0052.severity = none # Remove unread private member +dotnet_diagnostic.IDE0076.severity = none # Remove invalid global SuppressMessage attribute +dotnet_diagnostic.IDE0077.severity = none # Avoid legacy format target in global SuppressMessage attribute +dotnet_diagnostic.IDE0080.severity = none # Remove unnecessary suppression operator # Simplification / cleanup. -dotnet_diagnostic.IDE0002.severity = none # Simplify member access — covered by SST1117 -dotnet_diagnostic.IDE0004.severity = none # Remove unnecessary cast — covered by SST1175 -dotnet_diagnostic.IDE0016.severity = none # Use throw expression — covered by SST2207 -dotnet_diagnostic.IDE0019.severity = none # Use pattern matching to avoid 'as' followed by a 'null' check — covered by SST2005/SST2274 -dotnet_diagnostic.IDE0028.severity = none # Use collection initializers — covered by SST1194 -dotnet_diagnostic.IDE0031.severity = none # Use null propagation — covered by SST1196 -dotnet_diagnostic.IDE0038.severity = none # Use pattern matching ('is' check without a cast) — covered by SST2007 -dotnet_diagnostic.IDE0041.severity = none # Use 'is null' check — covered by SST1149/SST2231/SST2282 -dotnet_diagnostic.IDE0042.severity = none # Deconstruct variable declaration — covered by SST2214 -dotnet_diagnostic.IDE0044.severity = none # Add readonly modifier — covered by SST1424 -dotnet_diagnostic.IDE0047.severity = none # Remove unnecessary parentheses — covered by SST1459 -dotnet_diagnostic.IDE0049.severity = none # Use language keywords instead of framework type names for type references — covered by SST1121 -dotnet_diagnostic.IDE0057.severity = none # Use range operator — covered by SST2204 -dotnet_diagnostic.IDE0059.severity = none # Remove unnecessary value assignment — covered by SST2222 -dotnet_diagnostic.IDE0064.severity = none # Make struct fields writable — flag readonly-but-mutable struct fields where intent diverges from declaration -dotnet_diagnostic.IDE0066.severity = none # Use switch expression — covered by SST2201 -dotnet_diagnostic.IDE0075.severity = none # Simplify conditional expression — covered by SST1182 -dotnet_diagnostic.IDE0078.severity = none # Use pattern matching — covered by SST2006/SST2231 -dotnet_diagnostic.IDE0084.severity = none # Use pattern matching ('IsNot' operator) -dotnet_diagnostic.IDE0120.severity = none # Simplify LINQ expression — covered by PSH1100/PSH1101 -dotnet_diagnostic.IDE0221.severity = none # Add explicit cast — covered by SST2226 -dotnet_diagnostic.IDE0250.severity = none # Make struct 'readonly' — covered by PSH1014 -dotnet_diagnostic.IDE0260.severity = none # Use pattern matching — covered by SST2006/SST2231 - -# Disabled — conflict with an existing SA/CA rule or project convention. -dotnet_diagnostic.IDE0007.severity = none # Use var — we don't force var in either direction -dotnet_diagnostic.IDE0008.severity = none # Use explicit type — we don't force var in either direction -dotnet_diagnostic.IDE0009.severity = none # Member access should be qualified — SA1101 = none -dotnet_diagnostic.IDE0021.severity = none # Use expression body for constructors — covered by SST2276 (opt-in) -dotnet_diagnostic.IDE0022.severity = none # Use expression body for methods — covered by SST2275 -dotnet_diagnostic.IDE0023.severity = none # Use expression body for conversion operators — covered by SST2278 (opt-in) -dotnet_diagnostic.IDE0024.severity = none # Use expression body for operators — covered by SST2277 (opt-in) -dotnet_diagnostic.IDE0025.severity = none # Use expression body for properties — covered by SST2279 -dotnet_diagnostic.IDE0026.severity = none # Use expression body for indexers — covered by SST2280 -dotnet_diagnostic.IDE0048.severity = none # Add parentheses for clarity — preference not enforced -dotnet_diagnostic.IDE0055.severity = none # Formatting — StyleCop SA rules own formatting -dotnet_diagnostic.IDE0058.severity = none # Remove unnecessary expression value — covered by SST2221 -dotnet_diagnostic.IDE0060.severity = none # Remove unused parameter — CA1801 handles (with api_surface config) -dotnet_diagnostic.IDE0061.severity = none # Use expression body for local function — covered by SST2281 -dotnet_diagnostic.IDE0079.severity = none # Remove unnecessary suppression — can misfire on multi-TFM suppressions -dotnet_diagnostic.IDE0130.severity = none # Namespace does not match folder structure — we don't enforce strict mirror -dotnet_diagnostic.IDE0160.severity = none # Use block-scoped namespace — we use file-scoped (IDE0161) -dotnet_diagnostic.IDE0210.severity = none # Convert to top-level statements — we use Main style -dotnet_diagnostic.IDE0211.severity = none # Convert to 'Program.Main' style — we use Main style -dotnet_diagnostic.IDE0300.severity = none # Use collection expression for array — covered by SST2101 -dotnet_diagnostic.IDE0306.severity = none # Use collection expression for new — covered by SST2101 -dotnet_diagnostic.IDE0320.severity = none # Make anonymous function static — covered by PSH1000 -dotnet_diagnostic.IDE0050.severity = none # Convert anonymous type to tuple — covered by SST2224 -dotnet_diagnostic.IDE0310.severity = none # Convert lambda expression to method group — handled by RCS1207 -dotnet_diagnostic.IDE0360.severity = none # Simplify property accessor — covered by SST2219 -dotnet_diagnostic.IDE0370.severity = none # Remove unnecessary suppression (null-forgiving operator) — disabled for the same reason as RCS1249: multi-TFM nullability annotations can differ per platform - -# Language and unnecessary code rules. dotnet_diagnostic.IDE0001.severity = none # Simplify name -dotnet_diagnostic.IDE0003.severity = none # Name can be simplified -dotnet_diagnostic.IDE0005.severity = none # Remove unnecessary import -dotnet_diagnostic.IDE0010.severity = none # Add missing cases to switch statement -dotnet_diagnostic.IDE0011.severity = none # Add braces +dotnet_diagnostic.IDE0002.severity = none # Simplify member access +dotnet_diagnostic.IDE0004.severity = none # Remove unnecessary cast — disabled because we deliberately keep explicit casts in Apple platform-specific paths and other reflection/marshalling sites where the analyzer's "redundant" judgement is wrong +dotnet_diagnostic.IDE0005.severity = none # Remove unnecessary import - DUPLICATE S1128 (slower: 2.364s vs 551ms) +dotnet_diagnostic.IDE0016.severity = none # Use throw expression dotnet_diagnostic.IDE0017.severity = none # Use object initializers dotnet_diagnostic.IDE0018.severity = none # Inline variable declaration -dotnet_diagnostic.IDE0020.severity = none # Use pattern matching to avoid is check followed by a cast (with variable) -dotnet_diagnostic.IDE0027.severity = none # Use expression body for accessors +dotnet_diagnostic.IDE0019.severity = none # Use pattern matching to avoid 'as' followed by a 'null' check +dotnet_diagnostic.IDE0020.severity = none # Use pattern matching to avoid 'is' check followed by a cast +dotnet_diagnostic.IDE0028.severity = none # Use collection initializers dotnet_diagnostic.IDE0029.severity = none # Null check can be simplified -dotnet_diagnostic.IDE0030.severity = none # Null check can be simplified +dotnet_diagnostic.IDE0030.severity = none # Use coalesce expression (nullable types) +dotnet_diagnostic.IDE0031.severity = none # Use null propagation — covered by SST1196 dotnet_diagnostic.IDE0032.severity = none # Use auto property dotnet_diagnostic.IDE0033.severity = none # Use explicitly provided tuple name dotnet_diagnostic.IDE0034.severity = none # Simplify default expression -dotnet_diagnostic.IDE0036.severity = none # Order modifiers dotnet_diagnostic.IDE0037.severity = none # Use inferred member name -dotnet_diagnostic.IDE0039.severity = none # Use local function instead of lambda -dotnet_diagnostic.IDE0040.severity = none # Add accessibility modifiers -dotnet_diagnostic.IDE0045.severity = none # Use conditional expression for assignment -dotnet_diagnostic.IDE0046.severity = none # Use conditional expression for return -dotnet_diagnostic.IDE0051.severity = none # Remove unused private member -dotnet_diagnostic.IDE0053.severity = none # Use expression body for lambdas +dotnet_diagnostic.IDE0038.severity = none # Use pattern matching ('is' check without a cast) +dotnet_diagnostic.IDE0041.severity = none # Use 'is null' check +dotnet_diagnostic.IDE0042.severity = none # Deconstruct variable declaration +dotnet_diagnostic.IDE0044.severity = none # Add readonly modifier +dotnet_diagnostic.IDE0046.severity = none # Use conditional expression for return — downgraded because nested coalescing/ternary chains it produces hurt readability +dotnet_diagnostic.IDE0047.severity = none # Remove unnecessary parentheses +dotnet_diagnostic.IDE0049.severity = none # Use language keywords instead of framework type names for type references dotnet_diagnostic.IDE0054.severity = none # Use compound assignment dotnet_diagnostic.IDE0056.severity = none # Use index operator +dotnet_diagnostic.IDE0057.severity = none # Use range operator +dotnet_diagnostic.IDE0059.severity = none # Remove unnecessary value assignment dotnet_diagnostic.IDE0062.severity = none # Make local function static -dotnet_diagnostic.IDE0063.severity = none # Use simple using statement -dotnet_diagnostic.IDE0065.severity = none # Using directive placement -dotnet_diagnostic.IDE0070.severity = none # Use System.HashCode.Combine +dotnet_diagnostic.IDE0063.severity = none # Use simple 'using' statement +dotnet_diagnostic.IDE0064.severity = none # Make struct fields writable — flag readonly-but-mutable struct fields where intent diverges from declaration +dotnet_diagnostic.IDE0066.severity = none # Use switch expression +dotnet_diagnostic.IDE0070.severity = none # Use 'System.HashCode.Combine' dotnet_diagnostic.IDE0071.severity = none # Simplify interpolation -dotnet_diagnostic.IDE0072.severity = none # Add missing cases to switch expression -dotnet_diagnostic.IDE0073.severity = none # Use file header -dotnet_diagnostic.IDE0074.severity = none # Use coalesce compound assignment -dotnet_diagnostic.IDE0076.severity = none # Remove invalid global SuppressMessageAttribute -dotnet_diagnostic.IDE0077.severity = none # Avoid legacy format target in global SuppressMessageAttribute -dotnet_diagnostic.IDE0080.severity = none # Remove unnecessary suppression operator +dotnet_diagnostic.IDE0072.severity = none # Add missing cases to switch expression - sometimes we miss switch cases dilberately. +dotnet_diagnostic.IDE0074.severity = none # Use compound assignment +dotnet_diagnostic.IDE0075.severity = none # Simplify conditional expression +dotnet_diagnostic.IDE0078.severity = none # Use pattern matching dotnet_diagnostic.IDE0082.severity = none # Convert typeof to nameof -dotnet_diagnostic.IDE0083.severity = none # Use pattern matching (not operator) -dotnet_diagnostic.IDE0090.severity = none # Simplify new expression +dotnet_diagnostic.IDE0083.severity = none # Use pattern matching ('not' operator) +dotnet_diagnostic.IDE0084.severity = none # Use pattern matching ('IsNot' operator) +dotnet_diagnostic.IDE0090.severity = none # Simplify 'new' expression dotnet_diagnostic.IDE0100.severity = none # Remove unnecessary equality operator dotnet_diagnostic.IDE0110.severity = none # Remove unnecessary discard -dotnet_diagnostic.IDE0150.severity = none # Prefer null check over type check -dotnet_diagnostic.IDE0161.severity = none # Use file-scoped namespace +dotnet_diagnostic.IDE0120.severity = none # Simplify LINQ expression +dotnet_diagnostic.IDE0150.severity = none # Prefer 'null' check over type check +dotnet_diagnostic.IDE0161.severity = none # Use file-scoped namespace declaration dotnet_diagnostic.IDE0170.severity = none # Simplify property pattern dotnet_diagnostic.IDE0180.severity = none # Use tuple to swap values dotnet_diagnostic.IDE0200.severity = none # Remove unnecessary lambda expression dotnet_diagnostic.IDE0220.severity = none # Add explicit cast in foreach loop -dotnet_diagnostic.IDE0230.severity = none # Use UTF-8 string literal -dotnet_diagnostic.IDE0240.severity = none # Nullable directive is redundant -dotnet_diagnostic.IDE0241.severity = none # Nullable directive is unnecessary -dotnet_diagnostic.IDE0251.severity = none # Member can be made readonly -dotnet_diagnostic.IDE0270.severity = none # Null check can be simplified +dotnet_diagnostic.IDE0240.severity = none # Remove redundant nullable directive +dotnet_diagnostic.IDE0241.severity = none # Remove unnecessary nullable directive +dotnet_diagnostic.IDE0250.severity = none # Make struct 'readonly' +dotnet_diagnostic.IDE0251.severity = none # Make member 'readonly' +dotnet_diagnostic.IDE0260.severity = none # Use pattern matching +dotnet_diagnostic.IDE0270.severity = none # Use coalesce expression + +# Disabled — conflict with an existing rule or project convention. +dotnet_diagnostic.IDE0003.severity = none # Remove 'this' qualifier — SST1117 owns the qualification style +dotnet_diagnostic.IDE0007.severity = none # Use var — we don't force var in either direction +dotnet_diagnostic.IDE0008.severity = none # Use explicit type — we don't force var in either direction +dotnet_diagnostic.IDE0009.severity = none # Member access should be qualified — SST1117 owns the qualification style +dotnet_diagnostic.IDE0010.severity = none # Add missing cases to switch statement — too noisy for default/fallthrough patterns +dotnet_diagnostic.IDE0011.severity = none # Add braces +dotnet_diagnostic.IDE0021.severity = none # Use expression body for constructors — preference not enforced +dotnet_diagnostic.IDE0022.severity = none # Use expression body for methods — preference not enforced +dotnet_diagnostic.IDE0023.severity = none # Use expression body for conversion operators — preference not enforced +dotnet_diagnostic.IDE0024.severity = none # Use expression body for operators — preference not enforced +dotnet_diagnostic.IDE0025.severity = none # Use expression body for properties — preference not enforced +dotnet_diagnostic.IDE0026.severity = none # Use expression body for indexers — preference not enforced +dotnet_diagnostic.IDE0027.severity = none # Use expression body for accessors — preference not enforced +dotnet_diagnostic.IDE0036.severity = none # Order modifiers — SST1206 handles +dotnet_diagnostic.IDE0039.severity = none # Use local function — anonymous method preference not enforced +dotnet_diagnostic.IDE0040.severity = none # Add accessibility modifiers — SST1400 handles +dotnet_diagnostic.IDE0045.severity = none # Use conditional expression for assignment — preference not enforced +dotnet_diagnostic.IDE0048.severity = none # Add parentheses for clarity — preference not enforced +dotnet_diagnostic.IDE0053.severity = none # Use expression body for lambdas — preference not enforced +dotnet_diagnostic.IDE0055.severity = none # Formatting — the spacing and layout rules own formatting +dotnet_diagnostic.IDE0058.severity = none # Remove unnecessary expression value — too noisy (ignores fluent APIs) +dotnet_diagnostic.IDE0060.severity = none # Remove unused parameter — CA1801 handles (with api_surface config) +dotnet_diagnostic.IDE0061.severity = none # Use expression body for local function — preference not enforced +dotnet_diagnostic.IDE0065.severity = none # 'using' directive placement — SST1200 = none (we put usings outside file-scoped namespaces) +dotnet_diagnostic.IDE0073.severity = none # Require file header — SST1633 handles +dotnet_diagnostic.IDE0079.severity = none # Remove unnecessary suppression — can misfire on multi-TFM suppressions +dotnet_diagnostic.IDE0130.severity = none # Namespace does not match folder structure — we don't enforce strict mirror +dotnet_diagnostic.IDE0160.severity = none # Use block-scoped namespace — we use file-scoped (IDE0161) +dotnet_diagnostic.IDE0210.severity = none # Convert to top-level statements — we use Main style +dotnet_diagnostic.IDE0211.severity = none # Convert to 'Program.Main' style — we use Main style dotnet_diagnostic.IDE0280.severity = none # Use nameof -dotnet_diagnostic.IDE0290.severity = none # Use primary constructor +dotnet_diagnostic.IDE0290.severity = none # Use primary constructor — subjective, not enforced +dotnet_diagnostic.IDE0300.severity = none # Use collection expression for array dotnet_diagnostic.IDE0301.severity = none # Use collection expression for empty dotnet_diagnostic.IDE0302.severity = none # Use collection expression for stackalloc -dotnet_diagnostic.IDE0303.severity = none # Use collection expression for Create() +dotnet_diagnostic.IDE0303.severity = none # Use collection expression for Create dotnet_diagnostic.IDE0304.severity = none # Use collection expression for builder dotnet_diagnostic.IDE0305.severity = none # Use collection expression for fluent -dotnet_diagnostic.IDE0340.severity = none # Use unbound generic type -dotnet_diagnostic.IDE0350.severity = none # Use implicitly typed lambda +dotnet_diagnostic.IDE0306.severity = none # Use collection expression for new +dotnet_diagnostic.IDE0320.severity = none # Make anonymous function static — eliminates the closure-capture display class allocation +dotnet_diagnostic.IDE0050.severity = none # Convert anonymous type to tuple +dotnet_diagnostic.IDE0230.severity = none # Use UTF-8 string literal — better hot-path encoding for byte-array constants +dotnet_diagnostic.IDE0310.severity = none # Convert lambda expression to method group — a lambda keeps the delegate target explicit +dotnet_diagnostic.IDE0370.severity = none # Remove unnecessary null-forgiving suppression — multi-TFM nullability differs dotnet_diagnostic.IDE0380.severity = none # Remove unnecessary unsafe modifier dotnet_diagnostic.IDE1005.severity = none # Use conditional delegate call -# Naming and miscellaneous -# Naming conventions — SA1300 family already enforces PascalCase / interface -# prefix / field casing (with our _underscore convention on SA1306/1309/1311 +################### +# Microsoft .NET Style Rules (IDE1xxx / IDE3xxx) - Naming & Miscellaneous +################### +# Naming conventions — SST1300 family already enforces PascalCase / interface +# prefix / field casing (with our _underscore convention on SST1306/1309/1311 # deliberately disabled). Leaving IDE1006 off because configuring # `dotnet_naming_rule.*` would duplicate what SA already enforces and could # conflict with the _underscore convention. -dotnet_diagnostic.IDE1006.severity = none # Naming rule violation — SA1300 family handles naming +dotnet_diagnostic.IDE1006.severity = none # Naming rule violation — SST1300 family handles naming dotnet_diagnostic.IDE3000.severity = none # Disabled per project convention — not enforced -################### -# Roslynator.CSharp.Analyzers (RCS) -################### -# Code simplification -dotnet_diagnostic.RCS1001.severity = none # Add braces (when expression spans over multiple lines) — covered by SST1519 -dotnet_diagnostic.RCS1003.severity = none # Add braces to if-else (when expression spans over multiple lines) — covered by SST1519 -dotnet_diagnostic.RCS1005.severity = error # Simplify nested using statement -dotnet_diagnostic.RCS1006.severity = none # Merge 'else' with nested 'if' — covered by SST1465 -dotnet_diagnostic.RCS1007.severity = error # Add braces -dotnet_diagnostic.RCS1031.severity = none # Remove unnecessary braces in switch section -- we don't mind braces in switch statements -dotnet_diagnostic.RCS1032.severity = error # Remove redundant parentheses -dotnet_diagnostic.RCS1033.severity = none # Remove redundant boolean literal — covered by SST1143 -dotnet_diagnostic.RCS1039.severity = none # Remove argument list from attribute — covered by SST1411 -dotnet_diagnostic.RCS1040.severity = none # Remove empty statement — covered by SST1180 -dotnet_diagnostic.RCS1042.severity = none # Remove enum default underlying type — covered by SST1177 -dotnet_diagnostic.RCS1043.severity = error # Remove 'partial' modifier from type with a single part -dotnet_diagnostic.RCS1049.severity = none # Simplify boolean comparison — covered by SST1143 -dotnet_diagnostic.RCS1058.severity = none # Use compound assignment — covered by SST1185 -dotnet_diagnostic.RCS1061.severity = none # Merge 'if' with nested 'if' — covered by SST2013 -dotnet_diagnostic.RCS1068.severity = none # Simplify logical negation — covered by SST1172/SST2006 -dotnet_diagnostic.RCS1069.severity = none # Remove unnecessary case label — covered by SST1466 -dotnet_diagnostic.RCS1070.severity = none # Remove redundant default switch section — covered by SST1179 -dotnet_diagnostic.RCS1071.severity = none # Remove redundant base constructor call — covered by SST1178 -dotnet_diagnostic.RCS1072.severity = none # Remove empty namespace declaration — covered by SST1435 -dotnet_diagnostic.RCS1073.severity = none # Convert 'if' to 'return' statement — covered by SST1197 -dotnet_diagnostic.RCS1074.severity = none # Remove redundant constructor — covered by SST1433 -dotnet_diagnostic.RCS1078.severity = none # Use "" or 'string.Empty' — conflicts with SST1122, which owns the string.Empty direction -dotnet_diagnostic.RCS1084.severity = none # Use coalesce expression instead of conditional expression — covered by SST1195 -dotnet_diagnostic.RCS1085.severity = none # Use auto-implemented property — covered by SST1420 -dotnet_diagnostic.RCS1089.severity = error # Use --/++ operator instead of assignment -dotnet_diagnostic.RCS1097.severity = error # Remove redundant 'ToString' call -dotnet_diagnostic.RCS1103.severity = error # Convert 'if' to assignment -dotnet_diagnostic.RCS1104.severity = none # Simplify conditional expression — covered by SST1182 -dotnet_diagnostic.RCS1105.severity = error # Unnecessary interpolation -dotnet_diagnostic.RCS1106.severity = none # Remove empty destructor — covered by PSH1002 -dotnet_diagnostic.RCS1107.severity = none # Remove redundant 'ToCharArray' call — covered by PSH1217 -dotnet_diagnostic.RCS1114.severity = error # Remove redundant delegate creation -dotnet_diagnostic.RCS1124.severity = error # Inline local variable -dotnet_diagnostic.RCS1126.severity = error # Add braces to if-else -dotnet_diagnostic.RCS1128.severity = error # Use coalesce expression -dotnet_diagnostic.RCS1129.severity = none # Remove redundant field initialization — covered by SST1176 -dotnet_diagnostic.RCS1132.severity = none # Remove redundant overriding member — covered by SST1181 -dotnet_diagnostic.RCS1133.severity = error # Remove redundant Dispose/Close call -dotnet_diagnostic.RCS1134.severity = none # Remove redundant statement — covered by SST1174 -dotnet_diagnostic.RCS1143.severity = error # Simplify coalesce expression -dotnet_diagnostic.RCS1145.severity = error # Remove redundant 'as' operator -dotnet_diagnostic.RCS1146.severity = error # Use conditional access -dotnet_diagnostic.RCS1151.severity = none # Remove redundant cast — covered by SST1175 -dotnet_diagnostic.RCS1171.severity = error # Simplify lazy initialization -dotnet_diagnostic.RCS1173.severity = error # Use coalesce expression instead of 'if' -dotnet_diagnostic.RCS1174.severity = none # Remove redundant async/await — covered by PSH1311 -dotnet_diagnostic.RCS1179.severity = error # Unnecessary assignment -dotnet_diagnostic.RCS1180.severity = error # Inline lazy initialization -dotnet_diagnostic.RCS1188.severity = none # Remove redundant auto-property initialization — covered by SST1176 -dotnet_diagnostic.RCS1192.severity = none # Unnecessary usage of verbatim string literal — covered by SST1184 -dotnet_diagnostic.RCS1199.severity = error # Unnecessary null check -dotnet_diagnostic.RCS1206.severity = error # Use conditional access instead of conditional expression -dotnet_diagnostic.RCS1207.severity = none # Use anonymous function or method group — conflicts with SST2239, which owns the method-group direction -dotnet_diagnostic.RCS1211.severity = none # Remove unnecessary 'else' — covered by SST1464 -dotnet_diagnostic.RCS1212.severity = error # Remove redundant assignment -dotnet_diagnostic.RCS1214.severity = none # Unnecessary interpolated string — covered by SST1183 -dotnet_diagnostic.RCS1216.severity = error # Unnecessary unsafe context -dotnet_diagnostic.RCS1217.severity = none # Convert interpolated string to concatenation — reverses SST2249, which owns the concatenation-to-interpolation direction -dotnet_diagnostic.RCS1218.severity = error # Simplify code branching -dotnet_diagnostic.RCS1220.severity = none # Use pattern matching instead of combination of 'is' and cast — covered by SST2007 -dotnet_diagnostic.RCS1221.severity = error # Use pattern matching instead of combination of 'as' and null check -dotnet_diagnostic.RCS1238.severity = none # Avoid nested ?: operators — covered by SST1147 -dotnet_diagnostic.RCS1244.severity = none # Simplify 'default' expression — covered by SST1188 -dotnet_diagnostic.RCS1249.severity = none # Unnecessary null-forgiving operator — disabled because multi-TFM nullability annotations can differ per platform, leading to false positives -dotnet_diagnostic.RCS1251.severity = error # Remove unnecessary braces from record declaration -dotnet_diagnostic.RCS1259.severity = error # Remove empty syntax (replaces RCS1066) -dotnet_diagnostic.RCS1262.severity = error # Unnecessary raw string literal -dotnet_diagnostic.RCS1265.severity = none # Remove redundant catch block — covered by SST1470 -dotnet_diagnostic.RCS1268.severity = error # Simplify numeric comparison - -# Code quality -dotnet_diagnostic.RCS1013.severity = none # Use predefined type — covered by SST1121 -dotnet_diagnostic.RCS1014.severity = error # Use explicitly/implicitly typed array -dotnet_diagnostic.RCS1015.severity = error # Use nameof operator -dotnet_diagnostic.RCS1016.severity = none # Use block body or expression body — conflicts with SST2219, which owns the expression-bodied accessor direction -dotnet_diagnostic.RCS1020.severity = none # Covered by SST2234 (canonical) -dotnet_diagnostic.RCS1021.severity = error # Convert lambda expression body to expression body -dotnet_diagnostic.RCS1044.severity = none # Remove original exception from throw statement — covered by SST1430 -dotnet_diagnostic.RCS1046.severity = none # Asynchronous method name should end with 'Async' — TUnit test method naming convention doesn't follow the Async suffix — covered by SST1317 -dotnet_diagnostic.RCS1047.severity = error # Non-asynchronous method name should not end with 'Async' -dotnet_diagnostic.RCS1048.severity = none # Use lambda expression instead of anonymous method — covered by SST1130 -dotnet_diagnostic.RCS1050.severity = error # Include/omit parentheses when creating new object -dotnet_diagnostic.RCS1051.severity = none # Add/remove parentheses from condition in conditional operator — conflicts with SST1459, which owns the non-grouping-parenthesis removal direction -dotnet_diagnostic.RCS1056.severity = none # Avoid usage of using alias directive - used to avoid conflicts -dotnet_diagnostic.RCS1059.severity = none # Avoid locking on publicly accessible instance — covered by SST1901 -dotnet_diagnostic.RCS1075.severity = none # Avoid empty catch clause that catches System.Exception — covered by SST1429 -dotnet_diagnostic.RCS1079.severity = error # Throwing of new NotImplementedException -dotnet_diagnostic.RCS1081.severity = error # Split variable declaration -dotnet_diagnostic.RCS1093.severity = error # File contains no code -dotnet_diagnostic.RCS1094.severity = none # Declare using directive on top level — covered by SST1200 -dotnet_diagnostic.RCS1096.severity = none # Use 'HasFlag' method or bitwise operator — covered by PSH1016 -dotnet_diagnostic.RCS1098.severity = none # Constant values should be placed on right side of comparisons — covered by SST1186 -dotnet_diagnostic.RCS1099.severity = none # Default label should be the last label in a switch section — covered by SST1466 -dotnet_diagnostic.RCS1102.severity = none # Make class static — covered by SST1432 -dotnet_diagnostic.RCS1108.severity = error # Add 'static' modifier to all partial class declarations -dotnet_diagnostic.RCS1111.severity = error # Add braces to switch section with multiple statements -dotnet_diagnostic.RCS1113.severity = error # Use 'string.IsNullOrEmpty' method -dotnet_diagnostic.RCS1118.severity = none # Mark local variable as const — covered by PSH1402 -dotnet_diagnostic.RCS1123.severity = none # Add parentheses when necessary — covered by SST1407 -dotnet_diagnostic.RCS1130.severity = none # Bitwise operation on enum without Flags attribute — covered by SST2458 -dotnet_diagnostic.RCS1135.severity = error # Declare enum member with zero value (when enum has FlagsAttribute) -dotnet_diagnostic.RCS1136.severity = none # Merge switch sections with equivalent content — covered by SST2414 -dotnet_diagnostic.RCS1154.severity = error # Sort enum members -dotnet_diagnostic.RCS1155.severity = none # Use StringComparison when comparing strings — covered by PSH1207 -dotnet_diagnostic.RCS1156.severity = none # Use string.Length instead of comparison with empty string — covered by PSH1204 -dotnet_diagnostic.RCS1157.severity = none # Composite enum value contains undefined flag — covered by SST2303 -dotnet_diagnostic.RCS1159.severity = error # Use EventHandler -dotnet_diagnostic.RCS1160.severity = none # Abstract type should not have public constructors — covered by SST1428 -dotnet_diagnostic.RCS1161.severity = none # Enum should declare explicit values - do not need explicit values -dotnet_diagnostic.RCS1162.severity = none # Avoid chain of assignments — covered by SST1187 -dotnet_diagnostic.RCS1166.severity = none # Value type object is never equal to null — covered by SST1469 -dotnet_diagnostic.RCS1168.severity = none # Parameter name differs from base name — covered by SST1318 -dotnet_diagnostic.RCS1169.severity = error # Make field read-only -dotnet_diagnostic.RCS1170.severity = error # Use read-only auto-implemented property -dotnet_diagnostic.RCS1172.severity = none # Use 'is' operator instead of 'as' operator — covered by SST2005 -dotnet_diagnostic.RCS1187.severity = none # Use constant instead of field — covered by PSH1402 -dotnet_diagnostic.RCS1191.severity = error # Declare enum value as combination of names -dotnet_diagnostic.RCS1193.severity = none # Overriding member should not change 'params' modifier — covered by SST2426 -dotnet_diagnostic.RCS1196.severity = error # Call extension method as instance method -dotnet_diagnostic.RCS1200.severity = none # Call 'Enumerable.ThenBy' instead of 'Enumerable.OrderBy' — covered by PSH1108 -dotnet_diagnostic.RCS1201.severity = error # Use method chaining -dotnet_diagnostic.RCS1202.severity = error # Avoid NullReferenceException -dotnet_diagnostic.RCS1204.severity = error # Use EventArgs.Empty -dotnet_diagnostic.RCS1205.severity = error # Order named arguments according to the order of parameters -dotnet_diagnostic.RCS1208.severity = error # Reduce 'if' nesting -dotnet_diagnostic.RCS1209.severity = error # Order type parameter constraints -dotnet_diagnostic.RCS1210.severity = none # Return completed task instead of returning null — covered by PSH1312 -dotnet_diagnostic.RCS1215.severity = error # Expression is always equal to true/false -dotnet_diagnostic.RCS1222.severity = error # Merge preprocessor directives -dotnet_diagnostic.RCS1223.severity = suggestion # Mark publicly visible type with DebuggerDisplay attribute — only data types benefit; the rule is too broad to be an error -dotnet_diagnostic.RCS1224.severity = error # Make method an extension method -dotnet_diagnostic.RCS1225.severity = error # Make class sealed -dotnet_diagnostic.RCS1227.severity = none # Validate arguments correctly — covered by SST2404 -dotnet_diagnostic.RCS1229.severity = error # Use async/await when necessary -dotnet_diagnostic.RCS1231.severity = none # Make parameter ref read-only — covered by PSH1007 -dotnet_diagnostic.RCS1233.severity = none # Use short-circuiting operator — covered by SST1468 -dotnet_diagnostic.RCS1234.severity = error # Duplicate enum value -dotnet_diagnostic.RCS1239.severity = error # Use 'for' statement instead of 'while' statement -dotnet_diagnostic.RCS1240.severity = error # Operator is unnecessary -dotnet_diagnostic.RCS1242.severity = none # Do not pass non-read-only struct by read-only reference — covered by PSH1003 -dotnet_diagnostic.RCS1243.severity = none # Duplicate word in a comment — covered by SST1658 (documentation comments) -dotnet_diagnostic.RCS1247.severity = error # Fix documentation comment tag -dotnet_diagnostic.RCS1248.severity = none # Normalize null check — conflicts with SST1149, which owns the 'is null' pattern direction -dotnet_diagnostic.RCS1250.severity = none # Use implicit/explicit object creation — conflicts with SST2202, which owns the implicit-target-type direction -dotnet_diagnostic.RCS1252.severity = error # Normalize usage of infinite loop -dotnet_diagnostic.RCS1254.severity = error # Normalize format of enum flag value -dotnet_diagnostic.RCS1255.severity = none # Simplify argument null check — conflicts with our ArgumentExceptionHelper helper pattern -dotnet_diagnostic.RCS1257.severity = error # Use enum field explicitly -dotnet_diagnostic.RCS1258.severity = error # Unnecessary enum flag -dotnet_diagnostic.RCS1260.severity = none # Add/remove trailing comma — conflicts with SST1413, which owns the trailing-comma direction -dotnet_diagnostic.RCS1261.severity = none # Resource can be disposed asynchronously — covered by PSH1310 -dotnet_diagnostic.RCS1264.severity = error # Use 'var' or explicit type (replaces RCS1010, RCS1176, RCS1177) -dotnet_diagnostic.RCS1266.severity = none # Use raw string literal — covered by SST2243 -dotnet_diagnostic.RCS1267.severity = error # Use string interpolation instead of 'string.Concat' - -# Performance -dotnet_diagnostic.RCS1077.severity = none # Covered by the PSH1101-PSH1111 family (canonical) -dotnet_diagnostic.RCS1080.severity = none # Covered by PSH1106 (canonical) -dotnet_diagnostic.RCS1112.severity = none # Combine 'Enumerable.Where' method chain — covered by PSH1109 -dotnet_diagnostic.RCS1186.severity = error # Use Regex instance instead of static method -dotnet_diagnostic.RCS1190.severity = none # Join string expressions — conflicts with SST2470, which reports the fused-literal seam this would create -dotnet_diagnostic.RCS1195.severity = error # Use ^ operator -dotnet_diagnostic.RCS1197.severity = none # Optimize StringBuilder.Append/AppendLine call — covered by PSH1203/PSH1214 -dotnet_diagnostic.RCS1198.severity = none # Avoid unnecessary boxing of value type — boxing is unavoidable bridging Rx and IEnumerable -dotnet_diagnostic.RCS1230.severity = none # Unnecessary explicit use of enumerator — covered by SST1467 -dotnet_diagnostic.RCS1235.severity = error # Optimize method call -dotnet_diagnostic.RCS1236.severity = none # Use exception filter — covered by SST2009 -dotnet_diagnostic.RCS1246.severity = none # Use element access — covered by PSH1106 - -# Maintainability -dotnet_diagnostic.RCS1158.severity = none # Static member in generic type should use a type parameter — common factory pattern — covered by SST1431 -dotnet_diagnostic.RCS1163.severity = none # Unused parameter — interface implementations and Rx selectors often have unused parameters -dotnet_diagnostic.RCS1164.severity = none # Unused type parameter - DUPLICATE IDE0060 (UnusedParameter analyzer 210ms; IDE0060 bundled at lower cost) -dotnet_diagnostic.RCS1165.severity = none # Unconstrained type parameter checked for null - we validate all parameters for non-nullable enabled platforms -dotnet_diagnostic.RCS1182.severity = none # Remove redundant base interface — covered by SST1177 -dotnet_diagnostic.RCS1213.severity = none # Remove unused member declaration - DUPLICATE IDE0051 (slower: 230ms vs 75ms) -dotnet_diagnostic.RCS1241.severity = error # Implement non-generic counterpart -dotnet_diagnostic.RCS1256.severity = none # Invalid argument null check — conflicts with our ArgumentExceptionHelper helper pattern - -# Documentation -dotnet_diagnostic.RCS1181.severity = error # Convert comment to documentation comment -dotnet_diagnostic.RCS1189.severity = error # Add or remove region name -dotnet_diagnostic.RCS1226.severity = none # Add paragraph to documentation comment — <para> wrapping is subjective and adds noise -dotnet_diagnostic.RCS1228.severity = error # Unused element in a documentation comment -dotnet_diagnostic.RCS1232.severity = error # Order elements in documentation comment -dotnet_diagnostic.RCS1253.severity = error # Format documentation comment summary -dotnet_diagnostic.RCS1263.severity = none # Invalid reference in a documentation comment - -# Disabled -dotnet_diagnostic.RCS1018.severity = none # Add/remove accessibility modifiers — covered by SA1400 -dotnet_diagnostic.RCS1019.severity = none # Order modifiers — covered by SA1206 / SA1208 -dotnet_diagnostic.RCS1037.severity = none # Remove trailing white-space — covered by SA1028 -dotnet_diagnostic.RCS1052.severity = none # Declare each attribute separately — covered by SA1133 -dotnet_diagnostic.RCS1055.severity = none # Unnecessary semicolon at the end of declaration — covered by SA1106 -dotnet_diagnostic.RCS1060.severity = none # Declare each type in separate file — covered by SA1402 -dotnet_diagnostic.RCS1090.severity = none # Add/remove 'ConfigureAwait(false)' call — covered by CA2007 (also disabled) -dotnet_diagnostic.RCS1110.severity = none # Declare type inside namespace — covered by CA1050 -dotnet_diagnostic.RCS1138.severity = none # Add summary to documentation comment — covered by SA1600 -dotnet_diagnostic.RCS1139.severity = none # Add summary element to documentation comment — covered by SA1604 -dotnet_diagnostic.RCS1140.severity = none # Add exception to documentation comment — covered by SA1614 -dotnet_diagnostic.RCS1141.severity = none # Add 'param' element to documentation comment — covered by SA1611 -dotnet_diagnostic.RCS1142.severity = none # Add 'typeparam' element to documentation comment — covered by SA1618 -dotnet_diagnostic.RCS1175.severity = none # Unused 'this' parameter — covered by CA1822 -dotnet_diagnostic.RCS1194.severity = none # Implement exception constructors — covered by CA1032 -dotnet_diagnostic.RCS1203.severity = none # Use AttributeUsageAttribute — covered by CA1018 - -# Formatting -dotnet_diagnostic.RCS0001.severity = none # Add blank line after embedded statement — covered by StyleCop layout rules -dotnet_diagnostic.RCS0002.severity = none # Add blank line after #region — covered by StyleCop SA1517 family -dotnet_diagnostic.RCS0003.severity = none # Add blank line after using directive list — covered by SA1516 -dotnet_diagnostic.RCS0005.severity = none # Add blank line before #endregion — covered by StyleCop layout rules -dotnet_diagnostic.RCS0006.severity = none # Add blank line before using directive list — covered by SA1517 -dotnet_diagnostic.RCS0007.severity = none # Add blank line between accessors — covered by SA1513 -dotnet_diagnostic.RCS0008.severity = none # Add blank line between closing brace and next statement — covered by SA1513 -dotnet_diagnostic.RCS0009.severity = none # Add blank line between declaration and documentation comment — covered by SA1514 -dotnet_diagnostic.RCS0010.severity = none # Add blank line between declarations — covered by SA1516 -dotnet_diagnostic.RCS0011.severity = none # Add/remove blank line between single-line accessors — StyleCop already governs this -dotnet_diagnostic.RCS0012.severity = none # Add blank line between single-line declarations — covered by SA1516 -dotnet_diagnostic.RCS0013.severity = none # Add blank line between single-line declarations of different kind — covered by SA1516 -dotnet_diagnostic.RCS0015.severity = none # Add/remove blank line between using directives — covered by SA1209 / SA1210 -dotnet_diagnostic.RCS0016.severity = none # Put attribute list on its own line — StyleCop SA1133 governs attribute lists -dotnet_diagnostic.RCS0020.severity = none # Format accessor's braces — covered by SA1500 -dotnet_diagnostic.RCS0021.severity = none # Format block's braces — covered by SA1500 -dotnet_diagnostic.RCS0023.severity = none # Format type declaration's braces — covered by SA1500 -dotnet_diagnostic.RCS0024.severity = none # Add new line after switch label — covered by SA1003 -dotnet_diagnostic.RCS0025.severity = none # Put full accessor on its own line — covered by SA1502 -dotnet_diagnostic.RCS0027.severity = none # Place new line after/before binary operator — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0028.severity = none # Place new line after/before '?:' operator — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0029.severity = none # Put constructor initializer on its own line — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0030.severity = none # Put embedded statement on its own line — covered by SA1503 -dotnet_diagnostic.RCS0031.severity = none # Put enum member on its own line — covered by SA1136 -dotnet_diagnostic.RCS0032.severity = none # Place new line after/before arrow token — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0033.severity = none # Put statement on its own line — covered by SA1505 family -dotnet_diagnostic.RCS0034.severity = none # Put type parameter constraint on its own line — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0036.severity = none # Remove blank line between single-line declarations of same kind — covered by SA1516 -dotnet_diagnostic.RCS0039.severity = none # Remove new line before base list — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0041.severity = none # Remove new line between 'if' keyword and 'else' keyword — StyleCop layout rules cover this -dotnet_diagnostic.RCS0042.severity = none # Put auto-accessors on a single line — formatting preference, not enforced -dotnet_diagnostic.RCS0044.severity = none # Use carriage return + linefeed as new line — handled by .gitattributes / editorconfig end_of_line -dotnet_diagnostic.RCS0045.severity = none # Use linefeed as new line — handled by .gitattributes / editorconfig end_of_line -dotnet_diagnostic.RCS0046.severity = none # Use spaces instead of tab — handled by editorconfig indent_style -dotnet_diagnostic.RCS0048.severity = none # Put initializer on a single line — formatting preference, not enforced -dotnet_diagnostic.RCS0049.severity = none # Add blank line after top comment — covered by SA1517 -dotnet_diagnostic.RCS0050.severity = none # Add blank line before top declaration — covered by SA1517 -dotnet_diagnostic.RCS0051.severity = none # Add/remove new line before 'while' in 'do' statement — formatting preference -dotnet_diagnostic.RCS0052.severity = none # Place new line after/before equals token — StyleCop wrapping rules cover this -dotnet_diagnostic.RCS0053.severity = none # Fix formatting of a list — formatting preference -dotnet_diagnostic.RCS0054.severity = none # Fix formatting of a call chain — formatting preference -dotnet_diagnostic.RCS0055.severity = none # Fix formatting of a binary expression chain — formatting preference -dotnet_diagnostic.RCS0056.severity = none # A line is too long — line-length not enforced -dotnet_diagnostic.RCS0057.severity = none # Normalize whitespace at the beginning of a file — handled by editorconfig -dotnet_diagnostic.RCS0058.severity = none # Normalize whitespace at the end of a file — covered by SST1518 -dotnet_diagnostic.RCS0059.severity = none # Place new line after/before null-conditional operator — StyleSharp wrapping rules cover this -dotnet_diagnostic.RCS0060.severity = none # Add/remove line after file scoped namespace declaration — formatting preference -dotnet_diagnostic.RCS0061.severity = none # Add/remove blank line between switch sections — formatting preference -dotnet_diagnostic.RCS0062.severity = none # Put expression body on its own line — formatting preference -dotnet_diagnostic.RCS0063.severity = none # Remove unnecessary blank line — covered by SST1505 / SST1507 - ################### # StyleSharp Analyzers (SST) ################### -file_header_template = Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved.\nReactiveUI Association Incorporated licenses this file to you under the MIT license.\nSee the LICENSE file in the project root for full license information. +file_header_template = Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved.\nReactiveUI and Contributors licenses this file to you under the MIT license.\nSee the LICENSE file in the project root for full license information. stylesharp.summary_single_line_max_length = 120 -# SonarAnalyzer's S4022 only ever flagged storage narrower than int; uint, long and ulong -# passed silently. Match that, so retiring S4022 for SST2313 does not fail a build on an -# enum that was deliberately widened. -stylesharp.SST2313.allowed_enum_storage = int, uint, long, ulong +stylesharp.SST2313.allowed_enum_storage = int, uint, long, ulong # deliberately widened enums stay legal -# Documentation coverage scope (SST1600/SST1601/SST1602/SST1654). -# Require documentation on every element, including private members. -stylesharp.document_exposed_elements = true +stylesharp.document_exposed_elements = true # Documentation coverage — every element, private members included stylesharp.document_internal_elements = true stylesharp.document_private_elements = true stylesharp.document_private_fields = true stylesharp.document_interfaces = all stylesharp.SST1305.allowed_hungarian_prefixes = rx +stylesharp.tuple_element_naming = pascal_case # SST1316 stylesharp.instance_member_qualification = omit_this +stylesharp.use_var = always # SST2271; matches the csharp_style_var_* preferences above stylesharp.max_cyclomatic_complexity = 10 stylesharp.max_cognitive_complexity = 15 stylesharp.max_property_cognitive_complexity = 3 -# SST1484 also reports a field that shadows one inherited from a base type. -stylesharp.SST1484.check_base_types = true -stylesharp.max_line_length = 200 # SST1521 (characters; keeps the limit this repo has always enforced) +stylesharp.SST1484.check_base_types = true # also report a field shadowed from a base type + +stylesharp.SST2403.allowed_escape_methods = WhenActivated, ToProperty # both hand this straight back, so nothing observes a half-built instance +stylesharp.max_line_length = 200 # SST1521 (characters) stylesharp.max_file_lines = 1000 # SST1522 (code lines; blank lines and comments do not count) # stylesharp.max_member_lines = 60 # SST1523 (code lines) # stylesharp.max_switch_section_lines = 20 # SST1524 (code lines) @@ -1137,7 +880,7 @@ dotnet_diagnostic.SST1006.severity = error # A preprocessor keyword is preceded dotnet_diagnostic.SST1007.severity = error # An operator keyword is not followed by a space dotnet_diagnostic.SST1008.severity = error # An opening parenthesis is followed by a space dotnet_diagnostic.SST1009.severity = error # A closing parenthesis is preceded by a space -dotnet_diagnostic.SST1010.severity = none # An opening square bracket has adjacent whitespace — conflicts with modern collection expressions +dotnet_diagnostic.SST1010.severity = none # Opening square bracket has adjacent whitespace — collection expressions need it dotnet_diagnostic.SST1011.severity = error # A closing square bracket is preceded by a space dotnet_diagnostic.SST1012.severity = error # An opening brace is not followed by a space on a single line dotnet_diagnostic.SST1013.severity = error # A closing brace is not preceded by a space on a single line @@ -1159,7 +902,6 @@ dotnet_diagnostic.SST1028.severity = error # A line ends with trailing whitespac # Readability and maintainability dotnet_diagnostic.SST1100.severity = error # A base. prefix is used where the type does not override the member -dotnet_diagnostic.SST1101.severity = none # see docs/rules/SST1101.md dotnet_diagnostic.SST1102.severity = error # A query clause is separated from the previous clause by a blank line dotnet_diagnostic.SST1103.severity = error # Query clauses mix single-line and multi-line layout dotnet_diagnostic.SST1104.severity = error # A query clause shares the last line of a multi-line previous clause @@ -1174,15 +916,15 @@ dotnet_diagnostic.SST1114.severity = error # A blank line separates the declarat dotnet_diagnostic.SST1115.severity = error # A blank line separates a parameter from the preceding comma dotnet_diagnostic.SST1116.severity = error # A qualified name can be shortened without changing the symbol it binds to dotnet_diagnostic.SST1117.severity = error # Instance member access follows the configured this. qualification style -dotnet_diagnostic.SST1118.severity = none # A parameter should not span multiple lines +dotnet_diagnostic.SST1118.severity = none # A parameter spanning multiple lines — collides with the 200-char line limit dotnet_diagnostic.SST1119.severity = error # A numeric literal groups its digit separators irregularly dotnet_diagnostic.SST1120.severity = error # A comment contains no text -dotnet_diagnostic.SST1121.severity = error # A framework type name is used instead of its built-in alias (opt-in rule, enabled here) +dotnet_diagnostic.SST1121.severity = error # A framework type name is used instead of its built-in alias dotnet_diagnostic.SST1122.severity = error # An empty string literal is used instead of string.Empty dotnet_diagnostic.SST1123.severity = error # A #region is placed inside a code element body dotnet_diagnostic.SST1124.severity = error # A #region directive is used dotnet_diagnostic.SST1125.severity = error # A Nullable type is written in long form instead of the T? shorthand -dotnet_diagnostic.SST1127.severity = error # A generic type constraint shares a line with the declaration or another constraint +dotnet_diagnostic.SST1127.severity = error # A generic type constraint shares a line with another constraint dotnet_diagnostic.SST1128.severity = error # A constructor initializer shares a line with the constructor signature dotnet_diagnostic.SST1129.severity = error # A value type is created with a parameterless constructor call instead of default dotnet_diagnostic.SST1130.severity = error # An anonymous delegate is used where a lambda expression is clearer @@ -1247,7 +989,7 @@ dotnet_diagnostic.SST1188.severity = error # Use the 'default' literal instead o dotnet_diagnostic.SST1189.severity = error # Variables should not be self-assigned dotnet_diagnostic.SST1190.severity = error # Doubled negation operators should be removed dotnet_diagnostic.SST1191.severity = error # Long numeric literals should use digit separators -dotnet_diagnostic.SST1192.severity = none # Control characters in string literals should be escaped +dotnet_diagnostic.SST1192.severity = error # Control characters in string literals should be escaped dotnet_diagnostic.SST1193.severity = error # Keep initial member values with construction dotnet_diagnostic.SST1194.severity = error # Keep initial collection values with construction dotnet_diagnostic.SST1195.severity = error # Write null fallback with ?? @@ -1277,31 +1019,32 @@ dotnet_diagnostic.SST1216.severity = error # Using static directives should be p dotnet_diagnostic.SST1217.severity = error # Using static directives should be ordered alphabetically dotnet_diagnostic.SST1218.severity = error # Other members separate a method's overloads dotnet_diagnostic.SST1219.severity = error # A switch default clause is not placed last -dotnet_diagnostic.SST1220.severity = error # An all-named argument list is in a different order than the parameters. Code fix reorders it to declaration order. Info. -dotnet_diagnostic.SST1221.severity = error # `where` constraint clauses are not ordered to match the type-parameter list. Code fix reorders them. Info. +dotnet_diagnostic.SST1220.severity = error # An all-named argument list is not in declaration order +dotnet_diagnostic.SST1221.severity = error # where constraint clauses do not match the type-parameter order +dotnet_diagnostic.SST1222.severity = error # An enum with explicit values declares them out of ascending order # Naming -dotnet_diagnostic.SST1300.severity = none # Types and members should be PascalCase — naming duplicates existing analyzers +dotnet_diagnostic.SST1300.severity = error # Types and members should be PascalCase dotnet_diagnostic.SST1302.severity = error # Interface names should begin with I dotnet_diagnostic.SST1303.severity = error # Const names should be PascalCase dotnet_diagnostic.SST1304.severity = error # Non-private readonly fields should be PascalCase dotnet_diagnostic.SST1305.severity = error # Field names should not use Hungarian notation -dotnet_diagnostic.SST1306.severity = none # Field names should begin with a lower-case letter — private fields use _camelCase here +dotnet_diagnostic.SST1306.severity = none # Field names should begin lower-case — private fields use _camelCase here dotnet_diagnostic.SST1307.severity = error # Accessible fields should be PascalCase -dotnet_diagnostic.SST1308.severity = none # Field names should not be prefixed with m_ or s_ — too broad for existing conventions +dotnet_diagnostic.SST1308.severity = none # Field names should not use m_ or s_ prefixes — too broad for our conventions dotnet_diagnostic.SST1309.severity = error # Private fields should be _camelCase dotnet_diagnostic.SST1310.severity = none # Field names should not contain underscores — conflicts with _camelCase -dotnet_diagnostic.SST1311.severity = none # Static readonly fields should be PascalCase — we use _camelCase for private static readonly too +dotnet_diagnostic.SST1311.severity = none # Static readonly fields should be PascalCase — we use _camelCase there too dotnet_diagnostic.SST1312.severity = error # Local variables should be camelCase dotnet_diagnostic.SST1313.severity = error # Parameters should be camelCase dotnet_diagnostic.SST1314.severity = error # Type parameters should begin with T dotnet_diagnostic.SST1315.severity = error # Union member names should match the configured casing -dotnet_diagnostic.SST1316.severity = none # Tuple element names should use the configured casing — tuple naming is not enforced here -dotnet_diagnostic.SST1317.severity = none # Asynchronous method names should end with 'Async' — conflicts with this project's Rx-compatibility and naming mechanism +dotnet_diagnostic.SST1316.severity = error # Tuple element names should use the configured casing +dotnet_diagnostic.SST1317.severity = none # Async method names should end with 'Async' — conflicts with our Rx naming dotnet_diagnostic.SST1318.severity = error # Overriding parameter names should match the base declaration dotnet_diagnostic.SST1319.severity = error # An enumeration's type name is not PascalCase dotnet_diagnostic.SST1320.severity = error # A parameter name matches its method's name -dotnet_diagnostic.SST1321.severity = none # Public APIs intentionally use Async to describe asynchronous observable behavior without returning an awaitable. +dotnet_diagnostic.SST1321.severity = none # Async naming without an awaitable return — deliberate on our public APIs # Maintainability dotnet_diagnostic.SST1400.severity = error # An element does not declare an access modifier @@ -1315,12 +1058,12 @@ dotnet_diagnostic.SST1407.severity = error # Mixed-precedence arithmetic is not dotnet_diagnostic.SST1408.severity = error # Mixed conditional operators are not parenthesized dotnet_diagnostic.SST1410.severity = error # An anonymous method has an empty parameter list dotnet_diagnostic.SST1411.severity = error # An attribute uses an empty argument list -dotnet_diagnostic.SST1412.severity = none # Store files as UTF-8 with a byte order mark — conflicts with SST1450 (UTF-8 without BOM) -dotnet_diagnostic.SST1413.severity = none # A multi-line initializer omits the trailing comma — trailing commas are not required here +dotnet_diagnostic.SST1412.severity = none # Store files as UTF-8 with a BOM — conflicts with SST1450 (no BOM) +dotnet_diagnostic.SST1413.severity = error # A multi-line initializer omits the trailing comma dotnet_diagnostic.SST1414.severity = error # A tuple type in a member signature has an unnamed element -dotnet_diagnostic.SST1415.severity = error # An argument-exception constructor uses a string literal where nameof would track renames -dotnet_diagnostic.SST1416.severity = none # Do not declare public members in a non-public type -dotnet_diagnostic.SST1417.severity = suggestion # Namespace should match the folder structure +dotnet_diagnostic.SST1415.severity = error # An argument-exception constructor uses a literal instead of nameof +dotnet_diagnostic.SST1416.severity = none # Public members in a non-public type — reflection binding needs them public +dotnet_diagnostic.SST1417.severity = none # Namespace should match the folder — BCL-namespace types cannot comply dotnet_diagnostic.SST1418.severity = error # Declare precedence when mixing the null-coalescing operator dotnet_diagnostic.SST1419.severity = error # Remove redundant modifiers dotnet_diagnostic.SST1420.severity = error # Trivial properties should be auto-implemented @@ -1337,7 +1080,6 @@ dotnet_diagnostic.SST1430.severity = error # Rethrow with 'throw;' to preserve t dotnet_diagnostic.SST1431.severity = error # Static members of a generic type should use a type parameter dotnet_diagnostic.SST1432.severity = error # Classes with only static members should be static dotnet_diagnostic.SST1433.severity = error # Redundant constructors should be removed -dotnet_diagnostic.SST1434.severity = error # see docs/rules/SST1434.md dotnet_diagnostic.SST1435.severity = error # Empty namespace declarations should be removed dotnet_diagnostic.SST1436.severity = error # Empty types should not be declared dotnet_diagnostic.SST1437.severity = error # Empty interfaces should not be declared @@ -1362,7 +1104,7 @@ dotnet_diagnostic.SST1455.severity = error # Unsafe modifiers should be used onl dotnet_diagnostic.SST1456.severity = error # Readonly fields should not store mutable source-defined structs dotnet_diagnostic.SST1457.severity = error # Global suppressions should point at real declarations dotnet_diagnostic.SST1458.severity = error # Global suppression targets should use declaration ids directly -dotnet_diagnostic.SST1459.severity = error # Grouping parentheses should be removed when the parent syntax already isolates the expression +dotnet_diagnostic.SST1459.severity = error # Grouping parentheses the parent syntax already isolates dotnet_diagnostic.SST1460.severity = error # Non-mutating struct members should be readonly dotnet_diagnostic.SST1461.severity = error # Private parameters that are never read should be removed dotnet_diagnostic.SST1462.severity = error # Suppressions for diagnostics already disabled by config should be removed @@ -1376,7 +1118,7 @@ dotnet_diagnostic.SST1469.severity = error # A non-nullable value type is compar dotnet_diagnostic.SST1470.severity = error # A trailing catch clause that only rethrows should be removed dotnet_diagnostic.SST1471.severity = error # Magic numbers should be named constants dotnet_diagnostic.SST1472.severity = error # Signatures should not declare too many parameters -dotnet_diagnostic.SST1473.severity = error # A floating-point value is compared for exact equality (zero comparison allowed by default) +dotnet_diagnostic.SST1473.severity = error # A floating-point value is compared for exact equality dotnet_diagnostic.SST1474.severity = error # Both sides of an operator are the same expression dotnet_diagnostic.SST1475.severity = error # A condition repeats an earlier one in the chain, so its branch cannot run dotnet_diagnostic.SST1476.severity = error # Every branch of a conditional has the same body @@ -1391,8 +1133,8 @@ dotnet_diagnostic.SST1484.severity = error # A declaration shadows an outer fiel dotnet_diagnostic.SST1485.severity = error # A member that must not throw throws dotnet_diagnostic.SST1486.severity = error # The same string literal is repeated instead of being named dotnet_diagnostic.SST1487.severity = error # A collection element is assigned twice with nothing reading it in between -dotnet_diagnostic.SST1488.severity = error # An exception type does not declare the standard constructors (parameterless waivable) -dotnet_diagnostic.SST1489.severity = error # An exception type carries serialization members the target framework has obsoleted +dotnet_diagnostic.SST1488.severity = error # An exception type does not declare the standard constructors +dotnet_diagnostic.SST1489.severity = error # An exception type carries obsoleted serialization members dotnet_diagnostic.SST1490.severity = error # A base list names an interface the rest of the list already implies dotnet_diagnostic.SST1491.severity = error # A modifier restates the declaration's default dotnet_diagnostic.SST1492.severity = error # A value is tested against what it is then assigned, so the guard decides nothing @@ -1402,13 +1144,13 @@ dotnet_diagnostic.SST1495.severity = error # '==' compares references on a type dotnet_diagnostic.SST1496.severity = error # An abstract type declares nothing abstract dotnet_diagnostic.SST1497.severity = error # A local is declared and never read dotnet_diagnostic.SST1498.severity = error # Only a nested type uses a private member -dotnet_diagnostic.SST1499.severity = error # A static field visible outside its type can still be changed (internal fields included by default) +dotnet_diagnostic.SST1499.severity = error # A static field visible outside its type can still be changed # Layout dotnet_diagnostic.SST1500.severity = error # A brace in a multi-line construct shares its line with other code dotnet_diagnostic.SST1501.severity = error # A statement block is collapsed onto a single line dotnet_diagnostic.SST1502.severity = error # An element body is collapsed onto a single line -dotnet_diagnostic.SST1503.severity = none # A control-flow statement omits the braces around its child statement — duplicate with existing brace preferences +dotnet_diagnostic.SST1503.severity = error # A control-flow statement omits the braces around its child statement dotnet_diagnostic.SST1504.severity = error # The accessors of a property/event mix single-line and multi-line forms dotnet_diagnostic.SST1505.severity = error # An opening brace is followed by a blank line dotnet_diagnostic.SST1506.severity = error # An element documentation header is followed by a blank line @@ -1430,16 +1172,19 @@ dotnet_diagnostic.SST1521.severity = error # A line is longer than the configure dotnet_diagnostic.SST1522.severity = error # A file has more code lines than the configured maximum (default 500) dotnet_diagnostic.SST1523.severity = error # A member has more code lines than the configured maximum (default 60) dotnet_diagnostic.SST1524.severity = error # A switch section has more code lines than the configured maximum (default 20) -dotnet_diagnostic.SST1525.severity = error # A multi-statement `switch` section has no braces; the braces-on policy extends to switch sections. Code fix wraps it. -dotnet_diagnostic.SST1534.severity = none # Switch braces that scope nothing — conflicts with SST1525's braces-on policy -dotnet_diagnostic.SST1526.severity = error # A wrapped binary expression places the operator inconsistently. Configurable (`before`/`after`, default before). Opt-in. -dotnet_diagnostic.SST1527.severity = error # The `=>` of an expression-bodied member wraps inconsistently. Configurable. Opt-in. +dotnet_diagnostic.SST1525.severity = error # A multi-statement switch section has no braces +dotnet_diagnostic.SST1526.severity = error # A wrapped binary expression places the operator inconsistently +dotnet_diagnostic.SST1527.severity = error # The => of an expression-bodied member wraps inconsistently dotnet_diagnostic.SST1528.severity = error # The `=` of a wrapped initializer wraps inconsistently. Configurable. Opt-in. -dotnet_diagnostic.SST1529.severity = error # A wrapped `?.`/`.` call chain places the break inconsistently. Configurable. Opt-in. -dotnet_diagnostic.SST1530.severity = error # A newline sits between a type declaration and its base list. Code fix pulls the base list onto the declaration line. Opt-in. -dotnet_diagnostic.SST1531.severity = error # A short object initializer is split across lines. Code fix collapses it when it fits. Opt-in. +dotnet_diagnostic.SST1529.severity = error # A wrapped call chain places the break inconsistently +dotnet_diagnostic.SST1530.severity = error # A newline sits between a type declaration and its base list +dotnet_diagnostic.SST1531.severity = error # A short object initializer is split across lines dotnet_diagnostic.SST1532.severity = error # A file mixes line endings. Configurable (`lf`/`crlf`, default lf). Opt-in. -dotnet_diagnostic.SST1533.severity = error # A source file contains no code. Opt-in. +dotnet_diagnostic.SST1533.severity = none # A source file contains no code — a polyfill behind #if is empty by design +dotnet_diagnostic.SST1534.severity = none # Switch braces that scope nothing — conflicts with SST1525's braces-on policy +dotnet_diagnostic.SST1535.severity = error # A constructor initializer colon should not be followed by a blank line +dotnet_diagnostic.SST1536.severity = error # A conditional operator token should not be followed by a blank line +dotnet_diagnostic.SST1537.severity = error # An expression-body arrow should not be followed by a blank line # Documentation dotnet_diagnostic.SST1600.severity = error # Externally visible members should be documented @@ -1450,7 +1195,7 @@ dotnet_diagnostic.SST1605.severity = error # Partial element documentation shoul dotnet_diagnostic.SST1606.severity = error # The summary should have text dotnet_diagnostic.SST1607.severity = error # Partial element summary should have text dotnet_diagnostic.SST1608.severity = error # Documentation should not use the default placeholder summary -dotnet_diagnostic.SST1609.severity = none # Property documentation should have a value +dotnet_diagnostic.SST1609.severity = none # Property docs should have a value — it only restates the summary dotnet_diagnostic.SST1610.severity = error # Property value documentation should have text dotnet_diagnostic.SST1611.severity = error # Parameters should be documented dotnet_diagnostic.SST1612.severity = error # Parameter documentation should match the parameters @@ -1486,27 +1231,28 @@ dotnet_diagnostic.SST1653.severity = error # Keep short documentation summaries dotnet_diagnostic.SST1654.severity = error # Extension blocks should be documented with a summary dotnet_diagnostic.SST1655.severity = error # Extension block parameters should be documented dotnet_diagnostic.SST1656.severity = error # Extension block type parameters should be documented -dotnet_diagnostic.SST1657.severity = error # Extension block documentation should reference a real parameter or type parameter +dotnet_diagnostic.SST1657.severity = error # Extension block docs name an unknown parameter or type parameter dotnet_diagnostic.SST1658.severity = error # Documentation text repeats a word dotnet_diagnostic.SST1659.severity = error # A comment has no text at all dotnet_diagnostic.SST1660.severity = error # The `` tags are not in parameter order. Code fix reorders them. Info. -dotnet_diagnostic.SST1661.severity = error # A snippet uses ``/`` mismatched to single- vs multi-line content. Code fix swaps the tag. Info. -dotnet_diagnostic.SST1662.severity = none # A thrown exception type has no `` documentation. Code fix adds the skeleton. Opt-in. -dotnet_diagnostic.SST1663.severity = none # A `//` comment before a public member reads like a summary; use `///`. Code fix converts it. Opt-in. -dotnet_diagnostic.SST1664.severity = none # A summary separates paragraphs with blank lines instead of ``. Code fix wraps them. Opt-in. +dotnet_diagnostic.SST1661.severity = error # A snippet uses / mismatched to its content +dotnet_diagnostic.SST1662.severity = error # A thrown exception type has no documentation +dotnet_diagnostic.SST1663.severity = error # A // comment before a public member reads like a summary +dotnet_diagnostic.SST1664.severity = error # A summary separates paragraphs with blank lines instead of +dotnet_diagnostic.SST1665.severity = error # An names a type but says nothing about what triggers it +dotnet_diagnostic.SST1666.severity = error # Documentation elements are out of the conventional order # Concurrency and modernization -dotnet_diagnostic.SST1900.severity = error # see docs/rules/SST1900.md dotnet_diagnostic.SST1901.severity = error # A lock targets a field or property reachable from outside the declaring type dotnet_diagnostic.SST1902.severity = error # Do not lock on 'this', a Type, or a string dotnet_diagnostic.SST1903.severity = error # Do not lock on a newly-created object dotnet_diagnostic.SST1904.severity = error # A lock targets a non-readonly field dotnet_diagnostic.SST1905.severity = error # An async method or converted delegate returns void -dotnet_diagnostic.SST2000.severity = suggestion # A null check plus throw should use ArgumentNullException.ThrowIfNull +dotnet_diagnostic.SST2000.severity = error # A null check plus throw should use ArgumentNullException.ThrowIfNull dotnet_diagnostic.SST2001.severity = error # Use ArgumentException.ThrowIfNullOrEmpty dotnet_diagnostic.SST2002.severity = error # Use ArgumentException.ThrowIfNullOrWhiteSpace -dotnet_diagnostic.SST2003.severity = suggestion # A disposed check should use ObjectDisposedException.ThrowIf -dotnet_diagnostic.SST2004.severity = suggestion # A range check should use an ArgumentOutOfRangeException.ThrowIf... helper +dotnet_diagnostic.SST2003.severity = error # A disposed check should use ObjectDisposedException.ThrowIf +dotnet_diagnostic.SST2004.severity = error # A range check should use an ArgumentOutOfRangeException.ThrowIf... helper dotnet_diagnostic.SST2005.severity = error # Use the 'is' type pattern instead of comparing an 'as' cast to null dotnet_diagnostic.SST2006.severity = error # Use the 'is not' pattern instead of negating an 'is' check dotnet_diagnostic.SST2007.severity = error # Use declaration patterns instead of an is check followed by a cast local @@ -1519,41 +1265,46 @@ dotnet_diagnostic.SST2013.severity = error # An if whose entire body is another dotnet_diagnostic.SST2014.severity = error # A goto jumps to a label dotnet_diagnostic.SST2015.severity = error # A ++ or -- is buried inside a larger expression dotnet_diagnostic.SST2016.severity = error # A DateTime on a visible signature loses its offset at the boundary -dotnet_diagnostic.SST2017.severity = error # A .Date or .TimeOfDay read proves the value is only a date, or only a time of day +dotnet_diagnostic.SST2017.severity = error # A .Date or .TimeOfDay read proves the value is only one of the two dotnet_diagnostic.SST2018.severity = error # A redundant null check sits beside an is type pattern +dotnet_diagnostic.SST2019.severity = error # Test for null rather than for the object type # Modern language and library usage dotnet_diagnostic.SST1700.severity = error # An extension block declares no members dotnet_diagnostic.SST1701.severity = error # Two extension blocks in a type share the same receiver type dotnet_diagnostic.SST1702.severity = error # Extension blocks in a type are separated by other members -dotnet_diagnostic.SST1703.severity = error # A classic this-parameter extension method is used where an extension block could be +dotnet_diagnostic.SST1703.severity = error # A classic this-parameter extension method could be an extension block dotnet_diagnostic.SST1704.severity = error # A class declaring extension blocks is not named with an Extensions suffix dotnet_diagnostic.SST1705.severity = error # A class mixes classic extension methods with extension blocks dotnet_diagnostic.SST1706.severity = error # An extension block targets a broad receiver type such as object or dynamic dotnet_diagnostic.SST1707.severity = error # Extension blocks should be ordered by receiver type -dotnet_diagnostic.SST1708.severity = error # An extension method never uses its `this` receiver, so it need not be an extension. -dotnet_diagnostic.SST1709.severity = none # A method in a `*Extensions` class whose first parameter lacks `this`. Code fix converts it to an extension block. Opt-in. +dotnet_diagnostic.SST1708.severity = error # An extension method never uses its this receiver +dotnet_diagnostic.SST1709.severity = error # A method in an *Extensions class whose first parameter lacks this +dotnet_diagnostic.SST1710.severity = error # An accessor-shaped extension method reads better as an extension indexer +dotnet_diagnostic.SST1711.severity = error # An extension block member never reads the block's receiver +dotnet_diagnostic.SST1712.severity = error # An extension block of only static members names a receiver nothing can read dotnet_diagnostic.SST1800.severity = error # Record classes should be sealed dotnet_diagnostic.SST1801.severity = error # A positional record parameter does not match the configured casing dotnet_diagnostic.SST1802.severity = error # A record declares a settable rather than init-only instance property dotnet_diagnostic.SST1803.severity = error # A record struct is not declared readonly -dotnet_diagnostic.SST1804.severity = error # A positional record has an empty `{ }` body where `;` would do. Code fix rewrites it. Info. +dotnet_diagnostic.SST1804.severity = error # A positional record has an empty { } body where ; would do dotnet_diagnostic.SST2100.severity = error # An empty collection creation can use [] dotnet_diagnostic.SST2101.severity = error # An explicit collection creation can use [...] dotnet_diagnostic.SST2102.severity = error # A span-targeted stackalloc initializer can use a collection expression dotnet_diagnostic.SST2103.severity = error # A collection-builder factory call can use a collection expression dotnet_diagnostic.SST2104.severity = error # A short builder-local sequence can return a collection expression -dotnet_diagnostic.SST2105.severity = error # A literal array materialized with LINQ can use the target collection expression directly +dotnet_diagnostic.SST2105.severity = error # A literal array materialized with LINQ can use a collection expression +dotnet_diagnostic.SST2106.severity = error # A collection expression drops the capacity or comparer the creation carried dotnet_diagnostic.SST2200.severity = error # A single-use backing field can use the C# 14 field keyword dotnet_diagnostic.SST2201.severity = error # A return-only switch statement can use a switch expression dotnet_diagnostic.SST2202.severity = error # An object creation repeats an explicit target type dotnet_diagnostic.SST2203.severity = error # An array or string index can use from-end indexing dotnet_diagnostic.SST2204.severity = error # A string slice can use range syntax -dotnet_diagnostic.SST2205.severity = none # An enum switch statement omits named enum values — duplicate of IDE0010 (disabled: too noisy for default/fallthrough) and S131; statement switches deliberately no-op omitted values, and a default to satisfy it is rejected by SST1179/S3532. SST2206 keeps the valuable switch-expression exhaustiveness check. +dotnet_diagnostic.SST2205.severity = none # Enum switch statement omits named values — deliberate; SST2206 covers these dotnet_diagnostic.SST2206.severity = error # An enum switch expression omits named enum values dotnet_diagnostic.SST2207.severity = error # A null guard and return can keep the throw in the returned expression dotnet_diagnostic.SST2208.severity = error # An out variable can be declared at the call site -dotnet_diagnostic.SST2209.severity = none # A null-forgiving operator has no local effect +dotnet_diagnostic.SST2209.severity = error # A null-forgiving operator has no local effect dotnet_diagnostic.SST2210.severity = error # A nullable directive repeats the current file-local state dotnet_diagnostic.SST2211.severity = error # A nullable restore directive has no file-local state to restore dotnet_diagnostic.SST2212.severity = error # Literal UTF-8 byte data can use a u8 string literal @@ -1573,11 +1324,8 @@ dotnet_diagnostic.SST2225.severity = error # A foreach loop hides an explicit el dotnet_diagnostic.SST2226.severity = error # A cast hides an inner explicit conversion dotnet_diagnostic.SST2227.severity = error # A post-assignment null fallback can be folded into the assigned expression dotnet_diagnostic.SST2228.severity = error # A delegate local used only as a call target can be a local function -dotnet_diagnostic.SST2229.severity = error # see docs/rules/SST2229.md -dotnet_diagnostic.SST2230.severity = error # see docs/rules/SST2230.md dotnet_diagnostic.SST2231.severity = error # A broad object pattern can use a direct null pattern dotnet_diagnostic.SST2232.severity = error # nameof does not need concrete generic type arguments -dotnet_diagnostic.SST2233.severity = none # see docs/rules/SST2233.md dotnet_diagnostic.SST2234.severity = error # Nullable should use the T? shorthand dotnet_diagnostic.SST2235.severity = error # Capture-free local functions should be static dotnet_diagnostic.SST2236.severity = error # Tail-position using blocks can use using declarations @@ -1586,63 +1334,69 @@ dotnet_diagnostic.SST2238.severity = error # Nested property patterns can use ex dotnet_diagnostic.SST2239.severity = error # Forwarding lambdas can use method groups dotnet_diagnostic.SST2240.severity = error # Delegate null checks can use conditional invocation dotnet_diagnostic.SST2241.severity = error # Constructors that only store parameters can use primary-constructor storage -dotnet_diagnostic.SST2242.severity = error # Enum switch statement mappings should name every enum value or include a catch-all +dotnet_diagnostic.SST2242.severity = error # Enum switch mappings should name every value or include a catch-all dotnet_diagnostic.SST2243.severity = error # A verbatim string with escapes or line breaks can use a raw string literal dotnet_diagnostic.SST2244.severity = error # A numeric literal's suffix is lower case dotnet_diagnostic.SST2245.severity = error # A for loop with only a condition should be a while loop -dotnet_diagnostic.SST2246.severity = error # A chain of conditional expressions testing one value against constants can be a switch expression +dotnet_diagnostic.SST2246.severity = error # A chain of conditionals against constants can be a switch expression dotnet_diagnostic.SST2247.severity = error # Consecutive locals copying one value's members in order can be a deconstruction dotnet_diagnostic.SST2248.severity = error # Two constant comparisons of the same value can fold into one is-pattern -dotnet_diagnostic.SST2249.severity = error # A literal-format string.Format or literal concatenation can be an interpolated string -dotnet_diagnostic.SST2250.severity = error # A bare local assigned once by the next statement can be an initialized declaration +dotnet_diagnostic.SST2249.severity = error # A literal string.Format or concatenation can be interpolated +dotnet_diagnostic.SST2250.severity = error # A bare local assigned by the next statement can be an initialized declaration dotnet_diagnostic.SST2251.severity = error # A method call names type arguments that inference would supply dotnet_diagnostic.SST2252.severity = error # A switch statement is nested inside another switch statement -dotnet_diagnostic.SST2254.severity = none # A target-typed `new()` is written where an explicit type reads more clearly; the code fix restores `new TypeName(...)`. Opt-in — the counterpart to SST2202's target-typed direction, so a team enables at most one. +dotnet_diagnostic.SST2254.severity = none # Explicit type where new() is written — counterpart to SST2202, enable one dotnet_diagnostic.SST2255.severity = error # A hand-written null-or-empty string test. Code fix uses `string.IsNullOrEmpty`. -dotnet_diagnostic.SST2256.severity = error # An extension method called in static form. Code fix rewrites to instance form. Info. -dotnet_diagnostic.SST2257.severity = error # A lambda block body that is a single `return`. Code fix uses an expression body. Info. -dotnet_diagnostic.SST2258.severity = error # A redundant explicit delegate wrapper (`new EventHandler(M)`). Code fix drops it. Info. +dotnet_diagnostic.SST2256.severity = error # An extension method called in static form +dotnet_diagnostic.SST2257.severity = error # A lambda block body that is a single return +dotnet_diagnostic.SST2258.severity = error # A redundant explicit delegate wrapper dotnet_diagnostic.SST2259.severity = error # A stray `;` after a type declaration. Code fix removes it. Info. dotnet_diagnostic.SST2260.severity = error # An `as` cast to a type the operand already has. Code fix removes it. Info. dotnet_diagnostic.SST2261.severity = error # `(x && !y) -dotnet_diagnostic.SST2262.severity = error # A raw string literal whose content needs no raw syntax. Code fix demotes it. Info. -dotnet_diagnostic.SST2263.severity = error # An infinite loop whose body re-derives its stop condition. Code fix hoists the condition into the header. Info. +dotnet_diagnostic.SST2262.severity = error # A raw string literal whose content needs no raw syntax +dotnet_diagnostic.SST2263.severity = error # An infinite loop whose body re-derives its stop condition dotnet_diagnostic.SST2264.severity = error # A numeric literal cast to an enum. Code fix names the member. -dotnet_diagnostic.SST2265.severity = none # Consecutive fluent calls on one receiver can fold into a chain. Opt-in. -dotnet_diagnostic.SST2266.severity = none # A local read exactly once can be inlined into that use. Opt-in. -dotnet_diagnostic.SST2267.severity = none # Infinite loops written in mixed `while(true)`/`for(;;)` styles. Configurable. Opt-in. -dotnet_diagnostic.SST2268.severity = none # Inconsistent `()` on object creation with an initializer. Configurable. Opt-in. -dotnet_diagnostic.SST2269.severity = none # Inconsistent parentheses around a conditional's condition. Configurable. Opt-in. -dotnet_diagnostic.SST2270.severity = none # Inconsistent explicit-vs-implicit array-creation type. Configurable. Opt-in. -dotnet_diagnostic.SST2271.severity = none # `var`-vs-explicit local type per the configured preference. Configurable. Opt-in. -dotnet_diagnostic.SST2272.severity = none # `[Flags]` member values written as mixed decimals and shifts. Configurable. Opt-in. -dotnet_diagnostic.SST2273.severity = none # A function or loop body wraps its work in a trailing `if` that could be an early-exit guard clause. Code fix inverts it. Configurable threshold. Opt-in. -dotnet_diagnostic.SST2274.severity = error # A value assigned with `as` and then null-checked is an `is` declaration pattern in one step. Code fix rewrites it. -dotnet_diagnostic.SST2275.severity = error # A method whose block body is a single statement can use an expression body `=> expr`. Code fix rewrites it. -dotnet_diagnostic.SST2276.severity = none # A constructor whose block body is a single statement can use an expression body. Code fix rewrites it. Opt-in. -dotnet_diagnostic.SST2277.severity = none # An operator whose block body is a single `return` can use an expression body. Code fix rewrites it. Opt-in. -dotnet_diagnostic.SST2278.severity = none # A conversion operator whose block body is a single `return` can use an expression body. Code fix rewrites it. Opt-in. -dotnet_diagnostic.SST2279.severity = error # A get-only property whose getter is a single `return` can use a whole-member expression body. Code fix rewrites it. -dotnet_diagnostic.SST2280.severity = error # A get-only indexer whose getter is a single `return` can use a whole-member expression body. Code fix rewrites it. -dotnet_diagnostic.SST2281.severity = error # A local function whose block body is a single statement can use an expression body. Code fix rewrites it. -dotnet_diagnostic.SST2282.severity = error # A reference-type `ReferenceEquals` check against `null` reads as an `is null` / `is not null` pattern. Code fix rewrites it. -dotnet_diagnostic.SST2283.severity = error # A null guard that throws right before assigning the guarded value can fold into the assignment as `?? throw`. Code fix rewrites it. +dotnet_diagnostic.SST2265.severity = error # Consecutive fluent calls on one receiver can fold into a chain +dotnet_diagnostic.SST2266.severity = error # A local read exactly once can be inlined into that use +dotnet_diagnostic.SST2267.severity = error # Infinite loops written in mixed `while(true)`/`for(;;)` styles. Configurable. +dotnet_diagnostic.SST2268.severity = error # Inconsistent `()` on object creation with an initializer. Configurable. +dotnet_diagnostic.SST2269.severity = error # Inconsistent parentheses around a conditional's condition. Configurable. +dotnet_diagnostic.SST2270.severity = error # Inconsistent explicit-vs-implicit array-creation type. Configurable. +dotnet_diagnostic.SST2271.severity = error # `var`-vs-explicit local type per the configured preference. Configurable. +dotnet_diagnostic.SST2272.severity = error # `[Flags]` member values written as mixed decimals and shifts. Configurable. +dotnet_diagnostic.SST2273.severity = error # A trailing if that could be an early-exit guard clause +dotnet_diagnostic.SST2274.severity = error # An 'as' assignment plus null check is one is-declaration pattern +dotnet_diagnostic.SST2275.severity = error # A method whose block body is a single statement can use => expr +dotnet_diagnostic.SST2276.severity = error # A constructor whose block body is a single statement can use => +dotnet_diagnostic.SST2277.severity = error # An operator whose block body is a single return can use => +dotnet_diagnostic.SST2278.severity = error # A conversion operator whose block body is a single return can use => +dotnet_diagnostic.SST2279.severity = error # A get-only property whose getter is a single return can use => +dotnet_diagnostic.SST2280.severity = error # A get-only indexer whose getter is a single return can use => +dotnet_diagnostic.SST2281.severity = error # A local function whose block body is a single statement can use => +dotnet_diagnostic.SST2282.severity = error # A ReferenceEquals check against null reads as an is null pattern +dotnet_diagnostic.SST2283.severity = error # A null guard before an assignment can fold into it as ?? throw +dotnet_diagnostic.SST2284.severity = error # A statement steps a value by one through a compound assignment +dotnet_diagnostic.SST2285.severity = error # A null guard is conjoined with a member read on the same value +dotnet_diagnostic.SST2286.severity = error # ToString is called on a receiver already typed as string +dotnet_diagnostic.SST2287.severity = error # A while loop owns its counter, so a for header would gather it +dotnet_diagnostic.SST2288.severity = error # A conditional expression has a boolean literal in exactly one branch +dotnet_diagnostic.SST2289.severity = error # An unsafe block no longer needs an unsafe context # Design dotnet_diagnostic.SST2300.severity = error # A class implements IDisposable but builds only half of the disposal pattern dotnet_diagnostic.SST2301.severity = error # A class implementing IEquatable for itself can still be derived from dotnet_diagnostic.SST2302.severity = error # A type overloads an operator without the rest of the set it belongs to dotnet_diagnostic.SST2303.severity = error # A [Flags] enum's members are not distinct bit values -dotnet_diagnostic.SST2304.severity = error # An event's delegate does not have the standard (object sender, TEventArgs e) shape +dotnet_diagnostic.SST2304.severity = error # An event delegate lacks the (object sender, TEventArgs e) shape dotnet_diagnostic.SST2305.severity = error # A mutable collection property declares a caller-visible setter dotnet_diagnostic.SST2306.severity = error # A collection-returning member hands back null -dotnet_diagnostic.SST2307.severity = error # A generic method's type parameter appears in no parameter, so no caller can infer it +dotnet_diagnostic.SST2307.severity = error # A generic method type parameter appears in no parameter and cannot be inferred dotnet_diagnostic.SST2308.severity = error # An [Obsolete] attribute carries no message -dotnet_diagnostic.SST2309.severity = error # An externally visible member declares an optional parameter, so callers bake in the default +dotnet_diagnostic.SST2309.severity = error # An externally visible member declares an optional parameter dotnet_diagnostic.SST2310.severity = error # Deprecated code is still here; remove it once its last caller is gone dotnet_diagnostic.SST2311.severity = error # A visible const is copied into every assembly that reads it dotnet_diagnostic.SST2312.severity = error # A type is declared outside any namespace dotnet_diagnostic.SST2313.severity = error # An enum is stored as a type the project does not allow -dotnet_diagnostic.SST2314.severity = none # An [Obsolete] has a message but no DiagnosticId — unusable here: ObsoleteAttribute.DiagnosticId is .NET 5+, and this source is shared with net462 +dotnet_diagnostic.SST2314.severity = none # [Obsolete] with a message but no DiagnosticId — the property is .NET 5+ only dotnet_diagnostic.SST2315.severity = error # A type owns a disposable field but does not implement IDisposable dotnet_diagnostic.SST2316.severity = error # A type declares Dispose or DisposeAsync without implementing IDisposable dotnet_diagnostic.SST2317.severity = error # A disposable type owns a raw IntPtr without a SafeHandle or finalizer @@ -1651,19 +1405,22 @@ dotnet_diagnostic.SST2319.severity = error # An overload's optional default can dotnet_diagnostic.SST2320.severity = error # An interface inherits two interfaces that declare the same member dotnet_diagnostic.SST2321.severity = error # Environment.Exit or Environment.FailFast is called from library code dotnet_diagnostic.SST2322.severity = error # A non-private readonly field holds a mutable collection callers can still change -dotnet_diagnostic.SST2323.severity = error # A stateless abstract class declaring only public abstract members should be an interface +dotnet_diagnostic.SST2323.severity = error # A stateless abstract class with only public abstract members dotnet_diagnostic.SST2324.severity = error # A member is declared more accessible than its containing type dotnet_diagnostic.SST2325.severity = error # An async method checks an argument after its first await -dotnet_diagnostic.SST2326.severity = none # An interface-typed value is narrowed to a concrete implementation — this is a high-performance core library, not strictly SOLID code, and narrowing to a known runtime type is a normal fast-path technique here: foreach over IEnumerable boxes List's struct enumerator (40 bytes per call, measured) where the indexed loop behind the type test allocates nothing -dotnet_diagnostic.SST2327.severity = error # A type tests its own runtime type against a class instead of dispatching through a virtual member +dotnet_diagnostic.SST2326.severity = none # Interface value narrowed to a concrete type — a deliberate fast path here +dotnet_diagnostic.SST2327.severity = error # A type tests its own runtime type instead of dispatching virtually dotnet_diagnostic.SST2328.severity = error # A raw native pointer handle is exposed instead of a SafeHandle dotnet_diagnostic.SST2329.severity = error # A `[Flags]` enum declares no zero-valued member. Code fix adds `None = 0`. -dotnet_diagnostic.SST2330.severity = error # A `[Flags]` member is a numeric literal equal to a combination of others (`All = 7`). Code fix writes `A -dotnet_diagnostic.SST2331.severity = none # An enum leaves member values implicit, so their numbers depend on declaration order. Opt-in. -dotnet_diagnostic.SST2332.severity = error # An auto-property's `private set` is only written during construction; make it get-only. -dotnet_diagnostic.SST2333.severity = none # A generic comparison/equality contract is implemented without its non-generic counterpart. Opt-in. -dotnet_diagnostic.SST2334.severity = none # A publicly visible type has no `[DebuggerDisplay]`. Opt-in. -dotnet_diagnostic.SST2335.severity = none # Parts of a partial type disagree on the `static` modifier. Opt-in. +dotnet_diagnostic.SST2330.severity = error # A [Flags] member literal equal to a combination of other members +dotnet_diagnostic.SST2331.severity = error # An enum leaves member values implicit, so numbering follows declaration order +dotnet_diagnostic.SST2332.severity = error # An auto-property private set is only written during construction +dotnet_diagnostic.SST2333.severity = error # A generic equality contract lacks its non-generic counterpart +dotnet_diagnostic.SST2334.severity = error # A publicly visible type has no `[DebuggerDisplay]` +dotnet_diagnostic.SST2335.severity = error # Parts of a partial type disagree on the `static` modifier +dotnet_diagnostic.SST2336.severity = error # A concrete attribute type declares no [AttributeUsage] +dotnet_diagnostic.SST2337.severity = error # A hierarchy whose derivations are all known is not declared closed +dotnet_diagnostic.SST2338.severity = error # A hand-rolled discriminated type is not declared as a union # Correctness dotnet_diagnostic.SST2400.severity = error # Two arguments name each other's parameters and have been transposed @@ -1675,7 +1432,7 @@ dotnet_diagnostic.SST2405.severity = error # A [DebuggerDisplay] string names a dotnet_diagnostic.SST2406.severity = error # A loop's stop condition reads only variables the loop never writes dotnet_diagnostic.SST2407.severity = error # A declared event is never raised dotnet_diagnostic.SST2408.severity = error # A StringBuilder is filled and never read -dotnet_diagnostic.SST2409.severity = error # A throw constructs a general exception type (Exception/SystemException/ApplicationException) +dotnet_diagnostic.SST2409.severity = error # A throw constructs a general exception type dotnet_diagnostic.SST2410.severity = error # A created disposable is never disposed and never leaves the method dotnet_diagnostic.SST2411.severity = error # A for loop declares and tests a counter it never steps dotnet_diagnostic.SST2412.severity = error # A for loop update moves the counter away from its stop condition @@ -1701,40 +1458,47 @@ dotnet_diagnostic.SST2431.severity = error # A ToString override can return null dotnet_diagnostic.SST2432.severity = error # GetType is called on a value that is already a System.Type dotnet_diagnostic.SST2433.severity = error # A caller-info parameter is not last in the list dotnet_diagnostic.SST2434.severity = error # An array is assigned through a covariant element type -dotnet_diagnostic.SST2435.severity = error # A non-object base's value-equality Equals is used as a reference-equality fast path +dotnet_diagnostic.SST2435.severity = error # A non-object base's value Equals used as a reference fast path dotnet_diagnostic.SST2436.severity = error # An event is raised with a null sender or null args dotnet_diagnostic.SST2437.severity = error # A generic type inherits from itself recursively dotnet_diagnostic.SST2438.severity = error # A catch that discards its exception logs at Error or Critical without it -dotnet_diagnostic.SST2439.severity = error # An exception is passed as a log template argument instead of the exception parameter +dotnet_diagnostic.SST2439.severity = error # An exception is passed as a log template argument dotnet_diagnostic.SST2440.severity = error # Log template arguments are transposed dotnet_diagnostic.SST2441.severity = error # A log template has an empty or non-identifier placeholder dotnet_diagnostic.SST2442.severity = error # A log template repeats a named placeholder dotnet_diagnostic.SST2443.severity = error # An ILogger is injected or created with the wrong category type dotnet_diagnostic.SST2444.severity = error # A regular expression pattern is invalid -dotnet_diagnostic.SST2445.severity = error # A culture-sensitive custom date or time format is used without an invariant culture +dotnet_diagnostic.SST2445.severity = error # A culture-sensitive date or time format without an invariant culture dotnet_diagnostic.SST2446.severity = error # A Stream.ReadAsync result is discarded through ConfigureAwait or a local -dotnet_diagnostic.SST2448.severity = error # A combined or opaque delegate is removed with - or -=, which strips only a contiguous run +dotnet_diagnostic.SST2447.severity = error # An integer subtraction is compared against literal zero +dotnet_diagnostic.SST2448.severity = error # A combined delegate removed with -= strips only a contiguous run dotnet_diagnostic.SST2449.severity = error # A lambda or anonymous-method handler is removed with -=, which never matches it -dotnet_diagnostic.SST2450.severity = error # A Debug.Assert condition performs a side effect that a release build compiles out +dotnet_diagnostic.SST2450.severity = error # A Debug.Assert condition performs a side effect dotnet_diagnostic.SST2451.severity = error # Every constructor is private and no member ever creates an instance dotnet_diagnostic.SST2452.severity = error # A [Pure] method returns void, Task, or ValueTask, so it has no observable result +dotnet_diagnostic.SST2453.severity = error # A ?? whose right operand is a constant null substitutes null for null +dotnet_diagnostic.SST2454.severity = error # The result of an 'as' conversion is dereferenced with no null check +dotnet_diagnostic.SST2455.severity = error # Two enum members hold the same number without saying so dotnet_diagnostic.SST2456.severity = error # An override or new field-like event gets its own backing delegate field dotnet_diagnostic.SST2457.severity = error # An integer Sum wrapped in unchecked still throws on overflow dotnet_diagnostic.SST2458.severity = error # A bitwise operator is applied to an enum not declared [Flags] dotnet_diagnostic.SST2459.severity = error # [Optional] on a ref or out parameter advertises an optionality no caller can use dotnet_diagnostic.SST2460.severity = error # [DefaultValue] on a method or record parameter is inert +dotnet_diagnostic.SST2461.severity = error # A [Flags] member sets a bit that no member of the enum declares dotnet_diagnostic.SST2462.severity = error # A new member is less accessible than the inherited member it hides dotnet_diagnostic.SST2463.severity = error # A field differs from an inherited accessible field only by case -dotnet_diagnostic.SST2464.severity = error # A mutable class declares a value-equality operator ==, so it is lost as a hash key +dotnet_diagnostic.SST2464.severity = error # A mutable class declares value-equality ==, so it is lost as a hash key dotnet_diagnostic.SST2465.severity = error # A for loop body reassigns the counter or the local its condition tests -dotnet_diagnostic.SST2467.severity = error # A params overload is shadowed by a same-arity overload with a more specific last parameter -dotnet_diagnostic.SST2468.severity = error # A classic partial method is declared but never implemented, so its calls are removed -dotnet_diagnostic.SST2470.severity = error # Two string literals concatenate with no space, fusing a SQL keyword into the next token +dotnet_diagnostic.SST2466.severity = error # A finally clause contains no statements +dotnet_diagnostic.SST2467.severity = error # A params overload is shadowed by a same-arity overload +dotnet_diagnostic.SST2468.severity = error # A classic partial method is declared but never implemented +dotnet_diagnostic.SST2469.severity = error # A write through an extension block's by-value struct receiver is discarded +dotnet_diagnostic.SST2470.severity = error # Two string literals concatenate with no space, fusing keywords dotnet_diagnostic.SST2472.severity = error # A type is exported for a contract it neither implements nor inherits dotnet_diagnostic.SST2473.severity = error # A shared export part is constructed with new, bypassing the container dotnet_diagnostic.SST2474.severity = error # A part-creation-policy attribute is applied to a type with no [Export] dotnet_diagnostic.SST2475.severity = error # An entity's primary key is typed DateTime or DateTimeOffset -dotnet_diagnostic.SST2479.severity = error # A loop variable captured by a callback stored beyond the iteration reads its final value +dotnet_diagnostic.SST2479.severity = error # A loop variable captured beyond the iteration reads its final value dotnet_diagnostic.SST2481.severity = error # A GetHashCode override folds the base identity hash into a value hash dotnet_diagnostic.SST2484.severity = error # A handle read through DangerousGetHandle is not reference-counted dotnet_diagnostic.SST2485.severity = error # A NotImplementedException is left in shipped code @@ -1743,17 +1507,20 @@ dotnet_diagnostic.SST2487.severity = error # A [ConstructorArgument] does not na dotnet_diagnostic.SST2488.severity = error # An exception is logged and rethrown, duplicating the record dotnet_diagnostic.SST2489.severity = error # A relational comparison is decided by the operand's type rather than its value dotnet_diagnostic.SST2490.severity = error # Adjacent try statements with identical handling should be merged -dotnet_diagnostic.SST2491.severity = error # A non-`async` method returns an awaitable from inside `using`/`try-finally`/`lock`, so the resource is torn down before the task completes. Code fix makes it `async`. +dotnet_diagnostic.SST2491.severity = error # A non-async method returns an awaitable from inside using or lock dotnet_diagnostic.SST2492.severity = error # A null-guard throws on a parameter the signature declares may be null. -dotnet_diagnostic.SST2493.severity = error # `== null`/`!= null` on an unconstrained generic `T`. Code fix uses `is null`/`is not null`. -dotnet_diagnostic.SST2494.severity = error # A `??` whose left operand is a constant null, so the right is always taken. Code fix folds it. -dotnet_diagnostic.SST2495.severity = error # A `[Flags]` combination includes an operand whose bits another already covers. Code fix removes it. -dotnet_diagnostic.SST2496.severity = error # An explicit `Dispose`/`Close` on a resource an enclosing `using` already disposes. Code fix removes it. Info. +dotnet_diagnostic.SST2493.severity = error # == null or != null on an unconstrained generic T +dotnet_diagnostic.SST2494.severity = error # A ?? whose left operand is a constant null +dotnet_diagnostic.SST2495.severity = error # A [Flags] combination includes bits another operand already covers +dotnet_diagnostic.SST2496.severity = error # An explicit Dispose/Close an enclosing using already performs +dotnet_diagnostic.SST2497.severity = error # A member forwards to itself, so calling it recurses until the stack is gone +dotnet_diagnostic.SST2498.severity = error # nameof on a type parameter is the constant "T" +dotnet_diagnostic.SST2499.severity = error # A process exit code is read where the exit status carries the signal # Testing dotnet_diagnostic.SST2500.severity = error # A test method contains no assertion and no expected-exception check dotnet_diagnostic.SST2501.severity = error # An equality or identity assertion compares an expression with itself -dotnet_diagnostic.SST2502.severity = error # An equality assertion passes the constant as actual and the computed value as expected +dotnet_diagnostic.SST2502.severity = error # An equality assertion has expected and actual transposed dotnet_diagnostic.SST2503.severity = error # An equality assertion compares a value against a boolean literal dotnet_diagnostic.SST2504.severity = error # A test fixture declares and inherits no test method dotnet_diagnostic.SST2505.severity = error # A test method declares parameters but no data source @@ -1763,24 +1530,24 @@ dotnet_diagnostic.SST2508.severity = error # A fluent assertion is started but n dotnet_diagnostic.SST2509.severity = error # A test method has a shape the runner cannot execute # Logging -dotnet_diagnostic.SST2600.severity = error # Application output is written through legacy Trace instead of a structured logger +dotnet_diagnostic.SST2600.severity = error # Output written through legacy Trace instead of a structured logger dotnet_diagnostic.SST2601.severity = error # A logger field or property does not follow the logger naming convention # Frameworks -dotnet_diagnostic.SST2700.severity = error # An MVC route template contains a backslash; route segments are separated by `/`, so the route is unreachable. Code fix replaces `\` with `/`. -dotnet_diagnostic.SST2701.severity = error # A `[JSInvokable]` method is not public, so JavaScript interop cannot call it. Code fix makes it public. -dotnet_diagnostic.SST2702.severity = error # A `[SupplyParameterFromQuery]` property has a type the framework cannot bind from the query string, which throws at runtime. -dotnet_diagnostic.SST2703.severity = error # A routable component's route constraint (`{id:int}`) disagrees with the matching `[Parameter]` CLR type, so the route silently fails to match. -dotnet_diagnostic.SST2704.severity = error # A public action on an `[ApiController]` declares no HTTP-verb attribute, so it answers every verb and can make routing ambiguous. -dotnet_diagnostic.SST2705.severity = none # A bound model member is a non-nullable value type with no required marker, so a request that omits it binds the default with no error. Opt-in. -dotnet_diagnostic.SST2706.severity = error # A Windows Forms entry point carries neither `[STAThread]` nor `[MTAThread]`; without STA, clipboard, drag-and-drop, and common dialogs misbehave. Code fix adds `[STAThread]`. -dotnet_diagnostic.SST2707.severity = none # A fire-and-forget `Task.Run` in a controller captures the request's `HttpContext`, which is disposed when the request ends, so the background work throws `ObjectDisposedException`. Opt-in. -dotnet_diagnostic.SST2708.severity = error # A component subscribes to an event in a lifecycle method but never unsubscribes, so the event source keeps the component alive — a per-session leak on a Server circuit. -dotnet_diagnostic.SST2709.severity = error # `StateHasChanged` is called while the component is being disposed, which the renderer no longer supports and throws. -dotnet_diagnostic.SST2710.severity = error # `StateHasChanged` is called directly from a timer callback, off the renderer's dispatcher; marshal it with `InvokeAsync(StateHasChanged)`. -dotnet_diagnostic.SST2711.severity = error # A synchronous component lifecycle method is overridden as `async void`, which the framework never awaits; override the `…Async` twin returning `Task`. Code fix rewrites the signature. -dotnet_diagnostic.SST2712.severity = error # An `[Inject]`/`[CascadingParameter]` property has no setter, so the framework's reflection-based binding leaves it null. Code fix adds a setter. -dotnet_diagnostic.SST2713.severity = error # A `DotNetObjectReference.Create(this)` is passed inline and never stored, so nothing can dispose it and it leaks on the JavaScript side. +dotnet_diagnostic.SST2700.severity = error # An MVC route template contains a backslash, so the route is unreachable +dotnet_diagnostic.SST2701.severity = error # A [JSInvokable] method is not public, so interop cannot call it +dotnet_diagnostic.SST2702.severity = error # A [SupplyParameterFromQuery] property cannot bind from the query string +dotnet_diagnostic.SST2703.severity = error # A route constraint disagrees with the matching [Parameter] CLR type +dotnet_diagnostic.SST2704.severity = error # An [ApiController] action declares no HTTP-verb attribute +dotnet_diagnostic.SST2705.severity = error # A bound model member is a non-nullable value type with no required marker +dotnet_diagnostic.SST2706.severity = error # A Windows Forms entry point carries neither [STAThread] nor [MTAThread] +dotnet_diagnostic.SST2707.severity = error # A fire-and-forget Task.Run in a controller captures the request HttpContext +dotnet_diagnostic.SST2708.severity = error # A component subscribes to an event and never unsubscribes +dotnet_diagnostic.SST2709.severity = error # StateHasChanged is called while the component is being disposed +dotnet_diagnostic.SST2710.severity = error # StateHasChanged is called from a timer callback, off the dispatcher +dotnet_diagnostic.SST2711.severity = error # A component lifecycle method is overridden as async void +dotnet_diagnostic.SST2712.severity = error # An [Inject] or [CascadingParameter] property has no setter +dotnet_diagnostic.SST2713.severity = error # A DotNetObjectReference.Create(this) is passed inline and never stored ################### # PerformanceSharp Analyzers (PSH) @@ -1790,13 +1557,13 @@ performancesharp.avoid_linq_on_hot_path = true # performancesharp.excluded_properties = Items, Keys # PSH1017 (comma-separated; properties allowed to copy on read) # performancesharp.include_public = false # PSH1411 (set true in an app to seal public types too; a break in a library) dotnet_diagnostic.PSH1000.severity = error # Anonymous functions without captures should be static -dotnet_diagnostic.PSH1001.severity = error # Avoid allocating zero-length arrays (fix prefers [] on C# 12+, else Array.Empty()) +dotnet_diagnostic.PSH1001.severity = error # Avoid allocating zero-length arrays dotnet_diagnostic.PSH1002.severity = error # Empty finalizers should be removed dotnet_diagnostic.PSH1003.severity = error # 'in' parameters should use readonly structs dotnet_diagnostic.PSH1004.severity = error # Constant arrays passed as arguments should be hoisted dotnet_diagnostic.PSH1005.severity = error # Structs should define equality members to avoid boxing comparisons dotnet_diagnostic.PSH1006.severity = error # ConcurrentDictionary factories should use the lambda argument -dotnet_diagnostic.PSH1007.severity = error # Pass large readonly structs by 'in' reference (size threshold + exclusions configurable) +dotnet_diagnostic.PSH1007.severity = error # Pass large readonly structs by 'in' reference dotnet_diagnostic.PSH1008.severity = error # GC.SuppressFinalize does nothing for sealed finalizer-free types dotnet_diagnostic.PSH1009.severity = error # Bound variable-length stackalloc with a constant guard dotnet_diagnostic.PSH1010.severity = error # Clear reference-typed arrays when returning them to the pool @@ -1806,15 +1573,18 @@ dotnet_diagnostic.PSH1013.severity = error # Expose constant UTF-8 data as a Rea dotnet_diagnostic.PSH1014.severity = error # Declare immutable structs as readonly dotnet_diagnostic.PSH1015.severity = error # Avoid casting value types through object dotnet_diagnostic.PSH1016.severity = error # Test enum flags with bitwise operators instead of Enum.HasFlag -dotnet_diagnostic.PSH1017.severity = error # A property allocates a copy of a collection on every read (excludable via performancesharp.PSH1017.excluded_properties) +dotnet_diagnostic.PSH1017.severity = error # A property allocates a copy of a collection on every read dotnet_diagnostic.PSH1018.severity = error # A hand-written array is passed to a params parameter dotnet_diagnostic.PSH1019.severity = error # The range indexer on an array allocates a copy; slice with AsSpan/AsMemory dotnet_diagnostic.PSH1020.severity = error # Prefer a jagged array over a multidimensional one -dotnet_diagnostic.PSH1021.severity = error # An explicit GC.Collect or GC.WaitForPendingFinalizers forces collection the runtime tunes itself -dotnet_diagnostic.PSH1022.severity = error # A parameterless `new EventArgs()` allocates where the shared `EventArgs.Empty` singleton would serve. Code fix uses the singleton. +dotnet_diagnostic.PSH1021.severity = error # An explicit GC.Collect forces collection the runtime tunes itself +dotnet_diagnostic.PSH1022.severity = error # A parameterless new EventArgs() where EventArgs.Empty would serve +dotnet_diagnostic.PSH1023.severity = error # A local anonymous type allocates where a tuple would not +dotnet_diagnostic.PSH1024.severity = error # A BitArray is built from a temporary array where a span would do +dotnet_diagnostic.PSH1025.severity = error # A union case is a value type and boxes into the union's payload dotnet_diagnostic.PSH1100.severity = error # Hot-path code should avoid System.Linq.Enumerable calls -dotnet_diagnostic.PSH1101.severity = none # LINQ terminal predicate simplification is reserved for test code; production code should avoid LINQ on hot paths -dotnet_diagnostic.PSH1102.severity = none # LINQ type-filter simplification is reserved for test code; production code should avoid LINQ on hot paths +dotnet_diagnostic.PSH1101.severity = none # LINQ predicate simplification — production code avoids LINQ on hot paths +dotnet_diagnostic.PSH1102.severity = none # LINQ type-filter simplification — production code avoids LINQ on hot paths dotnet_diagnostic.PSH1103.severity = error # Prefer the collection's own count over enumerating dotnet_diagnostic.PSH1104.severity = error # Use TryGetValue instead of ContainsKey followed by an indexer read dotnet_diagnostic.PSH1105.severity = error # Avoid double lookups on dictionaries and sets @@ -1824,9 +1594,9 @@ dotnet_diagnostic.PSH1108.severity = error # Chain secondary sorts with ThenBy dotnet_diagnostic.PSH1109.severity = error # Merge consecutive Where calls dotnet_diagnostic.PSH1110.severity = error # Use the collection's own predicate methods over LINQ dotnet_diagnostic.PSH1111.severity = error # Use Contains for membership tests -dotnet_diagnostic.PSH1112.severity = error # Seed the collection through its constructor (fix honors performancesharp.prefer_collection_expressions) +dotnet_diagnostic.PSH1112.severity = error # Seed the collection through its constructor dotnet_diagnostic.PSH1113.severity = error # Sort naturally instead of ordering by the element itself -dotnet_diagnostic.PSH1114.severity = none # Freeze static lookup collections that are never mutated. Opt-in. +dotnet_diagnostic.PSH1114.severity = error # Freeze static lookup collections that are never mutated dotnet_diagnostic.PSH1115.severity = error # Insert-if-absent should probe the dictionary once dotnet_diagnostic.PSH1116.severity = error # Probe string-keyed collections with a span through GetAlternateLookup dotnet_diagnostic.PSH1117.severity = error # Ask the collection whether it is empty @@ -1864,18 +1634,18 @@ dotnet_diagnostic.PSH1222.severity = error # Concatenate slices without material dotnet_diagnostic.PSH1223.severity = error # A reused composite format string is re-parsed on every call dotnet_diagnostic.PSH1224.severity = error # Convert bytes to hex in one call, not by building the string twice dotnet_diagnostic.PSH1225.severity = error # Decode bytes to a string in one call, without a throwaway char[] -dotnet_diagnostic.PSH1226.severity = error # A string's `ToCharArray()` result is only iterated, allocating a throwaway `char[]`; iterate the string directly. Code fix drops the copy. -dotnet_diagnostic.PSH1227.severity = error # A cheaper equivalent exists — `string.CompareOrdinal` over `Compare(…, Ordinal)`, `Debug.Fail` over `Debug.Assert(false, …)`. Info. Code fix rewrites the call. +dotnet_diagnostic.PSH1226.severity = error # A string's ToCharArray() result is only iterated +dotnet_diagnostic.PSH1227.severity = error # A cheaper equivalent exists, such as string.CompareOrdinal or Debug.Fail dotnet_diagnostic.PSH1300.severity = error # Use System.Threading.Lock for a dedicated lock object dotnet_diagnostic.PSH1301.severity = error # Do not wrap a single task in WhenAll or WaitAll dotnet_diagnostic.PSH1302.severity = error # TaskCompletionSource should run continuations asynchronously dotnet_diagnostic.PSH1303.severity = error # Do not block an async method with Thread.Sleep dotnet_diagnostic.PSH1304.severity = error # Use PeriodicTimer instead of pacing a loop with Task.Delay dotnet_diagnostic.PSH1305.severity = error # Enumerate a ConcurrentDictionary directly, not its Keys/Values snapshots -dotnet_diagnostic.PSH1306.severity = none # Guard one-time execution with an interlocked latch. Opt-in. +dotnet_diagnostic.PSH1306.severity = error # Guard one-time execution with an interlocked latch dotnet_diagnostic.PSH1307.severity = error # Access interlocked fields with Volatile dotnet_diagnostic.PSH1308.severity = error # Return the completed task instead of Task.FromResult -dotnet_diagnostic.PSH1309.severity = none # Register cancellation callbacks without flowing the execution context. Opt-in. +dotnet_diagnostic.PSH1309.severity = error # Register cancellation callbacks without flowing the execution context dotnet_diagnostic.PSH1310.severity = error # Dispose IAsyncDisposable resources with await using in async code dotnet_diagnostic.PSH1311.severity = error # Remove a pass-through async state machine and return the task directly dotnet_diagnostic.PSH1312.severity = error # Return a completed task instead of null @@ -1883,6 +1653,8 @@ dotnet_diagnostic.PSH1313.severity = error # A synchronous call where an async o dotnet_diagnostic.PSH1314.severity = error # Read and write streams through the memory-based overloads dotnet_diagnostic.PSH1315.severity = error # A blocking wait on an awaitable that may not be done dotnet_diagnostic.PSH1316.severity = error # A ValueTask is awaited in a loop or awaited after being copied +dotnet_diagnostic.PSH1317.severity = error # A cancellation token is not handed to the overload that accepts one +dotnet_diagnostic.PSH1318.severity = error # Options validation blocks where the async contract exists dotnet_diagnostic.PSH1400.severity = error # Use the static HashData method for one-shot hashing dotnet_diagnostic.PSH1401.severity = error # Attribute types should be sealed dotnet_diagnostic.PSH1402.severity = error # Use const for compile-time constants @@ -1893,7 +1665,7 @@ dotnet_diagnostic.PSH1406.severity = error # Ask Regex for the answer directly dotnet_diagnostic.PSH1407.severity = error # Query the dictionary, not its Keys view dotnet_diagnostic.PSH1408.severity = error # Measure elapsed time with Stopwatch timestamps dotnet_diagnostic.PSH1409.severity = error # Use the built-in throw helpers for argument guards -dotnet_diagnostic.PSH1410.severity = none # Mark trivial forwarders for aggressive inlining. Opt-in. +dotnet_diagnostic.PSH1410.severity = error # Mark trivial forwarders for aggressive inlining dotnet_diagnostic.PSH1411.severity = error # Seal non-public types nothing derives from so the JIT can devirtualize dotnet_diagnostic.PSH1412.severity = error # Use Random.Shared instead of allocating a Random dotnet_diagnostic.PSH1413.severity = error # Read the Unix epoch from the framework, not a hand-built DateTime @@ -1902,29 +1674,28 @@ dotnet_diagnostic.PSH1415.severity = error # Hold the concrete type when the con dotnet_diagnostic.PSH1416.severity = error # Cache the serializer options instead of building them per call dotnet_diagnostic.PSH1417.severity = error # Do not compute an expensive argument for an assertion dotnet_diagnostic.PSH1418.severity = error # An HttpClient is constructed on every call -dotnet_diagnostic.PSH1419.severity = error # A time-zone is resolved with a platform-specific id instead of the cross-platform API -dotnet_diagnostic.PSH1420.severity = error # A shareable client held in an instance field of an Azure Functions worker class is rebuilt on every invocation, leaking sockets and connections; share a static/singleton client or inject `IHttpClientFactory`. +dotnet_diagnostic.PSH1419.severity = error # A time zone is resolved with a platform-specific id +dotnet_diagnostic.PSH1420.severity = error # A shareable client is rebuilt on every Azure Functions invocation +dotnet_diagnostic.PSH1421.severity = error # A static Regex method is called from inside a loop body -# ASP.NET Core - inert in this repo (no route handlers or middleware), enabled so the set stays complete +# ASP.NET Core — inert here, enabled so the set stays complete dotnet_diagnostic.PSH1500.severity = error # A minimal API handler returns Results instead of TypedResults, boxing the result -dotnet_diagnostic.PSH1501.severity = error # Middleware uses the legacy nested-delegate Use overload, allocating a per-request closure -dotnet_diagnostic.PSH1502.severity = error # A route handler returns a deferred sequence the serializer enumerates on the request thread +dotnet_diagnostic.PSH1501.severity = error # Middleware uses the legacy nested-delegate Use overload +dotnet_diagnostic.PSH1502.severity = error # A route handler returns a sequence serialized on the request thread dotnet_diagnostic.PSH1503.severity = error # Response caching is used where server-side output caching applies -dotnet_diagnostic.PSH1505.severity = error # Exceptions are handled in an MVC exception filter instead of an IExceptionHandler -dotnet_diagnostic.PSH1506.severity = error # The HTTP request or response body is read or written synchronously (`ReadToEnd`, `Body.Read`, `Body.Write`), which blocks a thread on Kestrel and buffers the whole payload; use the async overload. Code fix awaits it when the method is already async. +dotnet_diagnostic.PSH1505.severity = error # Exceptions handled in an MVC filter instead of an IExceptionHandler +dotnet_diagnostic.PSH1506.severity = error # The HTTP request or response body is read or written synchronously # Blazor -dotnet_diagnostic.PSH1600.severity = error # A delegate captured per iteration inside a component render loop reallocates on every render (measured ~128 B per row per render) and churns the diff; hoist it to a cached delegate or a precomputed per-item model. -dotnet_diagnostic.PSH1601.severity = error # A JavaScript-interop call is issued once per loop iteration; on Interactive Server each is a separate SignalR round-trip. Batch into a single call over the collection. -dotnet_diagnostic.PSH1602.severity = error # `StateHasChanged` is called unconditionally in `OnAfterRender`/`OnAfterRenderAsync`, scheduling another render every time — a runaway loop. Guard it with `firstRender` or a state flag. -dotnet_diagnostic.PSH1603.severity = error # A non-delegate allocation is used as a component-parameter value inside a render loop, allocating per item and forcing the child to re-render each pass. Sibling of PSH1600. +dotnet_diagnostic.PSH1600.severity = error # A delegate captured per iteration in a render loop reallocates every render +dotnet_diagnostic.PSH1601.severity = error # A JavaScript-interop call is issued once per loop iteration +dotnet_diagnostic.PSH1602.severity = error # StateHasChanged is called unconditionally in OnAfterRender +dotnet_diagnostic.PSH1603.severity = error # A non-delegate allocation is a component parameter in a render loop ################### # SecuritySharp Analyzers (SES) ################### -# Every rule is raised to error, including the three that ship at suggestion (SES1403, SES1506, -# SES1605). Security rules only ever suggest an API they can resolve in the compilation and report -# local shapes only - there is no interprocedural taint tracking, so the taint-flow CA rules stay on. +# Every rule is error; these report local shapes only, so the taint-flow CA rules stay on. # securitysharp.SES1003.iterations = 100000 # minimum accepted PBKDF2 iteration count # securitysharp.SES1403.maxdepth = 64 # highest accepted System.Text.Json MaxDepth @@ -1934,18 +1705,19 @@ dotnet_diagnostic.SES1002.severity = error # Password-based key derivation must dotnet_diagnostic.SES1003.severity = error # Password-based key derivation must use a sufficient iteration count dotnet_diagnostic.SES1004.severity = error # A secret must not be produced from Guid.NewGuid() dotnet_diagnostic.SES1005.severity = error # Compare secret values in constant time -dotnet_diagnostic.SES1006.severity = error # A Data Protection key ring is persisted without a ProtectKeysWith call, so keys sit unencrypted at rest -dotnet_diagnostic.SES1007.severity = error # A cryptographic primitive is implemented by hand instead of using a vetted platform algorithm -dotnet_diagnostic.SES1008.severity = error # An XML signature is verified with the no-key CheckSignature overload, trusting the document's own KeyInfo +dotnet_diagnostic.SES1006.severity = error # A Data Protection key ring is persisted without ProtectKeysWith +dotnet_diagnostic.SES1007.severity = error # A cryptographic primitive is implemented by hand +dotnet_diagnostic.SES1008.severity = error # An XML signature is verified with the no-key CheckSignature overload dotnet_diagnostic.SES1009.severity = error # A password is stored without a slow, salted key-derivation function +dotnet_diagnostic.SES1010.severity = error # AES key wrapping is implemented by hand # Transport dotnet_diagnostic.SES1102.severity = error # Do not accept any server certificate dotnet_diagnostic.SES1104.severity = error # Certificate-chain validation must not be deliberately weakened -dotnet_diagnostic.SES1105.severity = error # Bearer and OpenID Connect metadata must not be retrieved over plain HTTP outside development +dotnet_diagnostic.SES1105.severity = error # Bearer or OpenID Connect metadata is retrieved over plain HTTP dotnet_diagnostic.SES1106.severity = error # Do not send HttpClient requests to a cleartext http URL -dotnet_diagnostic.SES1107.severity = error # A SQL connection string weakens transport security via TrustServerCertificate or a disabled Encrypt -dotnet_diagnostic.SES1108.severity = error # A custom server-certificate validation callback unconditionally returns true, so any certificate is trusted +dotnet_diagnostic.SES1107.severity = error # A SQL connection string weakens transport security +dotnet_diagnostic.SES1108.severity = error # A certificate validation callback unconditionally returns true # Secrets dotnet_diagnostic.SES1201.severity = error # Do not hard-code secrets in source @@ -1969,8 +1741,8 @@ dotnet_diagnostic.SES1401.severity = error # A type resolved from non-constant d dotnet_diagnostic.SES1402.severity = error # Do not load an assembly from raw bytes or a non-constant location dotnet_diagnostic.SES1403.severity = error # JSON deserialization depth limit must stay within a safe ceiling dotnet_diagnostic.SES1404.severity = error # A type is instantiated by name from a non-constant Activator typeName -dotnet_diagnostic.SES1405.severity = error # MessagePack typeless deserialization reconstructs whatever type the payload names -dotnet_diagnostic.SES1406.severity = warning # Reflection must not reach non-public members via BindingFlags.NonPublic (opt-in; replaces S3011) +dotnet_diagnostic.SES1405.severity = error # MessagePack typeless deserialization reconstructs the named type +dotnet_diagnostic.SES1406.severity = error # Reflection must not reach non-public members via BindingFlags.NonPublic # Web hardening dotnet_diagnostic.SES1501.severity = error # A CORS policy must not allow credentials together with any origin @@ -1981,10 +1753,10 @@ dotnet_diagnostic.SES1505.severity = error # The request body size limit must no dotnet_diagnostic.SES1506.severity = error # The developer exception page must be guarded by a development-environment check dotnet_diagnostic.SES1507.severity = error # AllowAnonymous and Authorize on the same declaration conflict dotnet_diagnostic.SES1508.severity = error # A validation method must not fail open by returning success from a catch -dotnet_diagnostic.SES1509.severity = error # A backtracking-prone constant regex runs without a match timeout or NonBacktracking +dotnet_diagnostic.SES1509.severity = error # A backtracking-prone regex runs without a match timeout dotnet_diagnostic.SES1510.severity = error # A controller redirects to a non-constant URL, allowing an open redirect -dotnet_diagnostic.SES1511.severity = error # The forwarded-headers trust boundary is cleared, letting proxies spoof the client IP -dotnet_diagnostic.SES1512.severity = error # Sensitive framework diagnostics are enabled without a development-environment guard +dotnet_diagnostic.SES1511.severity = error # The forwarded-headers trust boundary is cleared +dotnet_diagnostic.SES1512.severity = error # Sensitive diagnostics are enabled without an environment guard dotnet_diagnostic.SES1513.severity = error # An AuthorizeAsync result is discarded, so the guarded operation runs regardless dotnet_diagnostic.SES1514.severity = error # OpenID Connect protections (PKCE, state, nonce) are disabled dotnet_diagnostic.SES1515.severity = error # A Content-Security-Policy value disables its own protection @@ -1992,708 +1764,676 @@ dotnet_diagnostic.SES1515.severity = error # A Content-Security-Policy value dis # AI trust boundaries dotnet_diagnostic.SES1601.severity = error # An LLM system prompt must be a constant, trusted template dotnet_diagnostic.SES1602.severity = error # Do not route AI model output into a process, file, or raw SQL sink -dotnet_diagnostic.SES1603.severity = error # An AI tool declared read-only or non-destructive must not call a state-changing API +dotnet_diagnostic.SES1603.severity = error # A read-only AI tool calls a state-changing API dotnet_diagnostic.SES1604.severity = error # Prompt-template input encoding must not be disabled dotnet_diagnostic.SES1605.severity = error # AI instrumentation must not enable sensitive-data capture dotnet_diagnostic.SES1606.severity = error # Do not fetch model weights over cleartext HTTP # Web UI trust boundaries -dotnet_diagnostic.SES1701.severity = error # Raw HTML is rendered from a non-constant value (`MarkupString`/`AddMarkupContent`), bypassing automatic encoding — an XSS risk. Sanitizer allow-list via `securitysharp.SES1701.sanitizers`. -dotnet_diagnostic.SES1702.severity = error # A JavaScript-interop call targets a script-evaluation primitive (`eval`, `Function`, `document.write`), turning interop into a script-injection channel. -dotnet_diagnostic.SES1703.severity = error # `[Authorize]` on a non-routable component enforces nothing — authorization runs as a routing concern. Exempt types via `securitysharp.SES1703.exempt_types`. -dotnet_diagnostic.SES1704.severity = error # `IHttpContextAccessor` or a cascading `HttpContext` is used in an interactively-rendered component, where it is null or frozen at circuit start. -dotnet_diagnostic.SES1705.severity = error # `NavigationManager.NavigateTo` is called with a target that is not a verified relative URL — an open-redirect risk. Validator allow-list via `securitysharp.SES1705.validators`. -dotnet_diagnostic.SES1706.severity = error # An uploaded file is read with an unbounded or client-chosen size limit, letting an attacker fill server memory. Threshold via `securitysharp.SES1706.max_bytes`. -dotnet_diagnostic.SES1707.severity = error # A secret-shaped literal appears in code reachable as WebAssembly, which downloads to the browser in full — guaranteed disclosure. -dotnet_diagnostic.SES1708.severity = error # `CircuitOptions.DetailedErrors` is enabled, shipping server exception detail to every connected client. -dotnet_diagnostic.SES1709.severity = error # `SerializeAllClaims` serializes every claim into client-readable WebAssembly authentication state, exposing internal ids, tokens, and PII. -dotnet_diagnostic.SES1710.severity = error # Antiforgery validation is disabled on a form (`[RequireAntiforgeryToken(required: false)]`), removing CSRF protection. - - -################### -# Microsoft.CodeAnalysis.PublicApiAnalyzers (RS) -################### -# Public API surface tracking -dotnet_diagnostic.RS0016.severity = error # public symbol missing from the PublicAPI baseline -dotnet_diagnostic.RS0017.severity = error # PublicAPI baseline entry no longer in source +dotnet_diagnostic.SES1701.severity = error # Raw HTML is rendered from a non-constant value — an XSS risk +dotnet_diagnostic.SES1702.severity = error # A JavaScript-interop call targets a script-evaluation primitive +dotnet_diagnostic.SES1703.severity = error # [Authorize] on a non-routable component enforces nothing +dotnet_diagnostic.SES1704.severity = error # HttpContext is used in an interactively-rendered component +dotnet_diagnostic.SES1705.severity = error # NavigateTo is called with an unverified target — open-redirect risk +dotnet_diagnostic.SES1706.severity = error # An uploaded file is read with an unbounded or client-chosen size limit +dotnet_diagnostic.SES1707.severity = error # A secret-shaped literal sits in code that downloads to the browser +dotnet_diagnostic.SES1708.severity = error # CircuitOptions.DetailedErrors ships exception detail to clients +dotnet_diagnostic.SES1709.severity = error # SerializeAllClaims exposes every claim to the client +dotnet_diagnostic.SES1710.severity = error # Antiforgery validation is disabled on a form ################### -# Microsoft.NET.ILLink.Analyzers (IL) +# Public API surface tracking (PAS) ################### -# Trimming -# See: https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-warnings/ -dotnet_diagnostic.IL2001.severity = error # Type in UnreferencedCode attribute doesn't have matching RequiresUnreferencedCode -dotnet_diagnostic.IL2002.severity = error # Method with RequiresUnreferencedCode called from code without that attribute -dotnet_diagnostic.IL2003.severity = error # RequiresUnreferencedCode attribute is only supported on methods -dotnet_diagnostic.IL2004.severity = error # Incorrect RequiresUnreferencedCode signature -dotnet_diagnostic.IL2005.severity = error # Could not resolve dependency assembly -dotnet_diagnostic.IL2007.severity = error # Could not process embedded resource -dotnet_diagnostic.IL2008.severity = error # Could not find type in assembly -dotnet_diagnostic.IL2009.severity = error # Could not find method in type -dotnet_diagnostic.IL2010.severity = error # Invalid value for PreserveDependencyAttribute -dotnet_diagnostic.IL2011.severity = error # Unknown body modification -dotnet_diagnostic.IL2012.severity = error # Could not find field in type -dotnet_diagnostic.IL2013.severity = error # Substitution file contains invalid XML -dotnet_diagnostic.IL2014.severity = error # Missing substitution file -dotnet_diagnostic.IL2015.severity = error # Invalid XML encountered in substitution file -dotnet_diagnostic.IL2016.severity = error # Could not find type from substitution XML -dotnet_diagnostic.IL2017.severity = error # Could not find method in type specified in substitution XML -dotnet_diagnostic.IL2018.severity = error # Could not find field in type specified in substitution XML -dotnet_diagnostic.IL2019.severity = error # Could not find interface implementation in type -dotnet_diagnostic.IL2022.severity = error # Type in DynamicallyAccessedMembers attribute doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2023.severity = error # Method returning DynamicallyAccessedMembers annotated type requires the same annotation -dotnet_diagnostic.IL2024.severity = error # Multiple DynamicallyAccessedMembers annotations on a member are not supported -dotnet_diagnostic.IL2025.severity = error # Duplicate preserve attribute -dotnet_diagnostic.IL2026.severity = error # Using member annotated with RequiresUnreferencedCode -dotnet_diagnostic.IL2027.severity = error # RequiresUnreferencedCodeAttribute is only supported on methods and constructors -dotnet_diagnostic.IL2028.severity = error # Invalid RequiresUnreferencedCode attribute usage -dotnet_diagnostic.IL2029.severity = error # RequiresUnreferencedCode attribute on type is not supported -dotnet_diagnostic.IL2030.severity = error # Dynamic invocation of method requiring unreferenced code is not safe -dotnet_diagnostic.IL2031.severity = error # Could not resolve dependency assembly from embedded resource -dotnet_diagnostic.IL2032.severity = error # Error reading debug symbols -dotnet_diagnostic.IL2033.severity = error # Trying to modify a sealed type -dotnet_diagnostic.IL2034.severity = error # Value passed to the implicit 'this' parameter does not satisfy 'DynamicallyAccessedMembersAttribute' requirements -dotnet_diagnostic.IL2035.severity = error # Unrecognized value passed to the parameter of method with 'DynamicallyAccessedMembersAttribute' requirements -dotnet_diagnostic.IL2036.severity = error # Interface implementation has different DynamicallyAccessedMembers annotations than interface -dotnet_diagnostic.IL2037.severity = error # BaseType annotation doesn't match -dotnet_diagnostic.IL2038.severity = error # Derived type doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2039.severity = error # Implementation method doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2040.severity = error # Interface member doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2041.severity = error # GetType call on DynamicallyAccessedMembers annotated generic parameter -dotnet_diagnostic.IL2042.severity = error # The DynamicallyAccessedMembersAttribute value used in a custom attribute is not compatible -dotnet_diagnostic.IL2043.severity = error # DynamicallyAccessedMembersAttribute on property conflicts with base property -dotnet_diagnostic.IL2044.severity = error # DynamicallyAccessedMembersAttribute on event conflicts with base event -dotnet_diagnostic.IL2045.severity = error # Field type doesn't satisfy 'DynamicallyAccessedMembersAttribute' requirements -dotnet_diagnostic.IL2046.severity = error # Trimmer couldn't find PreserveBaseOverridesAttribute on a method -dotnet_diagnostic.IL2048.severity = error # Internal attribute couldn't be removed -dotnet_diagnostic.IL2049.severity = error # Could not process data format message -dotnet_diagnostic.IL2050.severity = error # Correctness of COM interop cannot be guaranteed after trimming -dotnet_diagnostic.IL2051.severity = error # COM related type is trimmed -dotnet_diagnostic.IL2052.severity = error # Resolving member reference for P/Invoke into type that is trimmed -dotnet_diagnostic.IL2053.severity = error # Target method is trimmed -dotnet_diagnostic.IL2054.severity = error # Generic constraint type is annotated with DynamicallyAccessedMembersAttribute which requires unreferenced code -dotnet_diagnostic.IL2055.severity = error # Type implements COM visible type but has no GUID -dotnet_diagnostic.IL2056.severity = error # Generic parameter with DynamicallyAccessedMembers annotation is not publicly visible -dotnet_diagnostic.IL2057.severity = error # Unrecognized value passed to the parameter of method with DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2058.severity = error # Parameter types of method doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2059.severity = error # Unrecognized reflection pattern -dotnet_diagnostic.IL2060.severity = error # Unrecognized value passed to parameter with DynamicallyAccessedMembersAttribute -dotnet_diagnostic.IL2061.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2062.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2063.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2064.severity = error # Value assigned to field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2065.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2066.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2067.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2068.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2069.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2070.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2071.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2072.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2073.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2074.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2075.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2076.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2077.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2078.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2079.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2080.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2081.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2082.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2083.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2084.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2085.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2087.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2088.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2089.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2090.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2091.severity = error # Target generic argument doesn't satisfy 'DynamicallyAccessedMembersAttribute' requirements -dotnet_diagnostic.IL2092.severity = error # Value passed to generic parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2093.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2094.severity = error # DynamicallyAccessedMembers on 'this' parameter doesn't match overridden member -dotnet_diagnostic.IL2095.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2096.severity = error # Calling method on statically typed generic instance requires unreferenced code -dotnet_diagnostic.IL2097.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2098.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2099.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2100.severity = error # XML stream doesn't conform to the schema -dotnet_diagnostic.IL2101.severity = error # Embedded XML in assembly couldn't be loaded -dotnet_diagnostic.IL2102.severity = error # Invalid warning number passed to UnconditionalSuppressMessage -dotnet_diagnostic.IL2103.severity = error # Value passed to the 'propertyAccessExpression' parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements -dotnet_diagnostic.IL2104.severity = error # Assembly that was specified through a custom step -dotnet_diagnostic.IL2105.severity = error # Type from a custom step that couldn't be loaded -dotnet_diagnostic.IL2106.severity = error # Method from a custom step that couldn't be loaded -dotnet_diagnostic.IL2107.severity = error # Methods in types that derive from RemotingClientProxy cannot be statically determined -dotnet_diagnostic.IL2108.severity = error # Invalid scope for UnconditionalSuppressMessage -dotnet_diagnostic.IL2109.severity = error # Method doesn't have matching DynamicallyAccessedMembers annotation -dotnet_diagnostic.IL2110.severity = error # Invalid member name in UnconditionalSuppressMessage -dotnet_diagnostic.IL2111.severity = error # Method with parameters or return value with DynamicallyAccessedMembersAttribute is not supported -dotnet_diagnostic.IL2112.severity = error # Reflection call to method with DynamicallyAccessedMembersAttribute requirements cannot be statically analyzed -dotnet_diagnostic.IL2113.severity = error # DynamicallyAccessedMembers on type references Type.MakeGenericType with different requirements -dotnet_diagnostic.IL2114.severity = error # DynamicallyAccessedMembers mismatch on signature types -dotnet_diagnostic.IL2115.severity = error # DynamicallyAccessedMembers on type or base types references member which requires unreferenced code -dotnet_diagnostic.IL2116.severity = error # DynamicallyAccessedMembers on parameter types doesn't match overridden parameter -dotnet_diagnostic.IL2117.severity = error # Methods with DynamicallyAccessedMembersAttribute annotations cannot be replaced -dotnet_diagnostic.IL2122.severity = error # Reflection call to method with UnreferencedCode attribute cannot be statically analyzed -dotnet_diagnostic.IL2123.severity = error # DynamicallyAccessedMembers on method or parameter doesn't match overridden member - -# Native AOT -# See: https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/warnings/ -dotnet_diagnostic.IL3050.severity = error # Using member annotated with RequiresDynamicCode -dotnet_diagnostic.IL3051.severity = error # RequiresDynamicCode attribute is only supported on methods and constructors -dotnet_diagnostic.IL3052.severity = error # RequiresDynamicCode attribute on type is not supported -dotnet_diagnostic.IL3053.severity = error # Assembly has RequiresDynamicCode attribute -dotnet_diagnostic.IL3054.severity = error # Generic expansion in type requires dynamic code -dotnet_diagnostic.IL3055.severity = error # MakeGenericType on non-supported type requires dynamic code -dotnet_diagnostic.IL3056.severity = error # MakeGenericMethod on non-supported method requires dynamic code -dotnet_diagnostic.IL3057.severity = error # Reflection access to generic parameter requires dynamic code +dotnet_diagnostic.PAS0001.severity = error # A public symbol is missing from the baseline for this target framework +dotnet_diagnostic.PAS0002.severity = error # A baseline entry no longer exists in the public API +dotnet_diagnostic.PAS0003.severity = error # A public symbol differs from its baseline entry +dotnet_diagnostic.PAS0004.severity = error # No public API baseline for this target framework +dotnet_diagnostic.PAS0005.severity = error # The public API baseline could not be read ################### -# SonarAnalyzer.CSharp (S) +# External scanner inspections ################### -# Repository suppressions -dotnet_diagnostic.S1075.severity = none # Hardcoded URI — canonical SourceLink hosts are the point -dotnet_diagnostic.S2436.severity = none # Too many generic parameters — needed for the projector overload -dotnet_diagnostic.S4036.severity = none # PATH-relative process spawn — benchmark only, trusted env -dotnet_diagnostic.S8969.severity = none # Nullability inference is inconsistent across the repository's target frameworks - -# Blocker bugs +dotnet_diagnostic.S100.severity = none # Methods and properties should be named in PascalCase — covered by SST1300 +dotnet_diagnostic.S101.severity = none # Types should be named in PascalCase — covered by SST1300 +dotnet_diagnostic.S103.severity = none # Lines should not be too long — covered by SST1521 +dotnet_diagnostic.S104.severity = none # Files should not have too many lines of code — covered by SST1522 +dotnet_diagnostic.S105.severity = none # Tabulation characters should not be used — covered by SST1027 +dotnet_diagnostic.S106.severity = none # Covered by SST1449 (canonical) +dotnet_diagnostic.S107.severity = none # Methods should not have too many parameters — covered by SST1472 +dotnet_diagnostic.S108.severity = none # Nested blocks of code should not be left empty — covered by SST1439 +dotnet_diagnostic.S109.severity = none # Magic numbers should not be used — covered by SST1471 +dotnet_diagnostic.S110.severity = none # Inheritance tree of classes should not be too deep — covered by SST1446 +dotnet_diagnostic.S112.severity = none # General or reserved exceptions should never be thrown — covered by SST2409 +dotnet_diagnostic.S113.severity = none # Files should end with a newline +dotnet_diagnostic.S121.severity = none # Control structures should use braces — replaced by SST1503 +dotnet_diagnostic.S122.severity = none # Statements should be on separate lines — covered by SST1107 +dotnet_diagnostic.S125.severity = none # Sections of code should not be commented out — covered by SST1148 +dotnet_diagnostic.S126.severity = none # "if ... else if" constructs should end with "else" clauses +dotnet_diagnostic.S127.severity = none # "for" loop stop conditions should be invariant — covered by SST2465 +dotnet_diagnostic.S131.severity = none # "switch/Select" statements should contain a "default/Case Else" clauses +dotnet_diagnostic.S134.severity = none # Control flow statements should not be nested too deeply +dotnet_diagnostic.S138.severity = none # Functions should not have too many lines of code — covered by SST1523 +dotnet_diagnostic.S818.severity = none # Literal suffixes should be upper case — covered by SST2244 +dotnet_diagnostic.S881.severity = none # ++ or -- mixed into a larger expression — covered by SST2015 +dotnet_diagnostic.S907.severity = none # "goto" statement should not be used — covered by SST2014 +dotnet_diagnostic.S927.severity = none # Parameter names should match the base declaration — covered by CA1725 +dotnet_diagnostic.S1006.severity = none # Method overrides should not change parameter defaults — covered by SST2424 dotnet_diagnostic.S1048.severity = none # Finalizers should not throw exceptions — covered by SST1485 -dotnet_diagnostic.S2190.severity = none # Loops and recursions should not be infinite -dotnet_diagnostic.S2275.severity = none # Composite format strings should not lead to unexpected behavior at runtime - DUPLICATE CA2241 -dotnet_diagnostic.S2857.severity = none # SQL keywords should be delimited by whitespace — covered by SST2470 -dotnet_diagnostic.S2930.severity = none # "IDisposables" should be disposed — covered by SST2410 -dotnet_diagnostic.S2931.severity = none # Classes with "IDisposable" members should implement "IDisposable" — covered by SST2315 -dotnet_diagnostic.S3464.severity = none # Type inheritance should not be recursive — covered by SST2437 -dotnet_diagnostic.S3869.severity = none # "SafeHandle.DangerousGetHandle" should not be called -> replaced by SST2484 -dotnet_diagnostic.S3889.severity = none # "Thread.Resume" and "Thread.Suspend" should not be used -> replaced by obsolete or compiler -dotnet_diagnostic.S4159.severity = none # Classes should implement their "ExportAttribute" interfaces — covered by SST2472 - -# Critical bugs -dotnet_diagnostic.S2551.severity = none # Shared resources should not be used for locking — covered by SST1902 -dotnet_diagnostic.S2952.severity = none # Classes should "Dispose" of members from the classes' own "Dispose" methods -> replaced by SST2315 -dotnet_diagnostic.S3449.severity = none # Right operands of shift operators should be integers -> replaced by SST1478 -dotnet_diagnostic.S4275.severity = none # Getters and setters should access the expected fields — covered by SST2422 -dotnet_diagnostic.S4277.severity = none # "Shared" parts should not be created with "new" — covered by SST2473 -dotnet_diagnostic.S4583.severity = none # Calls to delegate's method "BeginInvoke" should be paired with calls to "EndInvoke" -> replaced by obsolete (APM BeginInvoke/EndInvoke) -dotnet_diagnostic.S4586.severity = none # Non-async "Task/Task" methods should not return null — covered by PSH1312 -dotnet_diagnostic.S5856.severity = none # Regular expressions should be syntactically valid — covered by SST2444 -dotnet_diagnostic.S6674.severity = none # Log message template should be syntactically correct — covered by SST2441 - -# Major bugs -dotnet_diagnostic.S1244.severity = none # Floating point numbers should not be tested for equality — covered by SST1473 -dotnet_diagnostic.S1656.severity = none # Variables should not be self-assigned — covered by SST1189 -dotnet_diagnostic.S1751.severity = none # Loops with at most one iteration should be refactored - covered by SST1444 -dotnet_diagnostic.S1764.severity = none # Identical expressions should not be used on both sides of operators — covered by SST1474 -dotnet_diagnostic.S1848.severity = none # Objects should not be created to be dropped immediately without being used -> replaced by SST1480 -dotnet_diagnostic.S1862.severity = none # Related "if/else if" statements should not have the same condition — covered by SST1475 -dotnet_diagnostic.S2114.severity = none # Collections should not be passed as arguments to their own methods — covered by SST2419 -dotnet_diagnostic.S2123.severity = none # Values should not be uselessly incremented -> replaced by SST2222 -dotnet_diagnostic.S2201.severity = none # Methods without side effects should not have their return values ignored — covered by SST2418 -dotnet_diagnostic.S2225.severity = none # "ToString()" method should not return null — covered by SST2431 -dotnet_diagnostic.S2251.severity = none # A "for" loop update clause should move the counter in the right direction — covered by SST2412 -dotnet_diagnostic.S2252.severity = none # For-loop conditions should be true at least once — covered by SST2413 -dotnet_diagnostic.S2445.severity = none # Blocks should be synchronized on read-only fields — covered by SST1904 -dotnet_diagnostic.S2688.severity = none # "NaN" should not be used in comparisons — covered by SST1473 -dotnet_diagnostic.S2757.severity = none # Non-existent operators like "=+" should not be used — covered by SST2417 -dotnet_diagnostic.S2761.severity = none # Doubled prefix operators "!!" and "~~" should not be used — covered by SST1190 -dotnet_diagnostic.S2995.severity = none # "Object.ReferenceEquals" should not be used for value types -> replaced by CA2013 -dotnet_diagnostic.S2996.severity = none # "ThreadStatic" fields should not be initialized -> replaced by CA2019 -dotnet_diagnostic.S2997.severity = none # "IDisposables" created in a "using" statement should not be returned — covered by SST2423 -dotnet_diagnostic.S3005.severity = none # "ThreadStatic" should not be used on non-static fields -> replaced by CA2259 -dotnet_diagnostic.S3168.severity = none # "async" methods should not return "void" — covered by SST1905 -dotnet_diagnostic.S3172.severity = none # Delegates should not be subtracted — covered by SST2448 -dotnet_diagnostic.S3244.severity = none # Anonymous delegates should not be used to unsubscribe from Events — covered by SST2449 -dotnet_diagnostic.S3249.severity = none # Covered by SST1447 (canonical) -dotnet_diagnostic.S3263.severity = none # Static fields should appear in the order they must be initialized — covered by SST2428 -dotnet_diagnostic.S3343.severity = none # Caller information parameters should come at the end of the parameter list — covered by SST2433 -dotnet_diagnostic.S3346.severity = none # Expressions used in "Debug.Assert" should not produce side effects — covered by SST2450 -dotnet_diagnostic.S3453.severity = none # Classes should not have only "private" constructors — covered by SST2451 -dotnet_diagnostic.S3466.severity = none # Optional parameters should be passed to "base" calls — covered by SST2425 -dotnet_diagnostic.S3598.severity = none # One-way "OperationContract" methods should have "void" return type -> replaced by obsolete (WCF) -dotnet_diagnostic.S3603.severity = none # Methods with "Pure" attribute should return a value — covered by SST2452 -dotnet_diagnostic.S3610.severity = none # Nullable type comparison should not be redundant -> replaced by compiler CS0472 -dotnet_diagnostic.S3903.severity = none # Types should be defined in named namespaces — covered by SST2312 -dotnet_diagnostic.S3923.severity = none # All branches in a conditional structure should not have exactly the same implementation — covered by SST1476 -dotnet_diagnostic.S3926.severity = none # Deserialization methods should be provided for "OptionalField" members -> replaced by obsolete (legacy binary serialization) -dotnet_diagnostic.S3927.severity = none # Serialization event handlers should be implemented correctly — covered by SST2430 -dotnet_diagnostic.S3981.severity = none # Collection sizes and array length comparisons should make sense — covered by SST1479 -dotnet_diagnostic.S3984.severity = none # Exceptions should not be created without being thrown — covered by SST1480 -dotnet_diagnostic.S4143.severity = none # Collection elements should not be replaced unconditionally — covered by SST1487 -dotnet_diagnostic.S4210.severity = none # Windows Forms entry points should be marked with STAThread -> replaced by SST2706 -dotnet_diagnostic.S4260.severity = none # "ConstructorArgument" parameters should exist in constructors -> replaced by SST2487 -dotnet_diagnostic.S4428.severity = none # "PartCreationPolicyAttribute" should be used with "ExportAttribute" — covered by SST2474 -dotnet_diagnostic.S6507.severity = none # Blocks should not be synchronized on local variables — covered by SST1903 -dotnet_diagnostic.S6677.severity = none # Message template placeholders should be unique — covered by SST2442 -dotnet_diagnostic.S6797.severity = none # Blazor query parameter type should be supported -> replaced by SST2702 -dotnet_diagnostic.S6798.severity = none # [JSInvokable] attribute should only be used on public methods -> replaced by SST2701 -dotnet_diagnostic.S6800.severity = none # Component parameter type should match the route parameter type constraint -> replaced by SST2703 -dotnet_diagnostic.S6930.severity = none # Backslash should be avoided in route templates -> replaced by SST2700 - -# Minor bugs -dotnet_diagnostic.S1206.severity = none # "Equals(Object)" and "GetHashCode()" should be overridden in pairs - DUPLICATE CA2218 -dotnet_diagnostic.S1226.severity = none # Method parameters, caught exceptions and foreach variables' initial values should not be ignored -dotnet_diagnostic.S2183.severity = none # Integral numbers should not be shifted by zero or more than their number of bits-1 — covered by SST1478 -dotnet_diagnostic.S2184.severity = none # Results of integer division should not be assigned to floating point variables — covered by SST1477 -dotnet_diagnostic.S2328.severity = none # "GetHashCode" should not reference mutable fields — covered by SST1482 -dotnet_diagnostic.S2345.severity = none # Flags enumerations should explicitly initialize all their members — covered by SST2303 -dotnet_diagnostic.S2674.severity = none # The length returned from a stream read should be checked — covered by SST2446 -dotnet_diagnostic.S2934.severity = none # Property assignments should not be made for "readonly" fields not constrained to reference types — covered by SST2421 -dotnet_diagnostic.S2955.severity = none # Generic parameters not constrained to reference types should not be compared to "null" -> replaced by compiler CS0019/CS0037 -dotnet_diagnostic.S3363.severity = none # Date and time should not be used as a type for primary keys — covered by SST2475 -dotnet_diagnostic.S3397.severity = none # "base.Equals" should not be used to check for reference equality in "Equals" if "base" is not "object" — covered by SST2435 -dotnet_diagnostic.S3456.severity = none # "string.ToCharArray()" and "ReadOnlySpan.ToArray()" should not be called redundantly — covered by PSH1217 -dotnet_diagnostic.S3887.severity = none # Mutable, non-private fields should not be "readonly" — covered by SST2322 - -# Blocker vulnerabilities -dotnet_diagnostic.S2115.severity = none # A secure password should be used when connecting to a database -> replaced by SES1203 -dotnet_diagnostic.S2755.severity = none # XML parsers should not be vulnerable to XXE attacks -> replaced by CA3075 -dotnet_diagnostic.S3884.severity = none # "CoSetProxyBlanket" and "CoInitializeSecurity" should not be used -> replaced by obsolete (COM interop security) -dotnet_diagnostic.S6418.severity = none # Secrets should not be hard-coded — covered by SES1201 - -# Critical vulnerabilities -dotnet_diagnostic.S4423.severity = none # Weak SSL/TLS protocols should not be used -> replaced by CA5397/CA5398 -dotnet_diagnostic.S4426.severity = none # Cryptographic keys should be robust -> replaced by CA5385 (RSA) / CA5384 (DSA) -dotnet_diagnostic.S4433.severity = none # LDAP connections should be authenticated -> replaced by SES1310 -dotnet_diagnostic.S4830.severity = none # Server certificates should be verified during SSL/TLS connections -> replaced by SES1102 or SES1108 -dotnet_diagnostic.S5344.severity = none # Passwords should not be stored in plaintext or with a fast hashing algorithm -> replaced by SES1009 -dotnet_diagnostic.S5445.severity = none # Insecure temporary file creation methods should not be used -> replaced by SES1307 -dotnet_diagnostic.S5542.severity = none # Encryption algorithms should be used with secure mode and padding scheme -> replaced by CA5358 -dotnet_diagnostic.S5547.severity = none # Cipher algorithms should be robust -> replaced by CA5351 -dotnet_diagnostic.S5659.severity = none # JWT should be signed and verified with strong cipher algorithms -> replaced by SES1503 - -# Major vulnerabilities -dotnet_diagnostic.S2068.severity = none # Credentials should not be hard-coded -> replaced by SES1201 -dotnet_diagnostic.S2612.severity = none # File permissions should not be set to world-accessible values -> replaced by SES1308 -dotnet_diagnostic.S4211.severity = none # Members should not have conflicting transparency annotations -> replaced by obsolete (Code Access Security) -dotnet_diagnostic.S4212.severity = none # Serialization constructors should be secured -> replaced by obsolete (Code Access Security) -dotnet_diagnostic.S6377.severity = none # XML signatures should be validated securely -> replaced by SES1008 -dotnet_diagnostic.S7039.severity = none # Content Security Policies should be restrictive -> replaced by SES1515 - -# Blocker code smells -dotnet_diagnostic.S1147.severity = none # Exit methods should not be called — covered by SST2321 -dotnet_diagnostic.S1451.severity = none # Track lack of copyright and license headers -dotnet_diagnostic.S2178.severity = none # Short-circuit logic should be used in boolean contexts — covered by SST2415 -dotnet_diagnostic.S2187.severity = none # Test classes should contain at least one test case — covered by SST2504 -dotnet_diagnostic.S2306.severity = none # "async" and "await" should not be used as identifiers -> replaced by compiler (contextual keyword) -dotnet_diagnostic.S2368.severity = none # Public methods should not have multidimensional array parameters — jagged arrays are the chosen layout for hot-path lookup tables -dotnet_diagnostic.S2387.severity = none # Child class fields should not shadow parent class fields — covered by SST1484 -dotnet_diagnostic.S2437.severity = none # Unnecessary bit operations should not be performed — covered by SST1481 -dotnet_diagnostic.S2699.severity = none # Tests should include assertions -> replaced by SST2500 -dotnet_diagnostic.S2953.severity = none # Methods named "Dispose" should implement "IDisposable.Dispose" — covered by SST2316 -dotnet_diagnostic.S2970.severity = none # Assertions should be complete -> replaced by SST2508 -dotnet_diagnostic.S3060.severity = none # "is" should not be used with "this" -> replaced by SST2327 -dotnet_diagnostic.S3237.severity = none # "value" contextual keyword should be used — covered by SST2429 -dotnet_diagnostic.S3427.severity = none # Method overloads with default parameter values should not overlap — covered by SST2319 -dotnet_diagnostic.S3433.severity = none # Test method signatures should be correct -> replaced by SST2509 -dotnet_diagnostic.S3443.severity = none # Type should not be examined on "System.Type" instances — covered by SST2432 -dotnet_diagnostic.S3875.severity = none # "operator==" should not be overloaded on reference types -> replaced by SST2464 -dotnet_diagnostic.S3877.severity = none # Exceptions should not be thrown from unexpected methods — covered by SST1485 -dotnet_diagnostic.S4462.severity = none # Calls to "async" methods should not be blocking - covered by PSH1315 -dotnet_diagnostic.S6422.severity = none # Calls to "async" methods should not be blocking in Azure Functions — covered by PSH1315 -dotnet_diagnostic.S6424.severity = none # Interfaces for durable entities should satisfy the restrictions -> off: Durable Entity-specific; not used in this library - -# Critical code smells -dotnet_diagnostic.S1006.severity = none # Method overrides should not change parameter defaults — covered by SST2424 -dotnet_diagnostic.S1067.severity = none # Expressions should not be too complex -dotnet_diagnostic.S1163.severity = none # Exceptions should not be thrown in finally blocks -> replaced by CA2219 -dotnet_diagnostic.S1186.severity = none # Methods should not be empty — covered by SST1438 -dotnet_diagnostic.S121.severity = none # Control structures should use curly braces (kept over SA1503 — Sonar 20ms vs SA1503 50ms) -> replaced by SST1503 -dotnet_diagnostic.S1215.severity = none # "GC.Collect" should not be called — covered by PSH1021 -dotnet_diagnostic.S126.severity = none # "if ... else if" constructs should end with "else" clauses -dotnet_diagnostic.S131.severity = none # "switch/Select" statements should contain a "default/Case Else" clauses -dotnet_diagnostic.S134.severity = none # Control flow statements "if", "switch", "for", "foreach", "while", "do" and "try" should not be nested too deeply -dotnet_diagnostic.S1541.severity = none # Methods and properties should not be too complex - covered by SST1442 -dotnet_diagnostic.S1699.severity = none # Constructors should only call non-overridable methods — covered by SST1483 -dotnet_diagnostic.S1821.severity = none # "switch" statements should not be nested -> replaced by SST2252 -dotnet_diagnostic.S1944.severity = none # Invalid casts should be avoided -> replaced by compiler CS0030 -dotnet_diagnostic.S1994.severity = none # "for" loop increment clauses should modify the loops' counters — covered by SST2411 -dotnet_diagnostic.S2197.severity = none # Modulus results should not be checked for direct equality — covered by SST2416 -dotnet_diagnostic.S2198.severity = none # Unnecessary mathematical comparisons should not be made -> replaced by SST2489 -dotnet_diagnostic.S2223.severity = none # Non-constant static fields should not be visible - DUPLICATE CA2211 -dotnet_diagnostic.S2290.severity = none # Field-like events should not be virtual -> replaced by SST2456 -dotnet_diagnostic.S2291.severity = none # Overflow checking should not be disabled for "Enumerable.Sum" — covered by SST2457 -dotnet_diagnostic.S2302.severity = none # "nameof" should be used — covered by SST1415 -dotnet_diagnostic.S2330.severity = none # Array covariance should not be used — covered by SST2434 -dotnet_diagnostic.S2339.severity = none # Public constant members should not be used — covered by SST2311 -dotnet_diagnostic.S2346.severity = none # Flags enumerations zero-value members should be named "None" - DUPLICATE CA1008 -dotnet_diagnostic.S2360.severity = none # Optional parameters should not be used — conflicts with SST2433, which owns caller-info parameters requiring a default -dotnet_diagnostic.S2365.severity = none # Properties should not make collection or array copies — covered by PSH1017 -dotnet_diagnostic.S2479.severity = none # Whitespace and control characters in string literals should be explicit — covered by SST1192 -dotnet_diagnostic.S2692.severity = none # "IndexOf" checks should not be for positive numbers — covered by SST2420 -dotnet_diagnostic.S2696.severity = none # Instance members should not write to "static" fields -> replaced by SST2402 -dotnet_diagnostic.S2701.severity = none # Literal boolean values should not be used in assertions — covered by SST2503 -dotnet_diagnostic.S3215.severity = none # "interface" instances should not be cast to concrete types -> deliberately unenforced, same reason as SST2326 -dotnet_diagnostic.S3216.severity = none # "ConfigureAwait(false)" should be used -> replaced by CA2007 -dotnet_diagnostic.S3217.severity = none # "Explicit" conversions of "foreach" loops should not be used — covered by SST2225 -dotnet_diagnostic.S3218.severity = none # Inner class members should not shadow outer class "static" or type members — covered by SST1484 -dotnet_diagnostic.S3265.severity = none # Non-flags enums should not be used in bitwise operations — covered by SST2458 -dotnet_diagnostic.S3353.severity = none # Unchanged variables should be marked as "const" — covered by PSH1402 -dotnet_diagnostic.S3447.severity = none # "[Optional]" should not be used on "ref" or "out" parameters — covered by SST2459 -dotnet_diagnostic.S3451.severity = none # "[DefaultValue]" should not be used when "[DefaultParameterValue]" is meant — covered by SST2460 -dotnet_diagnostic.S3600.severity = none # "params" should not be introduced on overrides — covered by SST2426 -dotnet_diagnostic.S3776.severity = none # Cognitive Complexity of methods should not be too high - covered by SST1443 -dotnet_diagnostic.S3871.severity = none # Exception types should be "public" -> replaced by CA1064 -dotnet_diagnostic.S3874.severity = none # "out" and "ref" parameters — repo idiom is TryX(..., out T value) -dotnet_diagnostic.S3904.severity = none # Assemblies should have version information -> replaced by obsolete (SDK supplies assembly version) -dotnet_diagnostic.S3937.severity = none # Number patterns should be regular — covered by SST1119 -dotnet_diagnostic.S3972.severity = none # Conditionals should start on new lines — covered by SST1146 -dotnet_diagnostic.S3973.severity = none # A conditionally executed single line should be denoted by indentation -> replaced by SST1503 -dotnet_diagnostic.S3998.severity = none # Threads should not lock on objects with weak identity -> replaced by SST1902 -dotnet_diagnostic.S4000.severity = none # Pointers to unmanaged memory should not be visible -> replaced by SST2328 -dotnet_diagnostic.S4015.severity = none # Inherited member visibility should not be decreased — covered by SST2462 -dotnet_diagnostic.S4019.severity = none # Base class methods should not be hidden — covered by SST2427 -dotnet_diagnostic.S4025.severity = none # Child class fields should not differ from parent class fields only by capitalization — covered by SST2463 -dotnet_diagnostic.S4039.severity = none # Interface methods should be callable by derived types - DUPLICATE CA1033 -dotnet_diagnostic.S4487.severity = none # Unread "private" fields should be removed -dotnet_diagnostic.S4524.severity = none # "default" clauses should be first or last — covered by SST1219 -dotnet_diagnostic.S4635.severity = none # Start index should be used instead of calling Substring — covered by PSH1218 -dotnet_diagnostic.S5034.severity = none # "ValueTask" should be consumed correctly — covered by PSH1316 -dotnet_diagnostic.S6967.severity = none # ModelState.IsValid should be called in controller actions -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S8367.severity = none # Identifiers should not conflict with the C# 14 "field" contextual keyword - the C# 14 compiler reports this: CS9273 (error) for a local named field in an accessor, CS9258 (warning) for a rebinding read -dotnet_diagnostic.S8368.severity = none # Identifiers should not conflict with the C# 14 "extension" contextual keyword - the C# 14 compiler reports this as CS9306, and SST1300 already flags the lowercase type name -dotnet_diagnostic.S8380.severity = none # Return types named "partial" should be escaped with "@" - the compiler reports this as CS8981, and SST1300 already flags the lowercase type name -dotnet_diagnostic.S8381.severity = none # "scoped" should be escaped when used as an identifier or type name in parenthesized lambda parameter lists -> replaced by compiler -dotnet_diagnostic.S927.severity = none # Parameter names should match base declaration and other partial definitions - DUPLICATE CA1725 - -# Major code smells -dotnet_diagnostic.S103.severity = none # Lines should not be too long — covered by SST1521 -dotnet_diagnostic.S104.severity = none # Files should not have too many lines of code — covered by SST1522 -dotnet_diagnostic.S106.severity = none # Covered by SST1449 (canonical) dotnet_diagnostic.S1066.severity = none # Mergeable "if" statements should be combined — covered by SST2013 -dotnet_diagnostic.S107.severity = none # Methods should not have too many parameters — covered by SST1472 -dotnet_diagnostic.S108.severity = none # Nested blocks of code should not be left empty — covered by SST1439 -dotnet_diagnostic.S109.severity = none # Magic numbers should not be used — covered by SST1471 -dotnet_diagnostic.S110.severity = none # Inheritance tree of classes should not be too deep — covered by SST1446 +dotnet_diagnostic.S1067.severity = none # Expressions should not be too complex +dotnet_diagnostic.S1075.severity = none # Hardcoded URI — canonical SourceLink hosts are the point +dotnet_diagnostic.S1104.severity = none # Fields should not have public accessibility - DUPLICATE CA1051 +dotnet_diagnostic.S1109.severity = none # A close brace should start its line — covered by SST1500 dotnet_diagnostic.S1110.severity = none # Redundant pairs of parentheses should be removed — covered by SST1459 -dotnet_diagnostic.S1117.severity = none # Local variables should not shadow class fields or properties — covered by SST1484 +dotnet_diagnostic.S1116.severity = none # Empty statements should be removed - DUPLICATE SA1106 +dotnet_diagnostic.S1117.severity = none # Locals shadowing fields or properties — covered by SST1484 dotnet_diagnostic.S1118.severity = none # Utility classes should not have public constructors - DUPLICATE CA1052 -dotnet_diagnostic.S112.severity = none # General or reserved exceptions should never be thrown — covered by SST2409 dotnet_diagnostic.S1121.severity = none # Assignments should not be made from within sub-expressions — covered by SST1187 dotnet_diagnostic.S1123.severity = none # "Obsolete" attributes should include explanations — covered by SST2308 -dotnet_diagnostic.S1134.severity = none # Track uses of "FIXME" tags -> off: TODO comment tracker; not enforced here -dotnet_diagnostic.S1144.severity = none # Covered by SST1440 (canonical) -dotnet_diagnostic.S1151.severity = none # "switch case" clauses should not have too many lines of code — covered by SST1524 -dotnet_diagnostic.S1168.severity = none # Empty arrays and collections should be returned instead of null — covered by SST2306 -dotnet_diagnostic.S1172.severity = none # Unused method parameters should be removed — covered by SST1461 -dotnet_diagnostic.S1200.severity = none # Classes should not be coupled to too many other classes -dotnet_diagnostic.S122.severity = none # Statements should be on separate lines — covered by SST1107 -dotnet_diagnostic.S125.severity = none # Sections of code should not be commented out — covered by SST1148 -dotnet_diagnostic.S127.severity = none # "for" loop stop conditions should be invariant — covered by SST2465 -dotnet_diagnostic.S138.severity = none # Functions should not have too many lines of code — covered by SST1523 -dotnet_diagnostic.S1479.severity = none # "switch" statements with many "case" clauses — covered by SST1423 -dotnet_diagnostic.S1607.severity = none # Tests should not be ignored -> off: ignored-test tracker; not enforced here -dotnet_diagnostic.S1696.severity = none # NullReferenceException should not be caught — covered by SST2401 -dotnet_diagnostic.S1854.severity = none # Unused assignments should be removed - DUPLICATE IDE0059 -dotnet_diagnostic.S1871.severity = none # Two branches in a conditional structure should not have exactly the same implementation — covered by SST2414 -dotnet_diagnostic.S2139.severity = none # Exceptions should be either logged or rethrown but not both -> replaced by SST2488 -dotnet_diagnostic.S2166.severity = none # Classes named like "Exception" should extend "Exception" or a subclass - DUPLICATE CA1710 -dotnet_diagnostic.S2234.severity = none # Arguments should be passed in the same order as the method parameters -> replaced by SST2400 -dotnet_diagnostic.S2326.severity = none # Covered by SST1452 (canonical) -dotnet_diagnostic.S2327.severity = none # "try" statements with identical "catch" and/or "finally" blocks should be merged -> replaced by SST2490 -dotnet_diagnostic.S2357.severity = none # Fields should be private — duplicate of SST1401 (canonical); fields intentionally exposed (e.g. public test fields for reflection) already carry per-site SST1401 suppressions -dotnet_diagnostic.S2372.severity = none # Exceptions should not be thrown from property getters — covered by SST1485 -dotnet_diagnostic.S2376.severity = none # Write-only properties should not be used — covered by SST1421 -dotnet_diagnostic.S2629.severity = none # Logging templates should be constant -> replaced by CA2254 -dotnet_diagnostic.S2681.severity = none # Multiline blocks should be enclosed in curly braces — covered by SST1503 -dotnet_diagnostic.S2743.severity = none # Static fields should not be used in generic types - DUPLICATE CA1000 — covered by SST1431 -dotnet_diagnostic.S2925.severity = none # "Thread.Sleep" should not be used in tests — covered by SST2506 -dotnet_diagnostic.S2933.severity = none # Fields that are only assigned in the constructor should be "readonly" - DUPLICATE IDE0044 -dotnet_diagnostic.S2971.severity = none # LINQ expressions should be simplified — covered by PSH1101/PSH1102 -dotnet_diagnostic.S3010.severity = none # Static fields should not be updated in constructors — covered by SST2402 -dotnet_diagnostic.S3011.severity = none # Reflection should not be used to increase accessibility of classes, methods, or fields -> replaced by SES1406 -dotnet_diagnostic.S3059.severity = none # Types should not have members with visibility set higher than the type's visibility -dotnet_diagnostic.S3063.severity = none # "StringBuilder" data should be used — covered by SST2408 -dotnet_diagnostic.S3169.severity = none # Multiple "OrderBy" calls should not be used — covered by PSH1108 -dotnet_diagnostic.S3246.severity = none # Generic type parameters should be co/contravariant when possible -> off: low-precision variance suggestion; not enforced -dotnet_diagnostic.S3262.severity = none # "params" should be used on overrides — covered by SST2426 -dotnet_diagnostic.S3264.severity = none # Events should be invoked — covered by SST2407 -dotnet_diagnostic.S3358.severity = none # Ternary operators should not be nested — covered by SST1147 -dotnet_diagnostic.S3366.severity = none # "this" should not be exposed from constructors — covered by SST2403 -dotnet_diagnostic.S3415.severity = none # Assertion arguments should be passed in the correct order — covered by SST2502 -dotnet_diagnostic.S3431.severity = none # "[ExpectedException]" should not be used — covered by SST2507 -dotnet_diagnostic.S3442.severity = none # "abstract" classes should not have "public" constructors — covered by SST1428 -dotnet_diagnostic.S3445.severity = none # Exceptions should not be explicitly rethrown — covered by SST1430 -dotnet_diagnostic.S3457.severity = none # Composite format strings should be used correctly — covered by SST1454 -dotnet_diagnostic.S3597.severity = none # "ServiceContract" and "OperationContract" attributes should be used together -> replaced by obsolete (WCF) -dotnet_diagnostic.S3880.severity = none # Finalizers should not be empty — covered by PSH1002 -dotnet_diagnostic.S3881.severity = none # "IDisposable" should be implemented correctly — covered by SST2300 -dotnet_diagnostic.S3885.severity = none # "Assembly.Load" should be used -> replaced by SST2486 -dotnet_diagnostic.S3898.severity = none # Covered by PSH1005 (canonical) -dotnet_diagnostic.S3902.severity = none # Covered by PSH1404 (canonical) -dotnet_diagnostic.S3906.severity = none # Event Handlers should have the correct signature — covered by SST2304 -dotnet_diagnostic.S3908.severity = none # Generic event handlers should be used -> replaced by SST2304 -dotnet_diagnostic.S3909.severity = none # Collections should implement the generic interface -> replaced by CA1010 -dotnet_diagnostic.S3925.severity = none # "ISerializable" should be implemented correctly - BinaryFormatter / ISerializable serialization is obsoleted (SYSLIB0050/0051) in modern .NET; we do not opt into legacy serialization for any exception type -dotnet_diagnostic.S3928.severity = none # Parameter names used into ArgumentException constructors should match an existing one - DUPLICATE CA2208 -dotnet_diagnostic.S3956.severity = none # "Generic.List" instances should not be part of public APIs -dotnet_diagnostic.S3971.severity = none # "GC.SuppressFinalize" should not be called — conflicts with PSH1008, which owns the pointless-SuppressFinalize direction and exempts unsealed types -dotnet_diagnostic.S3990.severity = none # Assemblies should be marked as CLS compliant -> replaced by CA1014 -dotnet_diagnostic.S3992.severity = none # Assemblies should explicitly specify COM visibility -> replaced by CA1017 -dotnet_diagnostic.S3993.severity = none # Custom attributes should be marked with "System.AttributeUsageAttribute" -> replaced by CA1018 -dotnet_diagnostic.S3994.severity = none # URI Parameters should not be strings -dotnet_diagnostic.S3995.severity = none # URI return values should not be strings -dotnet_diagnostic.S3996.severity = none # URI properties should not be strings -dotnet_diagnostic.S3997.severity = none # String URI overloads should call "System.Uri" overloads -> replaced by CA1054/CA1056/CA1057 -dotnet_diagnostic.S4002.severity = none # Disposable types should declare finalizers — covered by SST2317 -dotnet_diagnostic.S4004.severity = none # Collection properties should be readonly — covered by SST2305 -dotnet_diagnostic.S4005.severity = none # "System.Uri" arguments should be used instead of strings -dotnet_diagnostic.S4016.severity = none # Enumeration members should not be named "Reserved" -> replaced by CA1700 -dotnet_diagnostic.S4017.severity = none # Method signatures should not contain nested generic types -dotnet_diagnostic.S4035.severity = none # Classes implementing "IEquatable" should be sealed — covered by SST2301 -dotnet_diagnostic.S4050.severity = none # Operators should be overloaded consistently — covered by SST2302 -dotnet_diagnostic.S4055.severity = none # Literals should not be passed as localized parameters -dotnet_diagnostic.S4057.severity = none # Locales should be set for data types -> replaced by obsolete -dotnet_diagnostic.S4059.severity = none # Property names should not match get methods - DUPLICATE CA1721 -dotnet_diagnostic.S4070.severity = none # Non-flags enums should not be marked with "FlagsAttribute" — covered by SST2303 -dotnet_diagnostic.S4144.severity = none # Methods should not have identical implementations — covered by SST2318 -dotnet_diagnostic.S4200.severity = none # Native methods should be wrapped -> replaced by CA1401 -dotnet_diagnostic.S4214.severity = none # "P/Invoke" methods should not be visible - DUPLICATE CA1401 -dotnet_diagnostic.S4220.severity = none # Events should have proper arguments — covered by SST2436 -dotnet_diagnostic.S4456.severity = none # Parameter validation in yielding methods should be wrapped — covered by SST2404 -dotnet_diagnostic.S4457.severity = none # Parameter validation in "async"/"await" methods should be wrapped — covered by SST2325 -dotnet_diagnostic.S4545.severity = none # "DebuggerDisplayAttribute" strings should reference existing members — covered by SST2405 -dotnet_diagnostic.S4581.severity = none # "new Guid()" should not be used — covered by SST2012 -dotnet_diagnostic.S6354.severity = none # Use a testable date/time provider — covered by SST2010 -dotnet_diagnostic.S6419.severity = none # Azure Functions should be stateless -> off: Azure Functions-specific; not used in this library -dotnet_diagnostic.S6420.severity = none # Client instances should not be recreated on each Azure Function invocation — covered by PSH1418 -dotnet_diagnostic.S6421.severity = none # Azure Functions should use Structured Error Handling -> off: Azure Functions-specific; not used in this library -dotnet_diagnostic.S6423.severity = none # Azure Functions should log all failures -> off: Azure Functions-specific; not used in this library -dotnet_diagnostic.S6561.severity = none # Avoid using "DateTime.Now" for benchmarking or timing operations — covered by PSH1408 -dotnet_diagnostic.S6562.severity = none # Covered by SST1451 (canonical) -dotnet_diagnostic.S6563.severity = none # Use UTC when recording DateTime instants — covered by SST2011 -dotnet_diagnostic.S6566.severity = none # Use "DateTimeOffset" instead of "DateTime" — covered by SST2016 -dotnet_diagnostic.S6575.severity = none # Use "TimeZoneInfo.FindSystemTimeZoneById" without converting the timezones with "TimezoneConverter" -> replaced by PSH1419 -dotnet_diagnostic.S6580.severity = none # Use a format provider when parsing date and time - DUPLICATE CA1305 -dotnet_diagnostic.S6673.severity = none # Log message template placeholders should be in the right order — covered by SST2440 -dotnet_diagnostic.S6802.severity = none # Using lambda expressions in loops should be avoided in Blazor markup section -> replaced by PSH1600 -dotnet_diagnostic.S6803.severity = none # Parameters with SupplyParameterFromQuery attribute should be used only in routable components -> off: Blazor-specific; no Blazor surface in this library -dotnet_diagnostic.S6931.severity = none # ASP.NET controller actions should not have a route template starting with "/" -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S6932.severity = none # Use model binding instead of reading raw request data -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S6934.severity = none # A Route attribute should be added to the controller when a route template is specified at the action level -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S6960.severity = none # Controllers should not have mixed responsibilities -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S6961.severity = none # API Controllers should derive from ControllerBase instead of Controller -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S6962.severity = none # You should pool HTTP connections with HttpClientFactory — covered by PSH1418 -dotnet_diagnostic.S6964.severity = none # Value type property used as input in a controller action should be nullable, required or annotated with the JsonRequiredAttribute to avoid under-posting. -> replaced by SST2705 (opt-in) -dotnet_diagnostic.S6965.severity = none # REST API actions should be annotated with an HTTP verb attribute -> replaced by SST2704 -dotnet_diagnostic.S6966.severity = none # Awaitable method should be used — covered by PSH1313 -dotnet_diagnostic.S6968.severity = none # Actions that return a value should be annotated with ProducesResponseTypeAttribute containing the return type -> off: ASP.NET MVC-specific; no controllers in this library -dotnet_diagnostic.S881.severity = none # Increment (++) and decrement (--) operators should not be used in a method call or mixed with other operators in an expression — covered by SST2015 -dotnet_diagnostic.S907.severity = none # "goto" statement should not be used — covered by SST2014 - -# Minor code smells -dotnet_diagnostic.S100.severity = none # Methods and properties should be named in PascalCase — covered by SST1300 -dotnet_diagnostic.S101.severity = none # Types should be named in PascalCase — covered by SST1300 -dotnet_diagnostic.S105.severity = none # Tabulation characters should not be used — covered by SST1027 -dotnet_diagnostic.S1104.severity = none # Fields should not have public accessibility - DUPLICATE CA1051 -dotnet_diagnostic.S1109.severity = none # A close curly brace should be located at the beginning of a line — covered by SST1500 -dotnet_diagnostic.S1116.severity = none # Empty statements should be removed - DUPLICATE SA1106 dotnet_diagnostic.S1125.severity = none # Boolean literals should not be redundant — covered by SST1182 dotnet_diagnostic.S1128.severity = none # Covered by SST1445 (canonical) -dotnet_diagnostic.S113.severity = none # Files should end with a newline +dotnet_diagnostic.S1133.severity = none # Deprecated code should be removed — covered by SST2310 +dotnet_diagnostic.S1134.severity = none # Track uses of "FIXME" tags -> off: TODO comment tracker; not enforced here +dotnet_diagnostic.S1135.severity = none # Track uses of "TODO" tags -> off: FIXME comment tracker; not enforced here +dotnet_diagnostic.S1144.severity = none # Covered by SST1440 (canonical) +dotnet_diagnostic.S1147.severity = none # Exit methods should not be called — covered by SST2321 +dotnet_diagnostic.S1151.severity = none # switch case clauses with too many lines — covered by SST1524 dotnet_diagnostic.S1155.severity = none # "Any()" should be used to test for emptiness — covered by PSH1119 -dotnet_diagnostic.S1185.severity = none # Overriding members should do more than simply call the same member in the base class - DUPLICATE RCS1132 +dotnet_diagnostic.S1163.severity = none # Exceptions should not be thrown in finally blocks -> replaced by CA2219 +dotnet_diagnostic.S1168.severity = none # Empty collections should be returned over null — covered by SST2306 +dotnet_diagnostic.S1172.severity = none # Unused method parameters should be removed — covered by SST1461 +dotnet_diagnostic.S1185.severity = none # Overrides that only call the base — covered by RCS1132 +dotnet_diagnostic.S1186.severity = none # Methods should not be empty — covered by SST1438 dotnet_diagnostic.S1192.severity = none # String literals should not be duplicated — covered by SST1486 dotnet_diagnostic.S1199.severity = none # Nested code blocks should not be used — covered by SST1138 -dotnet_diagnostic.S1210.severity = none # "Equals" and the comparison operators should be overridden when implementing "IComparable" - DUPLICATE CA1036 +dotnet_diagnostic.S1200.severity = none # Classes should not be coupled to too many other classes +dotnet_diagnostic.S1206.severity = none # Equals and GetHashCode overridden in pairs — covered by CA2218 +dotnet_diagnostic.S1210.severity = none # IComparable types should override Equals and operators — CA1036 +dotnet_diagnostic.S1215.severity = none # "GC.Collect" should not be called — covered by PSH1021 +dotnet_diagnostic.S1226.severity = none # Parameter and foreach initial values should not be ignored dotnet_diagnostic.S1227.severity = none # break statements should not be used except for switch cases +dotnet_diagnostic.S1244.severity = none # Floating point numbers should not be tested for equality — covered by SST1473 dotnet_diagnostic.S1264.severity = none # A "while" loop should be used instead of a "for" loop — covered by SST2245 dotnet_diagnostic.S1301.severity = none # "switch" statements should have at least 3 "case" clauses +dotnet_diagnostic.S1309.severity = none # Track uses of in-source issue suppressions dotnet_diagnostic.S1312.severity = none # Logger fields should be "private static readonly" +dotnet_diagnostic.S1313.severity = none # Hardcoded IP addresses — too noisy to enforce dotnet_diagnostic.S1449.severity = none # Culture should be specified for "string" operations — covered by PSH1207 -dotnet_diagnostic.S1450.severity = none # Private fields only used as local variables in methods should become local variables — covered by SST1422 +dotnet_diagnostic.S1450.severity = none # Private fields used only as locals — covered by SST1422 +dotnet_diagnostic.S1451.severity = none # Track lack of copyright and license headers +dotnet_diagnostic.S1479.severity = none # "switch" statements with many "case" clauses — covered by SST1423 dotnet_diagnostic.S1481.severity = none # Unused local variables should be removed — covered by SST1497 +dotnet_diagnostic.S1541.severity = none # Methods and properties should not be too complex - covered by SST1442 +dotnet_diagnostic.S1607.severity = none # Tests should not be ignored -> off: ignored-test tracker; not enforced here dotnet_diagnostic.S1643.severity = none # Covered by PSH1206 (canonical) +dotnet_diagnostic.S1656.severity = none # Variables should not be self-assigned — covered by SST1189 dotnet_diagnostic.S1659.severity = none # Multiple variables should not be declared on the same line — covered by SST1132 -dotnet_diagnostic.S1694.severity = none # An abstract class should have both abstract and concrete methods — covered by SST2323 +dotnet_diagnostic.S1694.severity = none # Abstract classes need abstract and concrete methods — SST2323 +dotnet_diagnostic.S1696.severity = none # NullReferenceException should not be caught — covered by SST2401 dotnet_diagnostic.S1698.severity = none # "==" should not be used when "Equals" is overridden — covered by SST1495 +dotnet_diagnostic.S1699.severity = none # Constructors should only call non-overridable methods — covered by SST1483 +dotnet_diagnostic.S1751.severity = none # Loops with at most one iteration should be refactored - covered by SST1444 +dotnet_diagnostic.S1764.severity = none # Identical expressions on both sides of an operator — covered by SST1474 +dotnet_diagnostic.S1821.severity = none # "switch" statements should not be nested -> replaced by SST2252 +dotnet_diagnostic.S1848.severity = none # Objects created and dropped immediately — covered by SST1480 +dotnet_diagnostic.S1854.severity = none # Unused assignments should be removed - DUPLICATE IDE0059 dotnet_diagnostic.S1858.severity = none # "ToString()" calls should not be redundant — covered by PSH1211 +dotnet_diagnostic.S1862.severity = none # if/else if statements with the same condition — covered by SST1475 +dotnet_diagnostic.S1871.severity = none # Two branches with the same implementation — covered by SST2414 dotnet_diagnostic.S1905.severity = none # Redundant casts should not be used - DUPLICATE IDE0004 — covered by SST1175 dotnet_diagnostic.S1939.severity = none # Inheritance list should not be redundant — covered by SST1490 and SST1177 dotnet_diagnostic.S1940.severity = none # Boolean checks should not be inverted — covered by SST1172 +dotnet_diagnostic.S1944.severity = none # Invalid casts should be avoided -> replaced by compiler CS0030 +dotnet_diagnostic.S1994.severity = none # A for loop increment should modify the counter — covered by SST2411 +dotnet_diagnostic.S2068.severity = none # Credentials should not be hard-coded -> replaced by SES1201 +dotnet_diagnostic.S2077.severity = none # Formatting SQL queries is security-sensitive -> replaced by CA2100 +dotnet_diagnostic.S2092.severity = none # Cookies without the secure flag — replaced by CA5382 dotnet_diagnostic.S2094.severity = none # Classes should not be empty — covered by SST1436 +dotnet_diagnostic.S2114.severity = none # Collections passed to their own methods — covered by SST2419 +dotnet_diagnostic.S2115.severity = none # A secure database password should be used — replaced by SES1203 +dotnet_diagnostic.S2123.severity = none # Values should not be uselessly incremented -> replaced by SST2222 +dotnet_diagnostic.S2139.severity = none # Exceptions logged and rethrown — replaced by SST2488 dotnet_diagnostic.S2148.severity = none # Underscores should be used to make large numbers readable — covered by SST1191 dotnet_diagnostic.S2156.severity = none # "sealed" classes should not have "protected" members — covered by SST1427 +dotnet_diagnostic.S2166.severity = none # Exception-named classes should extend Exception — covered by CA1710 +dotnet_diagnostic.S2178.severity = none # Short-circuit logic should be used in boolean contexts — covered by SST2415 +dotnet_diagnostic.S2183.severity = none # Shift counts beyond the operand width — covered by SST1478 +dotnet_diagnostic.S2184.severity = none # Integer division assigned to a floating point value — SST1477 +dotnet_diagnostic.S2187.severity = none # Test classes should contain at least one test case — covered by SST2504 +dotnet_diagnostic.S2190.severity = none # Loops and recursions should not be infinite +dotnet_diagnostic.S2197.severity = none # Modulus results should not be checked for direct equality — covered by SST2416 +dotnet_diagnostic.S2198.severity = none # Unnecessary mathematical comparisons should not be made -> replaced by SST2489 +dotnet_diagnostic.S2201.severity = none # Side-effect-free return values ignored — covered by SST2418 dotnet_diagnostic.S2219.severity = none # Runtime type checking should be simplified — covered by SST2007 dotnet_diagnostic.S2221.severity = none # "Exception" should not be caught +dotnet_diagnostic.S2223.severity = none # Non-constant static fields should not be visible - DUPLICATE CA2211 +dotnet_diagnostic.S2225.severity = none # "ToString()" method should not return null — covered by SST2431 +dotnet_diagnostic.S2234.severity = none # Arguments passed in parameter order — replaced by SST2400 +dotnet_diagnostic.S2245.severity = none # Pseudorandom number generators are sensitive — covered by CA5394 +dotnet_diagnostic.S2251.severity = none # A for loop counter moving the wrong way — covered by SST2412 +dotnet_diagnostic.S2252.severity = none # For-loop conditions should be true at least once — covered by SST2413 +dotnet_diagnostic.S2257.severity = none # Non-standard cryptographic algorithms — replaced by SES1007 +dotnet_diagnostic.S2275.severity = none # Composite format strings — covered by CA2241 +dotnet_diagnostic.S2290.severity = none # Field-like events should not be virtual -> replaced by SST2456 +dotnet_diagnostic.S2291.severity = none # Overflow checking disabled for Enumerable.Sum — covered by SST2457 dotnet_diagnostic.S2292.severity = none # Trivial properties should be auto-implemented — covered by SST1420 -dotnet_diagnostic.S2325.severity = none # Methods and properties that don't access instance data should be static - DUPLICATE CA1822 +dotnet_diagnostic.S2302.severity = none # "nameof" should be used — covered by SST1415 +dotnet_diagnostic.S2306.severity = none # async and await as identifiers — replaced by the compiler +dotnet_diagnostic.S2325.severity = none # Members not touching instance data should be static — CA1822 +dotnet_diagnostic.S2326.severity = none # Covered by SST1452 (canonical) +dotnet_diagnostic.S2327.severity = none # try statements with identical catch or finally — replaced by SST2490 +dotnet_diagnostic.S2328.severity = none # "GetHashCode" should not reference mutable fields — covered by SST1482 +dotnet_diagnostic.S2330.severity = none # Array covariance should not be used — covered by SST2434 dotnet_diagnostic.S2333.severity = none # Redundant modifiers should not be used — covered by SST1419/SST1491 +dotnet_diagnostic.S2339.severity = none # Public constant members should not be used — covered by SST2311 dotnet_diagnostic.S2342.severity = none # Enumeration types should comply with a naming convention — covered by SST1319 -dotnet_diagnostic.S2344.severity = none # Enumeration type names should not have "Flags" or "Enum" suffixes - DUPLICATE CA1711 +dotnet_diagnostic.S2344.severity = none # Enum names should not end in Flags or Enum — covered by CA1711 +dotnet_diagnostic.S2345.severity = none # Flags enums should initialize all members — covered by SST2303 +dotnet_diagnostic.S2346.severity = none # Flags enumerations zero-value members should be named "None" - DUPLICATE CA1008 +dotnet_diagnostic.S2357.severity = none # Fields should be private — covered by SST1401; exposed fields are suppressed +dotnet_diagnostic.S2360.severity = none # Optional parameters should not be used — conflicts with SST2433 +dotnet_diagnostic.S2365.severity = none # Properties should not make collection or array copies — covered by PSH1017 +dotnet_diagnostic.S2368.severity = none # Public multidimensional array parameters — jagged is our layout +dotnet_diagnostic.S2372.severity = none # Exceptions should not be thrown from property getters — covered by SST1485 +dotnet_diagnostic.S2376.severity = none # Write-only properties should not be used — covered by SST1421 dotnet_diagnostic.S2386.severity = none # Mutable fields should not be "public static" — covered by SST1499 +dotnet_diagnostic.S2387.severity = none # Child class fields should not shadow parent class fields — covered by SST1484 +dotnet_diagnostic.S2436.severity = none # Too many generic parameters — needed for the projector overload +dotnet_diagnostic.S2437.severity = none # Unnecessary bit operations should not be performed — covered by SST1481 +dotnet_diagnostic.S2445.severity = none # Blocks should be synchronized on read-only fields — covered by SST1904 +dotnet_diagnostic.S2479.severity = none # Control characters in string literals — covered by SST1192 dotnet_diagnostic.S2486.severity = none # Generic exceptions should not be ignored — covered by SST1429 +dotnet_diagnostic.S2551.severity = none # Shared resources should not be used for locking — covered by SST1902 +dotnet_diagnostic.S2589.severity = none # Null checks are judged against nullability annotations that differ across the Roslyn slots +dotnet_diagnostic.S2612.severity = none # World-accessible file permissions — replaced by SES1308 +dotnet_diagnostic.S2629.severity = none # Logging templates should be constant -> replaced by CA2254 +dotnet_diagnostic.S2674.severity = none # The length returned from a stream read should be checked — covered by SST2446 +dotnet_diagnostic.S2681.severity = none # Multiline blocks should be enclosed in curly braces — covered by SST1503 +dotnet_diagnostic.S2688.severity = none # "NaN" should not be used in comparisons — covered by SST1473 +dotnet_diagnostic.S2692.severity = none # "IndexOf" checks should not be for positive numbers — covered by SST2420 +dotnet_diagnostic.S2696.severity = none # Instance members should not write to "static" fields -> replaced by SST2402 +dotnet_diagnostic.S2699.severity = none # Tests should include assertions -> replaced by SST2500 +dotnet_diagnostic.S2701.severity = none # Literal boolean values should not be used in assertions — covered by SST2503 dotnet_diagnostic.S2737.severity = none # "catch" clauses should do more than rethrow — covered by SST1470 +dotnet_diagnostic.S2743.severity = none # Static fields in generic types — covered by SST1431 +dotnet_diagnostic.S2755.severity = none # XML parsers should not be vulnerable to XXE attacks -> replaced by CA3075 +dotnet_diagnostic.S2757.severity = none # Non-existent operators like "=+" should not be used — covered by SST2417 dotnet_diagnostic.S2760.severity = none # Sequential tests should not check the same condition — covered by SST1475 +dotnet_diagnostic.S2761.severity = none # Doubled prefix operators "!!" and "~~" should not be used — covered by SST1190 +dotnet_diagnostic.S2857.severity = none # SQL keywords should be delimited by whitespace — covered by SST2470 +dotnet_diagnostic.S2925.severity = none # "Thread.Sleep" should not be used in tests — covered by SST2506 +dotnet_diagnostic.S2930.severity = none # "IDisposables" should be disposed — covered by SST2410 +dotnet_diagnostic.S2931.severity = none # Types with IDisposable members should implement IDisposable — SST2315 +dotnet_diagnostic.S2933.severity = none # Constructor-only assigned fields should be readonly — IDE0044 +dotnet_diagnostic.S2934.severity = none # Assignment to a readonly field of a type parameter — SST2421 +dotnet_diagnostic.S2952.severity = none # Dispose members from the type's own Dispose — covered by SST2315 +dotnet_diagnostic.S2953.severity = none # Methods named Dispose should implement IDisposable — SST2316 +dotnet_diagnostic.S2955.severity = none # Unconstrained generic compared to null — replaced by the compiler +dotnet_diagnostic.S2970.severity = none # Assertions should be complete -> replaced by SST2508 +dotnet_diagnostic.S2971.severity = none # LINQ expressions should be simplified — covered by PSH1101/PSH1102 +dotnet_diagnostic.S2995.severity = none # ReferenceEquals on value types — covered by CA2013 +dotnet_diagnostic.S2996.severity = none # "ThreadStatic" fields should not be initialized -> replaced by CA2019 +dotnet_diagnostic.S2997.severity = none # IDisposables created in a using should not be returned — SST2423 +dotnet_diagnostic.S3005.severity = none # "ThreadStatic" should not be used on non-static fields -> replaced by CA2259 +dotnet_diagnostic.S3010.severity = none # Static fields should not be updated in constructors — covered by SST2402 +dotnet_diagnostic.S3011.severity = none # Reflection used to increase accessibility — replaced by SES1406 dotnet_diagnostic.S3052.severity = none # Covered by PSH1403 (canonical) -dotnet_diagnostic.S3220.severity = none # Method calls should not resolve ambiguously to overloads with "params" — covered by SST2467 +dotnet_diagnostic.S3059.severity = none # Members more visible than their containing type +dotnet_diagnostic.S3060.severity = none # "is" should not be used with "this" -> replaced by SST2327 +dotnet_diagnostic.S3063.severity = none # "StringBuilder" data should be used — covered by SST2408 +dotnet_diagnostic.S3168.severity = none # "async" methods should not return "void" — covered by SST1905 +dotnet_diagnostic.S3169.severity = none # Multiple "OrderBy" calls should not be used — covered by PSH1108 +dotnet_diagnostic.S3172.severity = none # Delegates should not be subtracted — covered by SST2448 +dotnet_diagnostic.S3215.severity = none # Interfaces cast to concrete types — unenforced, as with SST2326 +dotnet_diagnostic.S3216.severity = none # "ConfigureAwait(false)" should be used -> replaced by CA2007 +dotnet_diagnostic.S3217.severity = none # Explicit conversions in foreach loops — covered by SST2225 +dotnet_diagnostic.S3218.severity = none # Inner members shadowing outer members — covered by SST1484 +dotnet_diagnostic.S3220.severity = none # Ambiguous resolution to params overloads — covered by SST2467 dotnet_diagnostic.S3234.severity = none # Covered by PSH1008 (canonical) dotnet_diagnostic.S3235.severity = none # Redundant parentheses should not be used — covered by SST1459 dotnet_diagnostic.S3236.severity = none # Covered by SST1448 (canonical) +dotnet_diagnostic.S3237.severity = none # "value" contextual keyword should be used — covered by SST2429 dotnet_diagnostic.S3240.severity = none # The simplest possible condition syntax should be used - duplicate of SST1198 -dotnet_diagnostic.S3241.severity = none # Methods should not return values that are never used -> off: needs whole-program analysis; not enforced here +dotnet_diagnostic.S3241.severity = none # Return values never used — needs whole-program analysis dotnet_diagnostic.S3242.severity = none # Method parameters should be declared with base types +dotnet_diagnostic.S3244.severity = none # Anonymous delegates used to unsubscribe from events — SST2449 +dotnet_diagnostic.S3246.severity = none # Generic parameters should be co/contravariant — low precision dotnet_diagnostic.S3247.severity = none # Duplicate casts should not be made — covered by SST1175 +dotnet_diagnostic.S3249.severity = none # Covered by SST1447 (canonical) dotnet_diagnostic.S3251.severity = none # Implementations should be provided for "partial" methods — covered by SST2468 -dotnet_diagnostic.S3253.severity = none # Constructor and destructor declarations should not be redundant — covered by SST1433 +dotnet_diagnostic.S3253.severity = none # Redundant constructor and destructor declarations — SST1433 dotnet_diagnostic.S3254.severity = none # Default parameter values should not be passed as arguments — covered by SST1494 dotnet_diagnostic.S3256.severity = none # "string.IsNullOrEmpty" should be used — covered by PSH1204 (style configurable) -dotnet_diagnostic.S3257.severity = none # Declarations and initializations should be as concise as possible -> replaced by SST2202 -dotnet_diagnostic.S3260.severity = none # Non-derived "private" classes and records should be "sealed" — covered by PSH1411 +dotnet_diagnostic.S3257.severity = none # Declarations should be as concise as possible — replaced by SST2202 +dotnet_diagnostic.S3260.severity = none # Non-derived private classes should be sealed — covered by PSH1411 dotnet_diagnostic.S3261.severity = none # Namespaces should not be empty — covered by SST1435 -dotnet_diagnostic.S3267.severity = none # Loops should be simplified with "LINQ" expressions -dotnet_diagnostic.S3376.severity = none # Attribute, EventArgs, and Exception type names should end with the type being extended - DUPLICATE CA1710 -dotnet_diagnostic.S3398.severity = none # "private" methods called only by inner classes should be moved to those classes — covered by SST1498 +dotnet_diagnostic.S3262.severity = none # "params" should be used on overrides — covered by SST2426 +dotnet_diagnostic.S3263.severity = none # Static fields ordered by initialization need — covered by SST2428 +dotnet_diagnostic.S3264.severity = none # Events should be invoked — covered by SST2407 +dotnet_diagnostic.S3265.severity = none # Non-flags enums should not be used in bitwise operations — covered by SST2458 +dotnet_diagnostic.S3267.severity = none # Asks for LINQ; production code here is deliberately LINQ-free +dotnet_diagnostic.S3330.severity = none # Cookies without the HttpOnly flag — replaced by CA5383 +dotnet_diagnostic.S3343.severity = none # Caller-info parameters should come last — covered by SST2433 +dotnet_diagnostic.S3346.severity = none # Debug.Assert expressions with side effects — covered by SST2450 +dotnet_diagnostic.S3353.severity = none # Unchanged variables should be marked as "const" — covered by PSH1402 +dotnet_diagnostic.S3358.severity = none # Ternary operators should not be nested — covered by SST1147 +dotnet_diagnostic.S3363.severity = none # Date and time should not be used as a type for primary keys — covered by SST2475 +dotnet_diagnostic.S3366.severity = none # "this" should not be exposed from constructors — covered by SST2403 +dotnet_diagnostic.S3376.severity = none # Attribute and Exception type name suffixes — covered by CA1710 +dotnet_diagnostic.S3397.severity = none # base.Equals used for reference equality — covered by SST2435 +dotnet_diagnostic.S3398.severity = none # Private methods used only by inner classes — covered by SST1498 dotnet_diagnostic.S3400.severity = none # Methods should not return constants — covered by SST1493 +dotnet_diagnostic.S3415.severity = none # Assertion arguments should be passed in the correct order — covered by SST2502 dotnet_diagnostic.S3416.severity = none # Loggers should be named for their enclosing types — covered by SST2443 -dotnet_diagnostic.S3440.severity = none # Variables should not be checked against the values they're about to be assigned — covered by SST1492 -dotnet_diagnostic.S3441.severity = none # Redundant property names should be omitted in anonymous classes — covered by SST1173 -dotnet_diagnostic.S3444.severity = none # Interfaces should not simply inherit from base interfaces with colliding members — covered by SST2320 -dotnet_diagnostic.S3450.severity = none # Parameters with "[DefaultParameterValue]" attributes should also be marked "[Optional]" -> replaced by obsolete (legacy DefaultParameterValue) -dotnet_diagnostic.S3458.severity = none # Empty "case" clauses that fall through to the "default" should be omitted — covered by SST1466 -dotnet_diagnostic.S3459.severity = none # Unassigned members should be removed - the compiler reports this as CS0649; the rule only ever fires on private never-assigned fields +dotnet_diagnostic.S3427.severity = none # Overlapping default parameter overloads — covered by SST2319 +dotnet_diagnostic.S3431.severity = none # "[ExpectedException]" should not be used — covered by SST2507 +dotnet_diagnostic.S3433.severity = none # Test method signatures should be correct -> replaced by SST2509 +dotnet_diagnostic.S3440.severity = none # Variables checked against the value being assigned — SST1492 +dotnet_diagnostic.S3441.severity = none # Redundant property names in anonymous types — covered by SST1173 +dotnet_diagnostic.S3442.severity = none # "abstract" classes should not have "public" constructors — covered by SST1428 +dotnet_diagnostic.S3443.severity = none # Type should not be examined on "System.Type" instances — covered by SST2432 +dotnet_diagnostic.S3444.severity = none # Interfaces inheriting colliding members — covered by SST2320 +dotnet_diagnostic.S3445.severity = none # Exceptions should not be explicitly rethrown — covered by SST1430 +dotnet_diagnostic.S3447.severity = none # [Optional] on ref or out parameters — covered by SST2459 +dotnet_diagnostic.S3449.severity = none # Right operands of shift operators should be integers -> replaced by SST1478 +dotnet_diagnostic.S3450.severity = none # [DefaultParameterValue] needs [Optional] — replaced by obsolete +dotnet_diagnostic.S3451.severity = none # [DefaultValue] where [DefaultParameterValue] is meant — SST2460 +dotnet_diagnostic.S3453.severity = none # Classes should not have only "private" constructors — covered by SST2451 +dotnet_diagnostic.S3456.severity = none # Redundant ToCharArray and ToArray calls — covered by PSH1217 +dotnet_diagnostic.S3457.severity = none # Composite format strings should be used correctly — covered by SST1454 +dotnet_diagnostic.S3458.severity = none # Empty case clauses falling through to default — covered by SST1466 +dotnet_diagnostic.S3459.severity = none # Unassigned members should be removed — the compiler reports CS0649 +dotnet_diagnostic.S3464.severity = none # Type inheritance should not be recursive — covered by SST2437 +dotnet_diagnostic.S3466.severity = none # Optional parameters should be passed to "base" calls — covered by SST2425 dotnet_diagnostic.S3532.severity = none # Empty "default" clauses should be removed — covered by SST1179 +dotnet_diagnostic.S3597.severity = none # ServiceContract and OperationContract together — replaced by obsolete +dotnet_diagnostic.S3598.severity = none # One-way OperationContract should return void — replaced by obsolete +dotnet_diagnostic.S3600.severity = none # "params" should not be introduced on overrides — covered by SST2426 +dotnet_diagnostic.S3603.severity = none # Methods with "Pure" attribute should return a value — covered by SST2452 dotnet_diagnostic.S3604.severity = none # Member initializer values should not be redundant — covered by PSH1403 +dotnet_diagnostic.S3610.severity = none # Nullable type comparison should not be redundant -> replaced by compiler CS0472 dotnet_diagnostic.S3626.severity = none # Jump statements should not be redundant — covered by SST1174 dotnet_diagnostic.S3717.severity = none # Track use of "NotImplementedException" -> replaced by SST2485 -dotnet_diagnostic.S3872.severity = none # Parameter names should not duplicate the names of their methods -> replaced by SST1320 +dotnet_diagnostic.S3776.severity = none # Cognitive Complexity of methods should not be too high - covered by SST1443 +dotnet_diagnostic.S3869.severity = none # "SafeHandle.DangerousGetHandle" should not be called -> replaced by SST2484 +dotnet_diagnostic.S3871.severity = none # Exception types should be "public" -> replaced by CA1064 +dotnet_diagnostic.S3872.severity = none # Parameter names duplicating the method name — replaced by SST1320 +dotnet_diagnostic.S3874.severity = none # "out" and "ref" parameters — repo idiom is TryX(..., out T value) +dotnet_diagnostic.S3875.severity = none # "operator==" should not be overloaded on reference types -> replaced by SST2464 dotnet_diagnostic.S3876.severity = none # Strings or integral types should be used for indexers -> replaced by CA1043 +dotnet_diagnostic.S3877.severity = none # Exceptions should not be thrown from unexpected methods — covered by SST1485 dotnet_diagnostic.S3878.severity = none # Arrays should not be created for params parameters — covered by PSH1018 -dotnet_diagnostic.S3897.severity = none # Classes that provide "Equals()" should implement "IEquatable" -> replaced by CA1067 +dotnet_diagnostic.S3880.severity = none # Finalizers should not be empty — covered by PSH1002 +dotnet_diagnostic.S3881.severity = none # "IDisposable" should be implemented correctly — covered by SST2300 +dotnet_diagnostic.S3884.severity = none # CoSetProxyBlanket and CoInitializeSecurity — replaced by obsolete +dotnet_diagnostic.S3885.severity = none # "Assembly.Load" should be used -> replaced by SST2486 +dotnet_diagnostic.S3887.severity = none # Mutable, non-private fields should not be "readonly" — covered by SST2322 +dotnet_diagnostic.S3889.severity = none # Thread.Resume and Thread.Suspend — replaced by obsolete markers +dotnet_diagnostic.S3897.severity = none # Types with Equals(T) should implement IEquatable — CA1067 +dotnet_diagnostic.S3898.severity = none # Covered by PSH1005 (canonical) +dotnet_diagnostic.S3902.severity = none # Covered by PSH1404 (canonical) +dotnet_diagnostic.S3903.severity = none # Types should be defined in named namespaces — covered by SST2312 +dotnet_diagnostic.S3904.severity = none # Assemblies should have version information — the SDK supplies it +dotnet_diagnostic.S3906.severity = none # Event Handlers should have the correct signature — covered by SST2304 +dotnet_diagnostic.S3908.severity = none # Generic event handlers should be used -> replaced by SST2304 +dotnet_diagnostic.S3909.severity = none # Collections should implement the generic interface -> replaced by CA1010 +dotnet_diagnostic.S3923.severity = none # All branches with the same implementation — covered by SST1476 +dotnet_diagnostic.S3925.severity = none # ISerializable should be implemented correctly — legacy path is obsolete +dotnet_diagnostic.S3926.severity = none # Deserialization methods for OptionalField — replaced by obsolete +dotnet_diagnostic.S3927.severity = none # Serialization event handlers — covered by SST2430 +dotnet_diagnostic.S3928.severity = none # ArgumentException parameter names should exist — covered by CA2208 +dotnet_diagnostic.S3937.severity = none # Number patterns should be regular — covered by SST1119 +dotnet_diagnostic.S3956.severity = none # "Generic.List" instances should not be part of public APIs dotnet_diagnostic.S3962.severity = none # Covered by PSH1402 (canonical) dotnet_diagnostic.S3963.severity = none # "static" fields should be initialized inline - DUPLICATE CA1810 dotnet_diagnostic.S3967.severity = none # Multidimensional arrays should not be used - DUPLICATE CA1814 -dotnet_diagnostic.S4018.severity = none # All type parameters should be used in the parameter list to enable type inference — covered by SST2307 +dotnet_diagnostic.S3971.severity = none # GC.SuppressFinalize should not be called — conflicts with PSH1008 +dotnet_diagnostic.S3972.severity = none # Conditionals should start on new lines — covered by SST1146 +dotnet_diagnostic.S3973.severity = none # A conditional single line should be indented — replaced by SST1503 +dotnet_diagnostic.S3981.severity = none # Collection size and array length comparisons — covered by SST1479 +dotnet_diagnostic.S3984.severity = none # Exceptions should not be created without being thrown — covered by SST1480 +dotnet_diagnostic.S3990.severity = none # Assemblies should be marked as CLS compliant -> replaced by CA1014 +dotnet_diagnostic.S3992.severity = none # Assemblies should explicitly specify COM visibility -> replaced by CA1017 +dotnet_diagnostic.S3993.severity = none # Custom attributes need AttributeUsage — replaced by CA1018 +dotnet_diagnostic.S3994.severity = none # URI Parameters should not be strings +dotnet_diagnostic.S3995.severity = none # URI return values should not be strings +dotnet_diagnostic.S3996.severity = none # URI properties should not be strings +dotnet_diagnostic.S3997.severity = none # String URI overloads should call Uri overloads — replaced by CA1054 +dotnet_diagnostic.S3998.severity = none # Threads should not lock on objects with weak identity -> replaced by SST1902 +dotnet_diagnostic.S4000.severity = none # Pointers to unmanaged memory should not be visible -> replaced by SST2328 +dotnet_diagnostic.S4002.severity = none # Disposable types should declare finalizers — covered by SST2317 +dotnet_diagnostic.S4004.severity = none # Collection properties should be readonly — covered by SST2305 +dotnet_diagnostic.S4005.severity = none # "System.Uri" arguments should be used instead of strings +dotnet_diagnostic.S4015.severity = none # Inherited member visibility should not be decreased — covered by SST2462 +dotnet_diagnostic.S4016.severity = none # Enumeration members should not be named "Reserved" -> replaced by CA1700 +dotnet_diagnostic.S4017.severity = none # Method signatures should not contain nested generic types +dotnet_diagnostic.S4018.severity = none # All type parameters should appear in the parameter list — SST2307 +dotnet_diagnostic.S4019.severity = none # Base class methods should not be hidden — covered by SST2427 dotnet_diagnostic.S4022.severity = none # Enumerations should have "Int32" storage — covered by SST2313 dotnet_diagnostic.S4023.severity = none # Interfaces should not be empty — covered by SST1437 -dotnet_diagnostic.S4026.severity = none # Assemblies should be marked with "NeutralResourcesLanguageAttribute" -> replaced by CA1824 +dotnet_diagnostic.S4025.severity = none # Child fields differing from parent only by case — covered by SST2463 +dotnet_diagnostic.S4026.severity = none # Assemblies need NeutralResourcesLanguage — replaced by CA1824 dotnet_diagnostic.S4027.severity = none # Exceptions should provide standard constructors — covered by SST1488 +dotnet_diagnostic.S4035.severity = none # Classes implementing "IEquatable" should be sealed — covered by SST2301 +dotnet_diagnostic.S4036.severity = none # PATH-relative process spawn — benchmark only, trusted env +dotnet_diagnostic.S4039.severity = none # Interface methods should be callable by derived types - DUPLICATE CA1033 dotnet_diagnostic.S4040.severity = none # Strings should be normalized to uppercase - DUPLICATE CA1308 dotnet_diagnostic.S4041.severity = none # Type names should not match namespaces - DUPLICATE CA1724 -dotnet_diagnostic.S4047.severity = none # Generics should be used when appropriate -> off: fuzzy prefer-generics suggestion; not enforced +dotnet_diagnostic.S4047.severity = none # Generics should be used when appropriate — fuzzy, not enforced dotnet_diagnostic.S4049.severity = none # Properties should be preferred - DUPLICATE CA1024 +dotnet_diagnostic.S4050.severity = none # Operators should be overloaded consistently — covered by SST2302 dotnet_diagnostic.S4052.severity = none # Types should not extend outdated base types -> replaced by obsolete -dotnet_diagnostic.S4056.severity = none # Overloads with a "CultureInfo" or an "IFormatProvider" parameter should be used - DUPLICATE CA1305 +dotnet_diagnostic.S4055.severity = none # Literals should not be passed as localized parameters +dotnet_diagnostic.S4056.severity = none # CultureInfo or IFormatProvider overloads — covered by CA1305 +dotnet_diagnostic.S4057.severity = none # Locales should be set for data types -> replaced by obsolete dotnet_diagnostic.S4058.severity = none # Covered by PSH1207 (canonical) +dotnet_diagnostic.S4059.severity = none # Property names should not match get methods - DUPLICATE CA1721 dotnet_diagnostic.S4060.severity = none # Non-abstract attributes should be sealed - DUPLICATE CA1813 -dotnet_diagnostic.S4061.severity = none # "params" should be used instead of "varargs" -> replaced by obsolete (__arglist varargs) +dotnet_diagnostic.S4061.severity = none # params should be used instead of varargs — replaced by obsolete dotnet_diagnostic.S4069.severity = none # Operator overloads should have named alternatives - DUPLICATE CA2225 +dotnet_diagnostic.S4070.severity = none # Non-flags enums should not be marked with "FlagsAttribute" — covered by SST2303 dotnet_diagnostic.S4136.severity = none # Method overloads should be grouped together — covered by SST1218 -dotnet_diagnostic.S4201.severity = none # Null checks should not be combined with "is" operator checks — covered by SST2018 +dotnet_diagnostic.S4143.severity = none # Collection elements should not be replaced unconditionally — covered by SST1487 +dotnet_diagnostic.S4144.severity = none # Methods should not have identical implementations — covered by SST2318 +dotnet_diagnostic.S4159.severity = none # Classes should implement their "ExportAttribute" interfaces — covered by SST2472 +dotnet_diagnostic.S4200.severity = none # Native methods should be wrapped -> replaced by CA1401 +dotnet_diagnostic.S4201.severity = none # Null checks combined with is checks — covered by SST2018 +dotnet_diagnostic.S4210.severity = none # Windows Forms entry points need STAThread — replaced by SST2706 +dotnet_diagnostic.S4211.severity = none # Conflicting transparency annotations — replaced by obsolete +dotnet_diagnostic.S4212.severity = none # Serialization constructors should be secured — replaced by obsolete +dotnet_diagnostic.S4214.severity = none # "P/Invoke" methods should not be visible - DUPLICATE CA1401 +dotnet_diagnostic.S4220.severity = none # Events should have proper arguments — covered by SST2436 dotnet_diagnostic.S4225.severity = none # Extension methods should not extend "object" — covered by SST1706 dotnet_diagnostic.S4226.severity = none # Extensions should be in separate namespaces -dotnet_diagnostic.S4261.severity = none # Methods should be named according to their synchronicities - Async suffix not used +dotnet_diagnostic.S4260.severity = none # ConstructorArgument parameters must exist — replaced by SST2487 +dotnet_diagnostic.S4261.severity = none # Methods named for their synchronicity — no Async suffix here +dotnet_diagnostic.S4275.severity = none # Getters and setters should access the expected fields — covered by SST2422 +dotnet_diagnostic.S4277.severity = none # "Shared" parts should not be created with "new" — covered by SST2473 +dotnet_diagnostic.S4423.severity = none # Weak SSL/TLS protocols should not be used -> replaced by CA5397/CA5398 +dotnet_diagnostic.S4426.severity = none # Cryptographic keys should be robust -> replaced by CA5385 (RSA) / CA5384 (DSA) +dotnet_diagnostic.S4428.severity = none # PartCreationPolicy needs Export — covered by SST2474 +dotnet_diagnostic.S4433.severity = none # LDAP connections should be authenticated -> replaced by SES1310 +dotnet_diagnostic.S4456.severity = none # Parameter validation in yielding methods should be wrapped — covered by SST2404 +dotnet_diagnostic.S4457.severity = none # Parameter validation in async methods — covered by SST2325 +dotnet_diagnostic.S4462.severity = none # Calls to "async" methods should not be blocking - covered by PSH1315 +dotnet_diagnostic.S4487.severity = none # Unread "private" fields should be removed +dotnet_diagnostic.S4502.severity = none # Disabling CSRF protections — replaced by the in-box antiforgery analyzer +dotnet_diagnostic.S4507.severity = none # Debug features in production — partly covered by SES1506 +dotnet_diagnostic.S4524.severity = none # "default" clauses should be first or last — covered by SST1219 +dotnet_diagnostic.S4545.severity = none # DebuggerDisplay should name real members — covered by SST2405 +dotnet_diagnostic.S4581.severity = none # "new Guid()" should not be used — covered by SST2012 +dotnet_diagnostic.S4583.severity = none # BeginInvoke should be paired with EndInvoke — replaced by obsolete +dotnet_diagnostic.S4586.severity = none # Non-async "Task/Task" methods should not return null — covered by PSH1312 +dotnet_diagnostic.S4635.severity = none # Start index should be used instead of calling Substring — covered by PSH1218 dotnet_diagnostic.S4663.severity = none # Covered by SST1120 (canonical) -dotnet_diagnostic.S6513.severity = none # "ExcludeFromCodeCoverage" attributes should include a justification - not available on net462 and older TFMs -dotnet_diagnostic.S6585.severity = none # Don't hardcode the format when turning dates and times to strings — covered by SST2445 -dotnet_diagnostic.S6588.severity = none # Use the "UnixEpoch" field instead of creating "DateTime" instances that point to the beginning of the Unix epoch — covered by PSH1413 +dotnet_diagnostic.S4790.severity = none # Using weak hashing algorithms is security-sensitive -> replaced by CA5350/CA5351 +dotnet_diagnostic.S4792.severity = none # Configuring loggers is security-sensitive — not enforced here +dotnet_diagnostic.S4830.severity = none # Server certificates should be verified — replaced by SES1102/SES1108 +dotnet_diagnostic.S5034.severity = none # "ValueTask" should be consumed correctly — covered by PSH1316 +dotnet_diagnostic.S5042.severity = none # Unbounded archive expansion — needs taint analysis, out of scope +dotnet_diagnostic.S5122.severity = none # Permissive CORS policy — replaced by SES1501 +dotnet_diagnostic.S5332.severity = none # Using clear-text protocols is security-sensitive -> replaced by SES1106 +dotnet_diagnostic.S5344.severity = none # Passwords stored with a fast hash — replaced by SES1009 +dotnet_diagnostic.S5443.severity = none # Using publicly writable directories is security-sensitive -> replaced by SES1308 +dotnet_diagnostic.S5445.severity = none # Insecure temporary file creation — replaced by SES1307 +dotnet_diagnostic.S5542.severity = none # Encryption mode and padding scheme — replaced by CA5358 +dotnet_diagnostic.S5547.severity = none # Cipher algorithms should be robust -> replaced by CA5351 +dotnet_diagnostic.S5659.severity = none # JWT signed with strong cipher algorithms — replaced by SES1503 +dotnet_diagnostic.S5693.severity = none # Excessive request content length — replaced by SES1505 +dotnet_diagnostic.S5753.severity = none # Disabling ASP.NET request validation — replaced by obsolete +dotnet_diagnostic.S5766.severity = none # Serializable objects without validation — obsolete path, unused +dotnet_diagnostic.S5856.severity = none # Regular expressions should be syntactically valid — covered by SST2444 +dotnet_diagnostic.S6354.severity = none # Use a testable date/time provider — covered by SST2010 +dotnet_diagnostic.S6377.severity = none # XML signatures should be validated securely -> replaced by SES1008 +dotnet_diagnostic.S6418.severity = none # Secrets should not be hard-coded — covered by SES1201 +dotnet_diagnostic.S6419.severity = none # Azure Functions should be stateless — not used in this library +dotnet_diagnostic.S6420.severity = none # Clients recreated per Azure Function call — covered by PSH1418 +dotnet_diagnostic.S6421.severity = none # Azure Functions structured error handling — not used in this library +dotnet_diagnostic.S6422.severity = none # Blocking async calls in Azure Functions — covered by PSH1315 +dotnet_diagnostic.S6423.severity = none # Azure Functions should log all failures — not used in this library +dotnet_diagnostic.S6424.severity = none # Durable entity interface restrictions — not used in this library +dotnet_diagnostic.S6444.severity = none # Regular expressions without a timeout — replaced by SES1509 +dotnet_diagnostic.S6507.severity = none # Blocks should not be synchronized on local variables — covered by SST1903 +dotnet_diagnostic.S6513.severity = none # ExcludeFromCodeCoverage justification — not available on net462 +dotnet_diagnostic.S6561.severity = none # DateTime.Now used for timing — covered by PSH1408 +dotnet_diagnostic.S6562.severity = none # Covered by SST1451 (canonical) +dotnet_diagnostic.S6563.severity = none # Use UTC when recording DateTime instants — covered by SST2011 +dotnet_diagnostic.S6566.severity = none # Use "DateTimeOffset" instead of "DateTime" — covered by SST2016 +dotnet_diagnostic.S6575.severity = none # FindSystemTimeZoneById conversions — replaced by PSH1419 +dotnet_diagnostic.S6580.severity = none # Use a format provider when parsing date and time - DUPLICATE CA1305 +dotnet_diagnostic.S6585.severity = none # Hardcoded date and time formats — covered by SST2445 +dotnet_diagnostic.S6588.severity = none # DateTime.UnixEpoch should be used — covered by PSH1413 dotnet_diagnostic.S6594.severity = none # Covered by PSH1406 (canonical) dotnet_diagnostic.S6602.severity = none # Covered by PSH1110 (canonical) dotnet_diagnostic.S6603.severity = none # Covered by PSH1110 (canonical) dotnet_diagnostic.S6605.severity = none # Covered by PSH1110 (canonical) dotnet_diagnostic.S6607.severity = none # The collection should be filtered before sorting — covered by PSH1107 dotnet_diagnostic.S6608.severity = none # Covered by PSH1106 (canonical) -dotnet_diagnostic.S6609.severity = none # "Min/Max" properties of "Set" types should be used instead of the "Enumerable" extension methods — covered by PSH1122 +dotnet_diagnostic.S6609.severity = none # Set Min/Max properties over the extensions — covered by PSH1122 dotnet_diagnostic.S6610.severity = none # Covered by PSH1201 (canonical) -dotnet_diagnostic.S6612.severity = none # The lambda parameter should be used instead of capturing arguments in "ConcurrentDictionary" methods — covered by PSH1006 -dotnet_diagnostic.S6613.severity = none # "First" and "Last" properties of "LinkedList" should be used instead of the "First()" and "Last()" extension methods — covered by PSH1124 +dotnet_diagnostic.S6612.severity = none # ConcurrentDictionary lambda parameter over captures — PSH1006 +dotnet_diagnostic.S6613.severity = none # LinkedList First/Last properties over the extensions — PSH1124 dotnet_diagnostic.S6617.severity = none # Covered by PSH1111 (canonical) -dotnet_diagnostic.S6618.severity = none # "string.Create" should be used instead of "FormattableString" — covered by PSH1209 -dotnet_diagnostic.S6664.severity = none # The code block contains too many logging calls -> off: fuzzy too-many-logging-calls metric; not enforced -dotnet_diagnostic.S6667.severity = none # Logging in a catch clause should pass the caught exception as a parameter. — covered by SST2438 +dotnet_diagnostic.S6618.severity = none # string.Create over FormattableString — covered by PSH1209 +dotnet_diagnostic.S6640.severity = none # Unsafe code blocks — not enforced here +dotnet_diagnostic.S6664.severity = none # Too many logging calls in a block — fuzzy metric, not enforced +dotnet_diagnostic.S6667.severity = none # Catch-clause logging should pass the exception — covered by SST2438 dotnet_diagnostic.S6668.severity = none # Logging arguments should be passed to the correct parameter — covered by SST2439 -dotnet_diagnostic.S6669.severity = none # Logger field or property name should comply with a naming convention -> replaced by SST2601 +dotnet_diagnostic.S6669.severity = none # Logger field naming convention — replaced by SST2601 dotnet_diagnostic.S6670.severity = none # "Trace.Write" and "Trace.WriteLine" should not be used — covered by SST2600 dotnet_diagnostic.S6672.severity = none # Generic logger injection should match enclosing type — covered by SST2443 -dotnet_diagnostic.S6675.severity = none # "Trace.WriteLineIf" should not be used with "TraceSwitch" levels -> off: niche TraceSwitch misuse; not enforced here +dotnet_diagnostic.S6673.severity = none # Log template placeholders in the right order — covered by SST2440 +dotnet_diagnostic.S6674.severity = none # Log message template should be syntactically correct — covered by SST2441 +dotnet_diagnostic.S6675.severity = none # Trace.WriteLineIf with TraceSwitch levels — niche, not enforced +dotnet_diagnostic.S6677.severity = none # Message template placeholders should be unique — covered by SST2442 dotnet_diagnostic.S6678.severity = none # Use PascalCase for named placeholders -> replaced by CA1727 -dotnet_diagnostic.S818.severity = none # Literal suffixes should be upper case — covered by SST2244 +dotnet_diagnostic.S6797.severity = none # Blazor query parameter type should be supported -> replaced by SST2702 +dotnet_diagnostic.S6798.severity = none # [JSInvokable] only on public methods — replaced by SST2701 +dotnet_diagnostic.S6800.severity = none # Component parameter must match the route constraint — SST2703 +dotnet_diagnostic.S6802.severity = none # Lambdas in Blazor markup loops — replaced by PSH1600 +dotnet_diagnostic.S6803.severity = none # SupplyParameterFromQuery outside routable components — no Blazor here +dotnet_diagnostic.S6930.severity = none # Backslash should be avoided in route templates -> replaced by SST2700 +dotnet_diagnostic.S6931.severity = none # Controller routes starting with / — no controllers in this library +dotnet_diagnostic.S6932.severity = none # Model binding over raw request data — no controllers in this library +dotnet_diagnostic.S6934.severity = none # Route attribute on the controller — no controllers in this library +dotnet_diagnostic.S6960.severity = none # Controllers with mixed responsibilities — no controllers here +dotnet_diagnostic.S6961.severity = none # API controllers should derive from ControllerBase — none here +dotnet_diagnostic.S6962.severity = none # You should pool HTTP connections with HttpClientFactory — covered by PSH1418 +dotnet_diagnostic.S6964.severity = none # Value-type inputs should be nullable or required — replaced by SST2705 +dotnet_diagnostic.S6965.severity = none # REST actions need an HTTP verb attribute — replaced by SST2704 +dotnet_diagnostic.S6966.severity = none # Awaitable method should be used — covered by PSH1313 +dotnet_diagnostic.S6967.severity = none # ModelState.IsValid in controller actions — no controllers here +dotnet_diagnostic.S6968.severity = none # Actions should declare ProducesResponseType — no controllers here +dotnet_diagnostic.S7039.severity = none # Content Security Policies should be restrictive -> replaced by SES1515 +dotnet_diagnostic.S8367.severity = none # Identifiers conflicting with the field keyword — the compiler reports it +dotnet_diagnostic.S8368.severity = none # Identifiers conflicting with the extension keyword — the compiler reports it +dotnet_diagnostic.S8380.severity = none # Return types named partial need @ — the compiler reports it +dotnet_diagnostic.S8381.severity = none # scoped should be escaped as an identifier — replaced by the compiler +dotnet_diagnostic.S8949.severity = none # A CancellationToken should be forwarded to the overload that takes one — covered by CA2016 +dotnet_diagnostic.S8969.severity = none # Null-forgiving operators are not portable across the Roslyn slots +dotnet_diagnostic.S8970.severity = none # Redundant null-forgiving operator — covered by SST2209 -# Informational code smells -dotnet_diagnostic.S1133.severity = none # Deprecated code should be removed — covered by SST2310 -dotnet_diagnostic.S1135.severity = none # Track uses of "TODO" tags -> off: FIXME comment tracker; not enforced here -dotnet_diagnostic.S1309.severity = none # Track uses of in-source issue suppressions +################### +# Experimental compiler APIs (RSEXPERIMENTAL) +################### +dotnet_diagnostic.RSEXPERIMENTAL006.severity = none # We target newer language features -# Uncategorized -dotnet_diagnostic.S9999-cpd.severity = error # Copy-paste token calculator -dotnet_diagnostic.S9999-log.severity = error # Log generator -dotnet_diagnostic.S9999-metadata.severity = error # File metadata generator -dotnet_diagnostic.S9999-metrics.severity = error # Metrics calculator -dotnet_diagnostic.S9999-symbolRef.severity = error # Symbol reference calculator -dotnet_diagnostic.S9999-telemetry.severity = error # Telemetry generator -dotnet_diagnostic.S9999-testMethodDeclaration.severity = error # Test method declarations generator -dotnet_diagnostic.S9999-token-type.severity = error # Token type calculator -dotnet_diagnostic.S9999-warning.severity = error # Analysis Warning generator - -# Critical security hotspots -dotnet_diagnostic.S2245.severity = none # Using pseudorandom number generators (PRNGs) is security-sensitive - DUPLICATE CA5394 -dotnet_diagnostic.S2257.severity = none # Using non-standard cryptographic algorithms is security-sensitive -> replaced by SES1007 -dotnet_diagnostic.S4502.severity = none # Disabling CSRF protections is security-sensitive -> replaced by in-box ASP.NET antiforgery analyzer -dotnet_diagnostic.S4790.severity = none # Using weak hashing algorithms is security-sensitive -> replaced by CA5350/CA5351 -dotnet_diagnostic.S4792.severity = none # Configuring loggers is security-sensitive -> off: logging-configuration audit hotspot; not enforced here -dotnet_diagnostic.S5042.severity = none # Expanding archive files without controlling resource consumption is security-sensitive -> off: unbounded decompression; needs taint analysis, out of scope -dotnet_diagnostic.S5332.severity = none # Using clear-text protocols is security-sensitive -> replaced by SES1106 -dotnet_diagnostic.S5443.severity = none # Using publicly writable directories is security-sensitive -> replaced by SES1308 +################### +# Trimming Analyzer Warnings (IL2001 - IL2123) +# See: https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-warnings/ +################### +dotnet_diagnostic.IL2001.severity = error # Type in UnreferencedCode attribute doesn't have matching RequiresUnreferencedCode +dotnet_diagnostic.IL2002.severity = error # Method with RequiresUnreferencedCode called from code without that attribute +dotnet_diagnostic.IL2003.severity = error # RequiresUnreferencedCode attribute is only supported on methods +dotnet_diagnostic.IL2004.severity = error # Incorrect RequiresUnreferencedCode signature +dotnet_diagnostic.IL2005.severity = error # Could not resolve dependency assembly +dotnet_diagnostic.IL2007.severity = error # Could not process embedded resource +dotnet_diagnostic.IL2008.severity = error # Could not find type in assembly +dotnet_diagnostic.IL2009.severity = error # Could not find method in type +dotnet_diagnostic.IL2010.severity = error # Invalid value for PreserveDependencyAttribute +dotnet_diagnostic.IL2011.severity = error # Unknown body modification +dotnet_diagnostic.IL2012.severity = error # Could not find field in type +dotnet_diagnostic.IL2013.severity = error # Substitution file contains invalid XML +dotnet_diagnostic.IL2014.severity = error # Missing substitution file +dotnet_diagnostic.IL2015.severity = error # Invalid XML encountered in substitution file +dotnet_diagnostic.IL2016.severity = error # Could not find type from substitution XML +dotnet_diagnostic.IL2017.severity = error # Could not find method in type specified in substitution XML +dotnet_diagnostic.IL2018.severity = error # Could not find field in type specified in substitution XML +dotnet_diagnostic.IL2019.severity = error # Could not find interface implementation in type +dotnet_diagnostic.IL2022.severity = error # Type in DynamicallyAccessedMembers attribute doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2023.severity = error # Method returning DynamicallyAccessedMembers annotated type requires the same annotation +dotnet_diagnostic.IL2024.severity = error # Multiple DynamicallyAccessedMembers annotations on a member are not supported +dotnet_diagnostic.IL2025.severity = error # Duplicate preserve attribute +dotnet_diagnostic.IL2026.severity = error # Using member annotated with RequiresUnreferencedCode +dotnet_diagnostic.IL2027.severity = error # RequiresUnreferencedCodeAttribute is only supported on methods and constructors +dotnet_diagnostic.IL2028.severity = error # Invalid RequiresUnreferencedCode attribute usage +dotnet_diagnostic.IL2029.severity = error # RequiresUnreferencedCode attribute on type is not supported +dotnet_diagnostic.IL2030.severity = error # Dynamic invocation of method requiring unreferenced code is not safe +dotnet_diagnostic.IL2031.severity = error # Could not resolve dependency assembly from embedded resource +dotnet_diagnostic.IL2032.severity = error # Error reading debug symbols +dotnet_diagnostic.IL2033.severity = error # Trying to modify a sealed type +dotnet_diagnostic.IL2034.severity = error # Value passed to the implicit 'this' parameter does not satisfy 'DynamicallyAccessedMembersAttribute' requirements +dotnet_diagnostic.IL2035.severity = error # Unrecognized value passed to the parameter of method with 'DynamicallyAccessedMembersAttribute' requirements +dotnet_diagnostic.IL2036.severity = error # Interface implementation has different DynamicallyAccessedMembers annotations than interface +dotnet_diagnostic.IL2037.severity = error # BaseType annotation doesn't match +dotnet_diagnostic.IL2038.severity = error # Derived type doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2039.severity = error # Implementation method doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2040.severity = error # Interface member doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2041.severity = error # GetType call on DynamicallyAccessedMembers annotated generic parameter +dotnet_diagnostic.IL2042.severity = error # The DynamicallyAccessedMembersAttribute value used in a custom attribute is not compatible +dotnet_diagnostic.IL2043.severity = error # DynamicallyAccessedMembersAttribute on property conflicts with base property +dotnet_diagnostic.IL2044.severity = error # DynamicallyAccessedMembersAttribute on event conflicts with base event +dotnet_diagnostic.IL2045.severity = error # Field type doesn't satisfy 'DynamicallyAccessedMembersAttribute' requirements +dotnet_diagnostic.IL2046.severity = error # Trimmer couldn't find PreserveBaseOverridesAttribute on a method +dotnet_diagnostic.IL2048.severity = error # Internal attribute couldn't be removed +dotnet_diagnostic.IL2049.severity = error # Could not process data format message +dotnet_diagnostic.IL2050.severity = error # Correctness of COM interop cannot be guaranteed after trimming +dotnet_diagnostic.IL2051.severity = error # COM related type is trimmed +dotnet_diagnostic.IL2052.severity = error # Resolving member reference for P/Invoke into type that is trimmed +dotnet_diagnostic.IL2053.severity = error # Target method is trimmed +dotnet_diagnostic.IL2054.severity = error # Generic constraint type is annotated with DynamicallyAccessedMembersAttribute which requires unreferenced code +dotnet_diagnostic.IL2055.severity = error # Type implements COM visible type but has no GUID +dotnet_diagnostic.IL2056.severity = error # Generic parameter with DynamicallyAccessedMembers annotation is not publicly visible +dotnet_diagnostic.IL2057.severity = error # Unrecognized value passed to the parameter of method with DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2058.severity = error # Parameter types of method doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2059.severity = error # Unrecognized reflection pattern +dotnet_diagnostic.IL2060.severity = error # Unrecognized value passed to parameter with DynamicallyAccessedMembersAttribute +dotnet_diagnostic.IL2061.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2062.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2063.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2064.severity = error # Value assigned to field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2065.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2066.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2067.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2068.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2069.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2070.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2071.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2072.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2073.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2074.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2075.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2076.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2077.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2078.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2079.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2080.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2081.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2082.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2083.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2084.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2085.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2087.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2088.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2089.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2090.severity = error # Value passed to implicit this parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2091.severity = error # Target generic argument doesn't satisfy 'DynamicallyAccessedMembersAttribute' requirements +dotnet_diagnostic.IL2092.severity = error # Value passed to generic parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2093.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2094.severity = error # DynamicallyAccessedMembers on 'this' parameter doesn't match overridden member +dotnet_diagnostic.IL2095.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2096.severity = error # Calling method on statically typed generic instance requires unreferenced code +dotnet_diagnostic.IL2097.severity = error # Value passed to parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2098.severity = error # Value stored in field doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2099.severity = error # Value returned from method doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2100.severity = error # XML stream doesn't conform to the schema +dotnet_diagnostic.IL2101.severity = error # Embedded XML in assembly couldn't be loaded +dotnet_diagnostic.IL2102.severity = error # Invalid warning number passed to UnconditionalSuppressMessage +dotnet_diagnostic.IL2103.severity = error # Value passed to the 'propertyAccessExpression' parameter doesn't satisfy DynamicallyAccessedMembersAttribute requirements +dotnet_diagnostic.IL2104.severity = error # Assembly that was specified through a custom step +dotnet_diagnostic.IL2105.severity = error # Type from a custom step that couldn't be loaded +dotnet_diagnostic.IL2106.severity = error # Method from a custom step that couldn't be loaded +dotnet_diagnostic.IL2107.severity = error # Methods in types that derive from RemotingClientProxy cannot be statically determined +dotnet_diagnostic.IL2108.severity = error # Invalid scope for UnconditionalSuppressMessage +dotnet_diagnostic.IL2109.severity = error # Method doesn't have matching DynamicallyAccessedMembers annotation +dotnet_diagnostic.IL2110.severity = error # Invalid member name in UnconditionalSuppressMessage +dotnet_diagnostic.IL2111.severity = error # Method with parameters or return value with DynamicallyAccessedMembersAttribute is not supported +dotnet_diagnostic.IL2112.severity = error # Reflection call to method with DynamicallyAccessedMembersAttribute requirements cannot be statically analyzed +dotnet_diagnostic.IL2113.severity = error # DynamicallyAccessedMembers on type references Type.MakeGenericType with different requirements +dotnet_diagnostic.IL2114.severity = error # DynamicallyAccessedMembers mismatch on signature types +dotnet_diagnostic.IL2115.severity = error # DynamicallyAccessedMembers on type or base types references member which requires unreferenced code +dotnet_diagnostic.IL2116.severity = error # DynamicallyAccessedMembers on parameter types doesn't match overridden parameter +dotnet_diagnostic.IL2117.severity = error # Methods with DynamicallyAccessedMembersAttribute annotations cannot be replaced +dotnet_diagnostic.IL2122.severity = error # Reflection call to method with UnreferencedCode attribute cannot be statically analyzed +dotnet_diagnostic.IL2123.severity = error # DynamicallyAccessedMembers on method or parameter doesn't match overridden member -# Major security hotspots -dotnet_diagnostic.S1313.severity = none # Using hardcoded IP addresses is security-sensitive -> off: hardcoded-IP heuristic; too noisy to enforce -dotnet_diagnostic.S2077.severity = none # Formatting SQL queries is security-sensitive -> replaced by CA2100 -dotnet_diagnostic.S5693.severity = none # Allowing requests with excessive content length is security-sensitive -> replaced by SES1505 -dotnet_diagnostic.S5753.severity = none # Disabling ASP.NET "Request Validation" feature is security-sensitive -> replaced by obsolete (legacy ASP.NET request validation) -dotnet_diagnostic.S5766.severity = none # Creating Serializable objects without data validation checks is security-sensitive -> off: legacy BinaryFormatter deserialization; obsolete path, not used here -dotnet_diagnostic.S6444.severity = none # Not specifying a timeout for regular expressions is security-sensitive -> replaced by SES1509 -dotnet_diagnostic.S6640.severity = none # Using unsafe code blocks is security-sensitive -> off: unsafe-code audit; not enforced here - -# Minor security hotspots -dotnet_diagnostic.S2092.severity = none # Creating cookies without the "secure" flag is security-sensitive -> replaced by CA5382 -dotnet_diagnostic.S3330.severity = none # Creating cookies without the "HttpOnly" flag is security-sensitive -> replaced by CA5383 -dotnet_diagnostic.S4507.severity = none # Delivering code in production with debug features activated is security-sensitive -> off: debug features in production; partly covered by SES1506, rest not enforced -dotnet_diagnostic.S5122.severity = none # Having a permissive Cross-Origin Resource Sharing policy is security-sensitive -> replaced by SES1501 +################### +# AOT Analyzer Warnings (IL3xxx) +# See: https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/warnings/ +################### +dotnet_diagnostic.IL3050.severity = error # Using member annotated with RequiresDynamicCode +dotnet_diagnostic.IL3051.severity = error # RequiresDynamicCode attribute is only supported on methods and constructors +dotnet_diagnostic.IL3052.severity = error # RequiresDynamicCode attribute on type is not supported +dotnet_diagnostic.IL3053.severity = error # Assembly has RequiresDynamicCode attribute +dotnet_diagnostic.IL3054.severity = error # Generic expansion in type requires dynamic code +dotnet_diagnostic.IL3055.severity = error # MakeGenericType on non-supported type requires dynamic code +dotnet_diagnostic.IL3056.severity = error # MakeGenericMethod on non-supported method requires dynamic code +dotnet_diagnostic.IL3057.severity = error # Reflection access to generic parameter requires dynamic code ############################################# # JetBrains ReSharper / Rider Inspections ############################################# -# Mirrors the CA / SA / RCS choices above for Rider and ReSharper users. Only +# Mirrors the CA / SST / PSH choices above for Rider and ReSharper users. Only # inspections with a clear mapping to our Roslyn analyzer rules are listed; # every other ReSharper inspection keeps its default severity. The goal is to # avoid Rider double-reporting things the Roslyn analyzers already catch and # to keep IDE severities in sync with CI-enforced severities. ################### -# ReSharper - Layout / Formatting (covered by StyleCop SA) +# ReSharper - Layout / Formatting (covered by the spacing and layout rules) ################### resharper_redundant_linebreak_highlighting = none # covered by SA layout rules resharper_missing_linebreak_highlighting = none # covered by SA layout rules -resharper_bad_empty_braces_line_breaks_highlighting = none # covered by SA1500 +resharper_bad_empty_braces_line_breaks_highlighting = none # covered by SST1500 resharper_missing_indent_highlighting = none # covered by editorconfig indent_size -resharper_missing_blank_lines_highlighting = none # covered by SA1516 / SA1517 +resharper_missing_blank_lines_highlighting = none # covered by SST1516 / SST1517 resharper_wrong_indent_size_highlighting = none # covered by editorconfig indent_size resharper_bad_indent_highlighting = none # covered by editorconfig indent_size resharper_bad_expression_braces_line_breaks_highlighting = none # covered by SA layout rules -resharper_multiple_spaces_highlighting = none # covered by SA1025 +resharper_multiple_spaces_highlighting = none # covered by SST1025 resharper_bad_expression_braces_indent_highlighting = none # covered by SA layout rules resharper_bad_control_braces_indent_highlighting = none # covered by SA layout rules resharper_bad_preprocessor_indent_highlighting = none # covered by SA layout rules -resharper_redundant_blank_lines_highlighting = none # covered by SA1516 / SA1507 -resharper_multiple_statements_on_one_line_highlighting = none # covered by SA1119 / SA1503 -resharper_bad_braces_spaces_highlighting = none # covered by SA1012 / SA1013 +resharper_redundant_blank_lines_highlighting = none # covered by SST1516 / SST1507 +resharper_multiple_statements_on_one_line_highlighting = none # covered by SST1119 / SST1503 +resharper_bad_braces_spaces_highlighting = none # covered by SST1012 / SST1013 resharper_outdent_is_off_prev_level_highlighting = none # editorconfig indentation resharper_bad_symbol_spaces_highlighting = none # covered by SA spacing rules -resharper_bad_colon_spaces_highlighting = none # covered by SA1024 -resharper_bad_semicolon_spaces_highlighting = none # covered by SA1002 -resharper_bad_square_brackets_spaces_highlighting = none # covered by SA1010 / SA1011 -resharper_bad_parens_spaces_highlighting = none # covered by SA1008 / SA1009 +resharper_bad_colon_spaces_highlighting = none # covered by SST1024 +resharper_bad_semicolon_spaces_highlighting = none # covered by SST1002 +resharper_bad_square_brackets_spaces_highlighting = none # covered by SST1010 / SST1011 +resharper_bad_parens_spaces_highlighting = none # covered by SST1008 / SST1009 ################### -# ReSharper - 'this' qualifier (matches SA1101 = none) +# ReSharper - 'this' qualifier (SST1117 owns the qualification style) ################### resharper_redundant_this_qualifier_highlighting = none # we don't follow the this. prefix style resharper_arrange_this_qualifier_highlighting = none # we don't follow the this. prefix style -resharper_arrange_default_access_modifier_highlighting = none # SA1400 requires explicit access modifiers — don't suggest removing them -resharper_redundant_default_access_modifier_highlighting = none # SA1400 requires explicit access modifiers — don't suggest removing them -resharper_redundant_access_modifier_highlighting = none # access modifiers are deliberate and SA1400 requires them -resharper_arrange_type_member_modifiers_highlighting = none # SA1206 handles modifier ordering; don't duplicate -resharper_redundant_empty_switch_section_highlighting = none # handled by RCS1070 +resharper_arrange_default_access_modifier_highlighting = none # SST1400 requires explicit access modifiers — don't suggest removing them +resharper_redundant_default_access_modifier_highlighting = none # SST1400 requires explicit access modifiers — don't suggest removing them +resharper_redundant_access_modifier_highlighting = none # access modifiers are deliberate and SST1400 requires them +resharper_arrange_type_member_modifiers_highlighting = none # SST1206 handles modifier ordering; don't duplicate +resharper_redundant_empty_switch_section_highlighting = none # an empty section is how an intentionally ignored case reads ################### # ReSharper - Redundancies / cleanup @@ -2701,22 +2441,22 @@ resharper_redundant_empty_switch_section_highlighting = none # handled by RCS107 resharper_redundant_using_directive_highlighting = error # IDE0005 may not fire at compile time reliably — keep Rider nagging resharper_redundant_qualifier_highlighting = error # IDE0001 may not fire at compile time reliably — keep Rider nagging resharper_redundant_name_qualifier_highlighting = error # IDE0001 may not fire at compile time reliably — keep Rider nagging -resharper_redundant_base_qualifier_highlighting = none # IDE0009 is disabled (SA1101 = none) — don't nag in Rider either -resharper_redundant_cast_highlighting = none # handled by RCS1151 -resharper_redundant_explicit_array_creation_highlighting = none # handled by RCS1014 -resharper_redundant_empty_object_creation_argument_list_highlighting = none # handled by RCS1039 +resharper_redundant_base_qualifier_highlighting = none # IDE0009 is disabled (SST1117 owns qualification) — don't nag in Rider either +resharper_redundant_cast_highlighting = error # a cast that changes nothing is dead weight +resharper_redundant_explicit_array_creation_highlighting = error # let the element type be inferred +resharper_redundant_empty_object_creation_argument_list_highlighting = none # an explicit () reads consistently next to argument-carrying calls resharper_redundant_lambda_signature_parentheses_highlighting = error # IDE0063 may not fire at compile time reliably — keep Rider nagging -resharper_redundant_default_member_initializer_highlighting = none # handled by RCS1188 -resharper_redundant_field_initializer_highlighting = none # handled by RCS1129 -resharper_redundant_overriding_member_highlighting = none # handled by RCS1132 -resharper_redundant_verbatim_string_prefix_highlighting = none # handled by RCS1192 -resharper_redundant_string_interpolation_highlighting = none # handled by RCS1105 / RCS1214 -resharper_redundant_to_string_call_highlighting = none # handled by RCS1097 +resharper_redundant_default_member_initializer_highlighting = error # the field already starts at its default +resharper_redundant_field_initializer_highlighting = error # the field already starts at its default +resharper_redundant_overriding_member_highlighting = error # an override that only calls base adds nothing +resharper_redundant_verbatim_string_prefix_highlighting = error # no escape in the literal needs the @ +resharper_redundant_string_interpolation_highlighting = error # the interpolation has no holes +resharper_redundant_to_string_call_highlighting = error # the value is already a string in this position ################### # ReSharper - Naming (matches SA/CA naming rules) ################### -resharper_inconsistent_naming_highlighting = none # too many false positives on test/fixture naming; SA1300 family covers the real cases +resharper_inconsistent_naming_highlighting = error # partially handled by SST1300 family but IDE1006 isn't enabled; keep ReSharper active ################### # ReSharper - Unused code (matches CA1801 / CA1823 / IDE0051-0052) @@ -2734,37 +2474,37 @@ resharper_unused_auto_property_accessor_local_highlighting = none # data-class s resharper_unused_auto_property_accessor_global_highlighting = none # public auto-properties may be intentionally exposed ################### -# ReSharper - Code quality (matches CA/RCS semantic analyzers) +# ReSharper - Code quality (matches the CA and PSH semantic analyzers) ################### resharper_class_never_instantiated_local_highlighting = none # handled by CA1812 resharper_class_never_instantiated_global_highlighting = suggestion # public types may be instantiated externally resharper_class_cannot_be_instantiated_highlighting = none # handled by CA1052 resharper_class_can_be_sealed_local_highlighting = none # handled by CA1852 (private/internal surface) resharper_class_can_be_sealed_global_highlighting = none # public types stay open for inheritance -resharper_use_nameof_expression_highlighting = none # handled by CA1507 / RCS1015 +resharper_use_nameof_expression_highlighting = none # covered by CA1507 resharper_possible_null_reference_exception_highlighting = none # handled bynullability analyzer resharper_possible_invalid_operation_exception_highlighting = none # handled bynullability analyzer resharper_possible_multiple_enumeration_highlighting = none # handled by CA1851 resharper_possible_mistaken_argument_null_check_highlighting = none # handled by CA1062 -resharper_convert_to_constant_local_highlighting = none # handled by RCS1118 +resharper_convert_to_constant_local_highlighting = none # a local that never changes is fine as a local resharper_convert_to_static_class_highlighting = none # handled by CA1052 -resharper_convert_to_auto_property_highlighting = none # handled by RCS1085 -resharper_convert_to_auto_property_when_possible_highlighting = none # handled by RCS1085 -resharper_convert_to_auto_property_with_private_setter_highlighting = none # handled by RCS1085 -resharper_auto_property_can_be_made_get_only_local_highlighting = none # handled by RCS1170 +resharper_convert_to_auto_property_highlighting = none # an explicit backing field is often deliberate +resharper_convert_to_auto_property_when_possible_highlighting = none # an explicit backing field is often deliberate +resharper_convert_to_auto_property_with_private_setter_highlighting = none # an explicit backing field is often deliberate +resharper_auto_property_can_be_made_get_only_local_highlighting = none # a settable property is often part of the intended contract resharper_auto_property_can_be_made_get_only_global_highlighting = suggestion # public setters kept for API consumers resharper_member_can_be_made_static_local_highlighting = none # handled by CA1822 (private/internal surface) resharper_member_can_be_made_static_global_highlighting = none # public members kept virtual for inheritance resharper_member_can_be_private_local_highlighting = none # access modifiers are deliberate — don't suggest tightening resharper_method_has_async_overload_highlighting = none # sync call sites are intentional (e.g. test setup, disposal, sample code) resharper_member_can_be_private_global_highlighting = none # access modifiers are deliberate — don't suggest tightening -resharper_field_can_be_made_read_only_local_highlighting = none # handled by RCS1169 -resharper_field_can_be_made_read_only_global_highlighting = none # handled by RCS1169 -resharper_merge_into_pattern_highlighting = none # handled by RCS1220 -resharper_merge_conditional_expression_highlighting = none # handled by RCS1173 -resharper_merge_sequential_checks_highlighting = none # handled by RCS1206 -resharper_simplify_conditional_ternary_expression_highlighting = none # handled by RCS1049 / RCS1104 -resharper_simplify_linq_expression_highlighting = error # handled by RCS1077 +resharper_field_can_be_made_read_only_local_highlighting = error # a field never reassigned after construction should say so +resharper_field_can_be_made_read_only_global_highlighting = error # a field never reassigned after construction should say so +resharper_merge_into_pattern_highlighting = none # the unmerged form is often the clearer read +resharper_merge_conditional_expression_highlighting = none # the unmerged form is often the clearer read +resharper_merge_sequential_checks_highlighting = none # the unmerged form is often the clearer read +resharper_simplify_conditional_ternary_expression_highlighting = none # the unmerged form is often the clearer read +resharper_simplify_linq_expression_highlighting = error # a query that collapses to one call should be written that way resharper_string_compare_to_is_culture_specific_highlighting = none # handled by CA1310 resharper_string_ends_with_is_culture_specific_highlighting = none # handled by CA1310 resharper_string_index_of_is_culture_specific_1_highlighting = none # handled by CA1310 @@ -2779,15 +2519,15 @@ resharper_specify_a_culture_in_string_conversion_explicitly_highlighting = none ################### # ReSharper - Control flow / nesting ################### -resharper_invert_if_highlighting = suggestion # related to RCS1208 — Rider is more aggressive +resharper_invert_if_highlighting = suggestion # inverting to an early return usually reads better, but not always resharper_tail_recursive_call_highlighting = suggestion ################### -# ReSharper - Documentation (covered by StyleCop SA1600 family) +# ReSharper - Documentation (covered by the SST1600 family) ################### -resharper_missing_xml_doc_highlighting = none # covered by SA1600 family -resharper_missing_xml_doc_global_highlighting = none # covered by SA1600 family -resharper_invalid_xml_doc_comment_highlighting = none # handled by SA1612 / SA1613 +resharper_missing_xml_doc_highlighting = none # covered by SST1600 family +resharper_missing_xml_doc_global_highlighting = none # covered by SST1600 family +resharper_invalid_xml_doc_comment_highlighting = none # handled by SST1612 / SST1613 ################### # ReSharper - Typo / spelling (not enforced) @@ -2830,9 +2570,5 @@ indent_size = 2 [*.sh] end_of_line = lf -############################################# -# Test projects (TUnit) -############################################# -# TUnit instantiates test classes per test, so they must remain instance classes and -# cannot be marked static — even when a partial declaration happens to hold only static -# members (the instance [Test] methods live in sibling partial files). +[*.{cmd, bat}] +end_of_line = lf diff --git a/.gitattributes b/.gitattributes index bedb4e88..5ea20824 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,13 +1,28 @@ -# Text files are stored and checked out with LF line endings on every platform. -# Files are UTF-8 without a byte order mark; .editorconfig sets that for editors. +# Every text file is stored and checked out with LF, on every platform. +# +# Without this, a Windows checkout with core.autocrlf=true rewrites LF to CRLF +# on the way to disk. The line-ending analyzer then fails the whole build on the +# Windows leg while the Linux and macOS legs pass, because the files on disk no +# longer match what is in the repository. `eol=lf` pins the checkout, so the +# working tree matches the index everywhere. +# +# The .editorconfig already sets end_of_line = lf for editors; this is the same +# rule for git, which editors do not control. * text=auto eol=lf -# Binary files are never normalised. +# Never normalise binary content — a stray LF-to-CRLF pass corrupts it. *.png binary *.jpg binary +*.jpeg binary +*.gif binary *.ico binary +*.pdf binary *.snk binary +*.pfx binary *.dll binary *.exe binary +*.zip binary *.nupkg binary -*.nettrace binary +*.ttf binary +*.woff binary +*.woff2 binary diff --git a/.github/renovate.json b/.github/renovate.json index e58e8026..db02bc7b 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -4,6 +4,17 @@ "local>reactiveui/.github:renovate" ], "packageRules": [ + { + "description": "The generator and analyzer are held at the Roslyn 4.8.0 baseline (VS 2022 17.8, .NET 8.0.1xx SDK) and must not move with the toolchain. Both ship in the version-less analyzers/dotnet/cs folder, and a compiler refuses to load a generator or analyzer built against a newer Roslyn than itself, so raising this floor silently drops every consumer on an older SDK. It is a compatibility decision, not a maintenance lag, and the only reason to change it is to raise the minimum supported SDK on purpose. Microsoft.CodeAnalysis.Analyzers is deliberately absent: it supplies analyzer-authoring rules and has no bearing on the load floor.", + "matchManagers": [ + "nuget" + ], + "enabled": false, + "matchPackageNames": [ + "/^Microsoft\\.CodeAnalysis\\.CSharp$/", + "/^Microsoft\\.CodeAnalysis\\.CSharp\\.Workspaces$/" + ] + }, { "description": "Analyzer packages all gate the build through the same warnings-as-errors pass, so landing them separately just means several red CI runs in a row. Move them in one PR.", "matchManagers": [ @@ -11,8 +22,7 @@ ], "groupName": "analyzers", "matchPackageNames": [ - "/^Roslynator\\./", - "/^stylecop\\.analyzers$/i" + "/^(Style|Performance|Security|PublicApi)Sharp\\.Analyzers$/" ] }, { @@ -27,14 +37,13 @@ ] }, { - "description": "Verify.TUnit is built against a specific TUnit version. The shared preset groups TUnit separately from Verify.*, which can split a matched pair across two PRs and red the build; keep them together here.", + "description": "Basic.Reference.Assemblies ships one package per target runtime and the generator tests compile against all of them. A partial bump leaves the suite straddling two versions.", "matchManagers": [ "nuget" ], - "groupName": "TUnit", + "groupName": "reference assemblies", "matchPackageNames": [ - "/^TUnit(\\.|$)/", - "/^Verify\\./" + "/^Basic\\.Reference\\.Assemblies(\\.|$)/" ] }, { @@ -44,7 +53,7 @@ ], "groupName": "test tooling", "matchPackageNames": [ - "/^PublicApiGenerator$/" + "/^BenchmarkDotNet(\\.|$)/" ] } ] diff --git a/.github/workflows/benchmarks-ab.yml b/.github/workflows/benchmarks-ab.yml new file mode 100644 index 00000000..931feef9 --- /dev/null +++ b/.github/workflows/benchmarks-ab.yml @@ -0,0 +1,30 @@ +name: Benchmarks A/B + +on: + workflow_dispatch: + inputs: + base: + description: 'Baseline commit SHA.' + type: string + required: true + head: + description: 'Commit SHA compared against the baseline.' + type: string + required: true + +permissions: + contents: read + +jobs: + benchmark: + uses: reactiveui/actions-common/.github/workflows/workflow-common-benchmarks-ab.yml@main + with: + base: ${{ inputs.base }} + head: ${{ inputs.head }} + projects: | + benchmarks/ReactiveUI.Binding.Benchmarks/ReactiveUI.Binding.Benchmarks.csproj + benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ReactiveUI.Binding.Generator.Benchmarks.csproj + benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks.csproj + benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj + solutionFile: ReactiveUI.SourceGenerators.slnf + installWorkloads: true diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml new file mode 100644 index 00000000..0ddd8cb4 --- /dev/null +++ b/.github/workflows/benchmarks.yml @@ -0,0 +1,27 @@ +name: Benchmarks + +on: + workflow_dispatch: + inputs: + sha: + description: 'Commit to benchmark. Empty benchmarks the latest commit of the chosen branch.' + type: string + default: '' + +permissions: + contents: read + +jobs: + benchmark: + uses: reactiveui/actions-common/.github/workflows/workflow-common-benchmarks.yml@main + with: + revision: ${{ inputs.sha }} + projects: | + benchmarks/ReactiveUI.Binding.Benchmarks/ReactiveUI.Binding.Benchmarks.csproj + benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUI.Binding.Benchmarks.ReactiveUI.csproj + benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ReactiveUI.Binding.Generator.Benchmarks.csproj + benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks.csproj + benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj + benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj + solutionFile: ReactiveUI.SourceGenerators.slnf + installWorkloads: true diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index eaaff095..b126d14a 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -6,20 +6,23 @@ on: pull_request: branches: [ main ] -env: - productNamespacePrefix: "ReactiveUI.SourceGenerators" - # Needed so the reusable workflow can optionally delete the temp per-OS artifacts it creates. permissions: contents: read actions: write +env: + productNamespacePrefix: "ReactiveUI" + jobs: build: uses: reactiveui/actions-common/.github/workflows/workflow-common-setup-and-build.yml@main with: - productNamespacePrefix: ReactiveUI.SourceGenerators + configuration: Release + productNamespacePrefix: "ReactiveUI" + # The Uno.Sdk projects need MSBuild, so they build and test in their own Windows job. + solutionFile: ReactiveUI.SourceGenerators.slnf + msbuildSolutionFile: ReactiveUI.SourceGenerators.Uno.slnf installWorkloads: true secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 30b136b5..a2199ce0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,15 +1,3 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# - name: "CodeQL Advanced" on: @@ -18,7 +6,7 @@ on: pull_request: branches: [ main ] schedule: - - cron: '37 15 * * 3' + - cron: '18 12 * * 3' permissions: security-events: write @@ -31,7 +19,7 @@ jobs: uses: reactiveui/actions-common/.github/workflows/workflow-common-codeql.yml@main with: srcFolder: src - solutionFile: ReactiveUI.SourceGenerators.slnx + solutionFile: ReactiveUI.SourceGenerators.slnf installWorkloads: true analyzeCSharp: true analyzeActions: true diff --git a/.github/workflows/native-aot.yml b/.github/workflows/native-aot.yml new file mode 100644 index 00000000..8bc0b0a3 --- /dev/null +++ b/.github/workflows/native-aot.yml @@ -0,0 +1,16 @@ +name: Native AOT + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + native-aot-smoke: + uses: reactiveui/actions-common/.github/workflows/workflow-common-aot-smoke.yml@main + with: + projectFile: src/tests/ReactiveUI.Binding.AotValidation/ReactiveUI.Binding.AotValidation.csproj diff --git a/.github/workflows/release-binding.yml b/.github/workflows/release-binding.yml new file mode 100644 index 00000000..caddfe9e --- /dev/null +++ b/.github/workflows/release-binding.yml @@ -0,0 +1,77 @@ +name: Release ReactiveUI.Binding + +on: + workflow_dispatch: + inputs: + bump: + description: 'Release level' + required: true + type: choice + options: + - patch + - minor + - major + + sourceRef: + description: 'Optional git ref (tag/branch/SHA) to release from. Leave blank to release from this branch (normally main).' + required: false + type: string + default: '' + +permissions: + contents: write + id-token: write + packages: read + +jobs: + release: + uses: reactiveui/actions-common/.github/workflows/workflow-common-release.yml@main + with: + solutionFile: ReactiveUI.Binding.slnf + msbuildSolutionFile: ReactiveUI.Binding.Uno.slnf + installWorkloads: true + minverTagPrefix: binding-v + minverMinimumMajorMinor: '9.2' + bump: ${{ inputs.bump }} + sourceRef: ${{ inputs.sourceRef }} + secrets: + CERTUM_USER_ID: ${{ secrets.CERTUM_USER_ID }} + CERTUM_OTP_URI: ${{ secrets.CERTUM_OTP_URI }} + CERTUM_CERT_FINGERPRINT: ${{ secrets.CERTUM_CERT_FINGERPRINT }} + + publish-nuget: + needs: release + runs-on: ubuntu-latest + environment: + name: release + permissions: + id-token: write + steps: + - name: Download signed packages + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + with: + name: signed-nuget + + - name: Setup .NET + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6 + + - name: NuGet login (OIDC trusted publishing) + id: nuget-login + uses: NuGet/login@8d196754b4036150537f80ac539e15c2f1028841 # v1.2.0 + with: + user: ${{ secrets.NUGET_USER }} + + - name: Push to NuGet + shell: bash + run: | + for pkg in *.nupkg; do + dotnet nuget push "$pkg" --source https://api.nuget.org/v3/index.json --api-key "${{ steps.nuget-login.outputs.NUGET_API_KEY }}" + done + + create-release: + needs: [release, publish-nuget] + uses: reactiveui/actions-common/.github/workflows/workflow-common-create-release.yml@main + with: + version: ${{ needs.release.outputs.semver2 }} + tag: ${{ needs.release.outputs.tag }} + target: ${{ needs.release.outputs.sourceSha }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 455e9dd3..d449e373 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Release +name: Release ReactiveUI.SourceGenerators on: workflow_dispatch: @@ -27,9 +27,8 @@ jobs: release: uses: reactiveui/actions-common/.github/workflows/workflow-common-release.yml@main with: - solutionFile: ReactiveUI.SourceGenerators.slnx - installWorkloads: true - minverMinimumMajorMinor: '2.7' + solutionFile: ReactiveUI.SourceGenerators.Package.slnf + minverTagPrefix: v bump: ${{ inputs.bump }} sourceRef: ${{ inputs.sourceRef }} secrets: @@ -46,7 +45,7 @@ jobs: id-token: write steps: - name: Download signed packages - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: signed-nuget diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 00000000..ad454d42 --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,34 @@ +name: SonarCloud + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + sonarcloud: + uses: reactiveui/actions-common/.github/workflows/workflow-common-sonarcloud.yml@main + with: + productNamespacePrefix: ReactiveUI + solutionFile: ReactiveUI.SourceGenerators.slnf + installWorkloads: true + sonarProjectKey: ReactiveUI.Binding.SourceGenerators + sonarOrganization: reactiveui + sonarExclusions: '**/tests/**,**/benchmarks/**,**/TestResults/**' + sonarCoverageExclusions: '**/tests/**,**/benchmarks/**,**/examples/**,**/*Tests/**,**/*Tests.cs,**/*TestModels/**' + # Copy-paste detection is switched off for the arity-expanded surface and the platform packages. + # A *.WideArity.cs file is the same operator written once per type-parameter count, and the + # CombineLatest observables are one class per arity; each repetition is what makes the call site + # allocation-free and reflection-free, so collapsing them is not an option. The platform packages + # implement the same small abstractions against different UI frameworks. + sonarCpdExclusions: '**/tests/**,**/benchmarks/**,**/examples/**,**/*.WideArity.cs,**/*.WideArity.Unsafe.cs,**/Observables/CombineLatest*Observable.cs,**/ReactiveUI.Binding.Maui.Shared/**,**/ReactiveUI.Binding.Wpf.Shared/**,**/ReactiveUI.Binding.WinForms.Shared/**,**/ReactiveUI.Binding.Platform.Shared/**' + sonarTestExclusions: '**/tests/**,**/benchmarks/**,**/examples/**' + # Matches ci-build.yml: the MTP/TUnit suite is far slower on Windows net10 + # than on net8/9, so allow generous headroom for the coverage run. + testTimeout: '15m' + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/trimmed.yml b/.github/workflows/trimmed.yml new file mode 100644 index 00000000..e34c2330 --- /dev/null +++ b/.github/workflows/trimmed.yml @@ -0,0 +1,19 @@ +name: Trimmed + +# The shared smoke workflow keys its concurrency group on github.workflow, so the trimmed harness runs from +# its own file. Both in one file share a group, and whichever starts second cancels the other. + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + trimmed-smoke: + uses: reactiveui/actions-common/.github/workflows/workflow-common-aot-smoke.yml@main + with: + projectFile: src/tests/ReactiveUI.Binding.TrimValidation/ReactiveUI.Binding.TrimValidation.csproj diff --git a/.gitignore b/.gitignore index e95da353..bdd9743e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore # User-specific files *.rsuser @@ -9,6 +9,7 @@ *.user *.userosscache *.sln.docstates +*.env # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -21,16 +22,37 @@ mono_crash.* [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ -x64/ -x86/ + +[Dd]ebug/x64/ +[Dd]ebugPublic/x64/ +[Rr]elease/x64/ +[Rr]eleases/x64/ +bin/x64/ +obj/x64/ + +[Dd]ebug/x86/ +[Dd]ebugPublic/x86/ +[Rr]elease/x86/ +[Rr]eleases/x86/ +bin/x86/ +obj/x86/ + +[Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ +[Aa][Rr][Mm]64[Ee][Cc]/ bld/ -[Bb]in/ [Oo]bj/ +[Oo]ut/ [Ll]og/ [Ll]ogs/ +# Build results on 'Bin' directories +**/[Bb]in/* +# Uncomment if you have tasks that rely on *.refresh files to move binaries +# (https://github.com/github/gitignore/pull/3736) +#!**/[Bb]in/*.refresh + # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot @@ -42,12 +64,16 @@ Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* +*.trx # NUnit *.VisualState.xml TestResult.xml nunit-*.xml +# Approval Tests result files +*.received.* + # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ @@ -55,12 +81,16 @@ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ +**/.bdn/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + # StyleCop StyleCopReport.xml @@ -71,6 +101,7 @@ StyleCopReport.xml *.ilk *.meta *.obj +*.idb *.iobj *.pch *.pdb @@ -78,6 +109,8 @@ StyleCopReport.xml *.pgc *.pgd *.rsp +# but not Directory.Build.rsp, as it configures directory-level build defaults +!Directory.Build.rsp *.sbr *.tlb *.tli @@ -86,6 +119,7 @@ StyleCopReport.xml *.tmp_proj *_wpftmp.csproj *.log +*.tlog *.vspscc *.vssscc .builds @@ -137,12 +171,18 @@ _TeamCity* .axoCover/* !.axoCover/settings.json +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* +.NCrunch_* .*crunch*.local.xml nCrunchTemp_* @@ -284,6 +324,14 @@ node_modules/ # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts @@ -293,22 +341,22 @@ node_modules/ _Pvt_Extensions # Paket dependency manager -.paket/paket.exe +**/.paket/paket.exe paket-files/ # FAKE - F# Make -.fake/ +**/.fake/ # CodeRush personal settings -.cr/personal +**/.cr/personal # Python Tools for Visual Studio (PTVS) -__pycache__/ +**/__pycache__/ *.pyc # Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config +#tools/** +#!tools/packages.config # Tabs Studio *.tss @@ -330,15 +378,22 @@ ASALocalRun/ # MSBuild Binary and Structured Log *.binlog +MSBuild_Logs/ + +# AWS SAM Build and Temporary Artifacts folder +.aws-sam # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder -.mfractor/ +**/.mfractor/ # Local History for Visual Studio -.localhistory/ +**/.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ # BeatPulse healthcheck temp database healthchecksdb @@ -347,11 +402,58 @@ healthchecksdb MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder -.ionide/ +**/.ionide/ -# Claude Code local workspace -.claude/ +# Fody - auto-generated XML schema +FodyWeavers.xsd -# BenchmarkDotNet -**/.bdn/ -**/BenchmarkDotNet.Artifacts/ +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# Received files +src/*.Tests/**/*ApiApprovalTests*.received.txt + +# IntelliJ/Rider files +.idea/ + +# Mono Files +.mono/ + +# Fody Weavers (for tests) +src/Tools/ + +# Xamarin.Android Resource.Designer.cs files +**/*.Android/**/[Rr]esource.[Dd]esigner.cs +**/*.Droid/**/[Rr]esource.[Dd]esigner.cs +**/Android/**/[Rr]esource.[Dd]esigner.cs +**/Droid/**/[Rr]esource.[Dd]esigner.cs +**/[Rr]esources/[Rr]esource.[Dd]esigner.cs + +# MSBuild generator editor configs +**/*.GeneratedMSBuildEditorConfig.editorconfig +/app +.dotnet/ + +# Test results and coverage reports +test_results/ + +# Claude Settings +.claude/ diff --git a/CLAUDE.md b/CLAUDE.md index 9272a7ac..77927f54 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,318 +1,1415 @@ -# CLAUDE.md — ReactiveUI.SourceGenerators +# CLAUDE.md -This document provides guidance for AI assistants and contributors working in this repository. +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. -## Overview +## Zero Tolerance Policy -ReactiveUI.SourceGenerators is a Roslyn incremental source-generator package that automates ReactiveUI boilerplate at compile-time. It generates reactive properties, reactive commands, WinForms view hosts, bindable derived lists, reactive collections, and full reactive-object scaffolding — all with zero runtime reflection, making generated code fully AOT-compatible. +- **NEVER abandon work halfway through** - if something gets difficult, push through it +- **NEVER use `git stash`** to hide incomplete work - fix the problem directly +- **NEVER give up because a task is complex** - break it down and keep going +- If a tool call is rejected, adapt your approach immediately and continue -**Minimum consumer requirements:** C# 12.0 · Visual Studio 17.8.0 · ReactiveUI 23.2.28+ +## Contribution Rules (Mandatory) -## Architecture Overview +These apply to every change and every pull request. They are not negotiable. -The repository ships **three versioned generator assemblies** built from a single shared source folder: +### Generated code never repeats across assemblies -| Project | Roslyn version | Preprocessor constant | Extra features | -|---------|---------------|-----------------------|----------------| -| `ReactiveUI.SourceGenerators.Roslyn480` | 4.8.x (baseline) | _(none)_ | Field-based `[Reactive]`, `[ReactiveCommand]`, etc. | -| `ReactiveUI.SourceGenerators.Roslyn4140` | 4.14.0 | `ROSYLN_412` | + partial-property `[Reactive]` | -| `ReactiveUI.SourceGenerators.Roslyn5000` | 5.0.0 | `ROSYLN_500` | + same partial-property support on Roslyn 5 | +- **Never inject fixed code into a consumer.** A helper class, observable, invoker, command bridge or any other + code whose content does not depend on the call site belongs in a runtime package as public API. Generated code + references it by its fully qualified name. +- **Never generate a type whose fully qualified name can repeat in another assembly.** With `InternalsVisibleTo`, + a friend assembly sees both copies. Generated types live in a namespace unique to the assembly. +- **Do not use `RegisterPostInitializationOutput`** or any other output that is the same for every consumer. +- A compiler polyfill that generated code needs (`InterceptsLocationAttribute`, `ModuleInitializerAttribute`) is + declared `file`-scoped in the file that uses it. Do not ship public polyfills from the runtime: they clash + (CS0436) with the consumer's own polyfills. -Each versioned project links all `.cs` files from `ReactiveUI.SourceGenerators.Roslyn/` via: +### Never add a package without maintainer approval -```xml - -``` +Platform-specific code goes in the existing packages under platform target frameworks. Follow ReactiveUI's +layout: platform TFM properties in `Directory.Build.props`, and source folders such as `Platforms/apple-common`, +`Platforms/ios` and `Platforms/mac` that compile only for the matching TFMs. + +### Every changed file is fully covered + +Every source file a change adds or modifies reaches **100% line and branch coverage for the whole file**, not +only the changed lines. Measure each test project's cobertura report separately and merge them per file. Remove +code no caller can reach rather than testing it. The codecov/patch, codecov/project and SonarCloud quality gates +must all pass. -`#if ROSYLN_412 || ROSYLN_500` guards inside the shared source enable partial-property pipelines only on the newer Roslyn builds. +### Every change runs the examples -Each versioned project builds `ReactiveUI.SourceGenerators.Roslyn.dll`. The `ReactiveUI.SourceGenerators` project is -the package consumers install: it builds the attributes into `ReactiveUI.SourceGenerators.dll` under `lib/`, and bundles -the three generator DLLs, each with the code fixes, under `analyzers/dotnet/roslyn4.8/cs`, `analyzers/dotnet/roslyn4.14/cs`, -and `analyzers/dotnet/roslyn5.0/cs`, so NuGet/MSBuild automatically selects the right build based on the host compiler. +Run the full examples suite on every pull request: -### Generated code never declares a shared type +- **Linux:** every `Documentation/Pages` project, `ToPropertyVerification` on net8.0 to net11.0, + `PlatformBindingsVerification -- --verify` on net10.0, and a native AOT publish of `setup/aot` that reports no + trim or AOT warnings and runs. +- **Windows** (a real Windows machine or VM): `ToPropertyVerification` on net462 to net481 and net8.0 to net11.0, + `PlatformBindingsVerification -- --verify` and `threading` on net10.0-windows10.0.19041.0. +- Apple targets are exempt when no Apple host is available. -The attributes and the enums they take (`AccessModifier`, `PropertyAccessModifier`, `InheritanceModifier`) are public -types in `ReactiveUI.SourceGenerators`, which targets `$(LibraryTfms)` (net8.0-net11.0, net462-net481). A type -declared into each consumer would repeat in every assembly, and an assembly granted `InternalsVisibleTo` would see two -copies (CS0436). +A behaviour change that users can see gets an example. The website quotes example methods word for word, so a +changed example is updated on the website in the same series of pull requests. -- **Do not use `RegisterPostInitializationOutput`**, or emit any type whose fully qualified name another assembly - could also declare. -- A new attribute goes in `ReactiveUI.SourceGenerators` and is `[Conditional(KeepAttributes.Symbol)]`: the generators - read it from source, so a consumer keeps no reference to the attributes assembly. -- Generators, analyzers and code fixes stay `netstandard2.0`, the Roslyn host's framework. Only the attributes library - targets `$(LibraryTfms)`. -- Never emit a call ReactiveUI.Binding has to intercept (`WhenAny*`, `Bind`, `OneWayBind`, `BindCommand`): its - generator cannot see another generator's output, so the call has no dispatch and throws at run time. Generated code - that follows properties uses Binding's non-intercepted `ObservedProperty` when `ViewApiRules.HasObservedProperty` - finds it (ReactiveUI.Binding 8.4.0 or later), and its own `PropertyChanged` following otherwise. +### Pull requests -Generators report only the `RXUISG*` diagnostics about input they cannot generate from (see -[Analyzer Separation](#analyzer-separation-roslyn-best-practice)). Diagnostics about how code should be written, and -their code fixes, live in the separate `ReactiveUI.SourceGenerators.Analyzers.CodeFixes` project. +- **Use the organisation template**, [`reactiveui/.github` + `PULL_REQUEST_TEMPLATE.md`](https://github.com/reactiveui/.github/blob/main/.github/PULL_REQUEST_TEMPLATE.md), + and fill every section. "How this was verified" never lists test counts, test names or pass results. +- **Title the change by what the code now does**, in Conventional Commits form, e.g. `fix: generate + BindInteraction calls that start at a field`. Never title it by history, e.g. "add missed tests" or "cover + lines #126 left". +- **Merge only when every check is green**, including codecov/patch, codecov/project and the SonarCloud quality + gate. CodeQL does not block. Do not rely on auto-merge: it waits only for required checks. +- **Cancel the running CI of a pull request before pushing to it again.** A run that the next push replaces + wastes shared runners. -## Project Structure +## Repository Overview: Two Generator Families + +This repository holds two families of Roslyn incremental generators that work together. They ship as separate +packages and share the infrastructure in `src/ReactiveUI.SourceGenerators.Shared`. + +| Family | Packages | What it generates | +|--------|----------|-------------------| +| Attribute generators | `ReactiveUI.SourceGenerators` | `[Reactive]`, `[ReactiveCommand]`, `[IReactiveObject]`, `[IViewFor]`, `[BindableDerivedList]`, `[ReactiveCollection]`, `[RoutedControlHost]` and `[ViewModelControlHost]` members | +| Binding generators | `ReactiveUI.Binding`, `ReactiveUI.Binding.Reactive` and the platform packages | Compile-time `WhenChanged`, `Bind`, `ToProperty`, `[ObservableAsProperty]` and view dispatch (the rest of this file) | + +The rest of this file describes the binding family in depth. This section covers what the two share and the attribute +family. + +### Layout ``` src/ -├── ReactiveUI.SourceGenerators.Roslyn/ # Shared source (linked into all versioned projects) -│ ├── AttributeDefinitions.cs # Metadata names of the attributes the generators read -│ ├── Reactive/ # [Reactive] generator + Execute + models -│ ├── ReactiveCommand/ # [ReactiveCommand] generator + Execute + models -│ ├── RoutedControlHost/ # [RoutedControlHost] generator -│ ├── ViewModelControlHost/ # [ViewModelControlHost] generator -│ ├── BindableDerivedList/ # [BindableDerivedList] generator -│ ├── ReactiveCollection/ # [ReactiveCollection] generator -│ ├── ReactiveObject/ # [IReactiveObject] generator -│ ├── Diagnostics/ # DiagnosticDescriptors, SuppressionDescriptors -│ ├── Polyfills/ # netstandard2.0 polyfills, also linked into the code fixes -│ └── Core/ -│ ├── CodeGeneration/ # SourceWriter, PooledBuilder, SourceWriterExtensions -│ ├── Extensions/ # ISymbol*, ITypeSymbol*, INamedTypeSymbol*, AttributeData extensions -│ ├── Helpers/ # ImmutableArrayBuilder, EquatableArray, HashCode, etc. -│ └── Models/ # Result, DiagnosticInfo, TargetInfo, etc. -├── ReactiveUI.SourceGenerators.Roslyn480/ # Roslyn 4.8 build (no define) of ReactiveUI.SourceGenerators.Roslyn.dll -├── ReactiveUI.SourceGenerators.Roslyn4140/ # Roslyn 4.14 build (ROSYLN_412) +├── ReactiveUI.SourceGenerators.Shared/ # Source both families compile +│ ├── CodeGeneration/ # SourceWriter, PooledBuilder, PooledStringBuilder +│ ├── Collections/ # EquatableArray, ArrayBuilder +│ └── Polyfills/ +├── ReactiveUI.SourceGenerators.Roslyn/ # The attribute generators' source, linked into the three builds below +├── ReactiveUI.SourceGenerators.Roslyn480/ # Roslyn 4.8 build (baseline, no define) +├── ReactiveUI.SourceGenerators.Roslyn4140/ # Roslyn 4.14 build (ROSYLN_412): partial-property [Reactive] ├── ReactiveUI.SourceGenerators.Roslyn5000/ # Roslyn 5.0 build (ROSYLN_500) -├── ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ # Analyzers + code fixers +├── ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ # The attribute family's analyzers and code fixes ├── ReactiveUI.SourceGenerators/ # The package: public attributes, with the Roslyn builds bundled -├── ReactiveUI.SourceGenerator.Tests/ # TUnit tests with generator snapshots (GeneratorSnapshot) -├── benchmarks/ # BenchmarkDotNet generation benchmarks with EventPipe tracing -├── ReactiveUI.SourceGenerators.Execute*/ # Compile-time execution verification projects -└── TestApps/ # Manual test applications (WPF, WinForms, MAUI, Avalonia) +├── ReactiveUI.Binding.*/ # The binding family (see below) +├── benchmarks/ # One benchmark project per generator, analyzer and runtime area +├── examples/ # Runnable documentation and verification projects +└── tests/ # Every test project (the SG ones are ReactiveUI.SourceGenerators.*) ``` -## Code Generation Strategy +Each `ReactiveUI.SourceGenerators.Roslyn*` project builds `ReactiveUI.SourceGenerators.Roslyn.dll` from the same source. +`ReactiveUI.SourceGenerators` bundles the three DLLs and the code fixes under `analyzers/dotnet/roslyn4.8/cs`, +`roslyn4.14/cs` and `roslyn5.0/cs`, and NuGet selects the one the host compiler can load. The binding generator ships +the same way, with a Roslyn 4.8 band and a Roslyn 4.13 band. + +### Shared rules for both families + +- **One writer.** Emitters write through `SourceWriter` and never through `SyntaxFactory`, `string.Join`, a raw + `StringBuilder` or interpolation. The writer owns indentation. +- **One structure per generator.** Each generator is one class and one models folder. Do not split a generator into + `Generator.cs` plus `Generator.Execute.cs`. Binding's layout (extractor, model, code generator) is the reference. +- **Arrays, not immutable collections.** Pipeline models hold `EquatableArray` (an array with value equality). + Internal code uses arrays, `List` and `HashSet`. `ImmutableArray` and `ImmutableDictionary` appear only where + Roslyn requires them: `SupportedDiagnostics`, `SupportedSuppressions`, `Diagnostic.Create` properties, and the arrays + Roslyn's symbol APIs hand out (`TypeArguments`, `Parameters`, `AllInterfaces`). Read the result of `Collect()` as a + plain array with `RoslynArray.Unwrap` (no copy) where an emitter takes it, or wrap it with `EquatableArray.FromRoslyn` + where a pipeline stage caches it. Never loop over an `EquatableArray` with `foreach`; use `AsSpan()` or `for`. +- **No `RegisterPostInitializationOutput`, no shared generated type.** See the contribution rules above. +- **Every generator and analyzer has a benchmark.** A new generator gets a mock in + `benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Mocks` and an entry in `Support/GeneratorCatalog.cs`. A new + analyzer or suppressor is added to `AnalyzerBenchmarks.cs` in the matching benchmark project. +- **Snapshot tests everywhere.** Both test families compare every generated file with a `*.verified.cs` snapshot and + accept changes with `ACCEPT_SNAPSHOTS=1`. When the two families differ, follow the binding family's approach. + +### Analyzers and diagnostics + +Every shipped diagnostic stays: RXUIBIND002, RXUIBIND005 and RXUIBIND020 in the binding family, and RXUISG0016 +(`PropertyToReactiveFieldAnalyzer` and its code fix) and RXUISG0022 (`ControlHostAnalyzer`) in the attribute family. +Never remove a rule or its code fix without the maintainer's explicit request. Each rule has tests and a benchmark. +The attribute family records its rules in `AnalyzerReleases.Shipped.md`. The binding family has not shipped its rules +yet, so they sit in its `AnalyzerReleases.Unshipped.md`. + +### The attribute family + +| Generator | Attribute | Input | +|-----------|-----------|-------| +| `ReactiveGenerator` | `[Reactive]` | Field, or partial property (ROSYLN_412 and later) | +| `ReactiveCommandGenerator` | `[ReactiveCommand]` | Method | +| `ReactiveObjectGenerator` | `[IReactiveObject]` | Class | +| `IViewForGenerator` | `[IViewFor]`, `[IViewFor]` | Class | +| `BindableDerivedListGenerator` | `[BindableDerivedList]` | `ReadOnlyObservableCollection` field | +| `ReactiveCollectionGenerator` | `[ReactiveCollection]` | `ObservableCollection` field | +| `RoutedControlHostGenerator`, `ViewModelControlHostGenerator` | `[RoutedControlHost]`, `[ViewModelControlHost]` | Class | + +- `[IViewFor]` adds `IViewFor` to the class and registers the view. The binding family reads the same attributes by + metadata name, so a view found both ways registers once. +- Attributes are public types in `ReactiveUI.SourceGenerators`, marked `[Conditional(KeepAttributes.Symbol)]`. The + generators read them from source. +- A generator reports a diagnostic only when its input cannot be generated from (`RXUISG0009`, `RXUISG0012`, + `RXUISG0013`, `RXUISG0018`, `RXUISG0019`). Other `RXUISG*` rules live in `ReactiveUI.SourceGenerators.Analyzers.CodeFixes`: + `PropertyToReactiveFieldAnalyzer` (RXUISG0016), `ReactiveAttributeMisuseAnalyzer` (RXUISG0020), + `ReactiveCommandAnalyzer` (RXUISG0002, RXUISG0008, RXUISG0021), `ControlHostAnalyzer` (RXUISG0022) and their code fixes. +- Generated code never calls an API the binding generator has to intercept (`WhenAny*`, `Bind`, `OneWayBind`, + `BindCommand`), because one generator cannot see another's output. +- Generated output compiles at C# 12 and uses block-scoped namespaces. +- The attribute generators use these test projects: `tests/ReactiveUI.SourceGenerators.Tests` (snapshots, with a folder + per generator), `tests/ReactiveUI.SourceGenerators.V23.Tests` (the same generators against ReactiveUI 23) and + `tests/ReactiveUI.SourceGenerators.Execute*` (code that compiles and runs against generated output). The SG tests pin + ReactiveUI 24.3.0 where they need `ReactiveUI.IViewFor`. + +## Build & Test Commands + +This project uses **Microsoft Testing Platform (MTP)** with the **TUnit** testing framework. Test commands differ significantly from traditional VSTest. + +See: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test?tabs=dotnet-test-with-mtp + +### Prerequisites + +```powershell +# Check .NET installation (.NET 10.0 and 11.0 for tests and benchmarks) +dotnet --info + +# Restore NuGet packages +cd src +dotnet restore ReactiveUI.SourceGenerators.slnf +``` -Generated source is written through `SourceWriter` (`Core/CodeGeneration`), an indentation-aware writer adopted from -the ReactiveUI.Binding generators. The writer indents each line from its level when the line's first character is -written, so an emitter says what it builds - a namespace, a containing type, a block - and the layout follows. It -rents its `StringBuilder` from a per-thread free list (`PooledBuilder`), so a generation pass reuses buffers. +**Note:** This project uses the modern `.slnx` (XML-based solution file) format instead of the legacy `.sln` format. -```csharp -// CORRECT - append pieces straight into the writer; braces move the level -var writer = SourceWriter.Rent().AutoGenerated().DisableWarningsEnableNullable().BlankLine(); -var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); -_ = writer.OpenPartialType(target) - .Append("public ").Append(property.Type).Append(' ').Line(property.Name) - .OpenBlock() - .Append("get => ").Append(property.FieldName).EndStatement() - .CloseBlock(); -return writer.CloseBlock().CloseBlocks(depth).RestoreNullableAndWarnings().ToStringAndReturn(); - -// Fixed multi-line text: Lines() with a raw literal, no interpolation, indented relative to the current level -_ = writer.Lines(""" - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - } - """); +**Build through the solution filters.** The `.slnx` holds every project, for the IDE. Two filters split it: + +- `ReactiveUI.SourceGenerators.slnf` holds every project except the Uno ones. `dotnet` builds it on any OS. +- `ReactiveUI.SourceGenerators.Uno.slnf` holds the Uno.Sdk projects and their tests. Their Windows head needs + MSBuild, so CI builds this filter in its own Windows job (`msbuildSolutionFile` in reactiveui/actions-common). On + Linux and macOS, `dotnet build` builds the other Uno heads. + +A new project goes in the `.slnx` and in one of the two filters. + +### Build Commands -// WRONG - $"" / $$"""...""" interpolation, string.Join, StringBuilder or SyntaxFactory in an emitter: -// each builds intermediate strings per member, and spelled-out indentation breaks in nested types. +**CRITICAL:** The working folder must be `./src` folder. These commands won't function properly without the correct working folder. + +```powershell +# Build the solution +dotnet build ReactiveUI.SourceGenerators.slnf -c Release + +# Build with warnings as errors (includes StyleSharp violations) +dotnet build ReactiveUI.SourceGenerators.slnf -c Release -warnaserror + +# Clean the solution +dotnet clean ReactiveUI.SourceGenerators.slnf ``` -`SourceWriterExtensions` names the constructs the generators share: `AutoGenerated`, `Using`, -`DisableWarningsEnableNullable`/`RestoreNullableAndWarnings`, `OpenNamespace` (block-scoped; the global namespace opens -nothing), `OpenContainingTypes`, `OpenPartialType`, `CloseBlocks`, `InheritDoc`, `ExcludeFromCodeCoverage`. Build a -generator's `GeneratedCode` attribute once, in a static field, with `SourceWriterExtensions.GeneratedCodeAttribute`. +### Test Commands (Microsoft Testing Platform) + +**CRITICAL:** This repository uses MTP configured in `testconfig.json`. All TUnit-specific arguments must be passed after `--`: + +The working folder must be `./src` folder. -A change to an emitter must keep the output token-for-token the same unless it deliberately changes generated code; -compare changed snapshots with whitespace removed to prove it. +**IMPORTANT:** +- All TUnit test projects use `en-US` for the current culture and UI culture, configured by an assembly attribute in `Directory.Build.props`. Culture-specific regression tests use TUnit's `Culture` attribute to override it for that test. +- Do NOT use `--no-build` flag when running tests. Always build before testing to ensure all code changes are compiled. +- Use `--output Detailed` to see Console.WriteLine output from tests (place BEFORE any `--` separator). -## Roslyn Incremental Pipeline Pattern +```powershell +# Run all tests in the solution +dotnet test --solution ReactiveUI.SourceGenerators.slnf -c Release -Each generator follows this structure: +# Run all tests in a specific project +dotnet test --project tests/ReactiveUI.Binding.Analyzer.Tests/ReactiveUI.Binding.Analyzer.Tests.csproj -c Release +dotnet test --project tests/ReactiveUI.Binding.SourceGenerators.Tests/ReactiveUI.Binding.SourceGenerators.Tests.csproj -c Release +dotnet test --project tests/ReactiveUI.Binding.Tests/ReactiveUI.Binding.Tests.csproj -c Release -1. **`Initialize`** — calls one or more `Run*` methods. It registers no post-initialization output. -2. **`Run*`** — builds the `IncrementalValuesProvider` using `ForAttributeWithMetadataName` + a syntax predicate + a semantic extraction function. -3. **`Get*Info` (Execute file)** — stateless extraction function. Returns `Result` with embedded diagnostics. Must be pure; must not capture any `ISymbol` or `SyntaxNode` beyond this call. -4. **`GenerateSource` (Execute file)** — pure function that writes a model through `SourceWriter`. No Roslyn symbols allowed here. +# Run a single test method using treenode-filter +dotnet test --project tests/ReactiveUI.Binding.SourceGenerators.Tests/ReactiveUI.Binding.SourceGenerators.Tests.csproj -- --treenode-filter "/*/*/*/MyTestMethod" +# Run all tests in a specific class +dotnet test --project tests/ReactiveUI.Binding.SourceGenerators.Tests/ReactiveUI.Binding.SourceGenerators.Tests.csproj -- --treenode-filter "/*/*/WhenChangedGeneratorTests/*" + +# Run tests with code coverage +dotnet test --solution ReactiveUI.SourceGenerators.slnf -- --coverage --coverage-output-format cobertura ``` -Initialize() - └─ SyntaxProvider.ForAttributeWithMetadataName - ├─ syntax predicate (fast, node-type check only) - ├─ semantic extraction → Get*Info() → Result - └─ RegisterSourceOutput → GenerateSource() → AddSource() + +### TUnit Treenode-Filter Syntax + +The `--treenode-filter` follows the pattern: `/{AssemblyName}/{Namespace}/{ClassName}/{TestMethodName}` + +- Single test: `--treenode-filter "/*/*/*/MyTestMethod"` +- All tests in class: `--treenode-filter "/*/*/MyClassName/*"` +- Use single asterisks (`*`) to match segments. + +### Key Configuration Files + +- `src/ReactiveUI.SourceGenerators.slnx` - Modern XML-based solution file +- `src/testconfig.json` - Configures test execution and code coverage +- `src/Directory.Build.props` - Common build properties, package metadata +- `src/Directory.Packages.props` - Central package management +- `src/Directory.Build.targets` - Build targets + +### Snapshot Testing + +- Generator tests compare every generated file with a `*.verified.cs` snapshot beside the test class, through `Helpers/GeneratorSnapshot.cs` +- A snapshot is named `{type}.{method}#{hint name}.verified.cs`; an output that differs or has no snapshot is written beside it as `*.received.cs` and fails the test, as does a snapshot the run no longer produces +- To accept new or changed snapshots, run the tests with the `ACCEPT_SNAPSHOTS=1` environment variable, then run them again without it + +### Generator Test Language Versions (Critical) + +Generator tests use a **two-tier language version** strategy to verify generated output compiles under C# 7.3 (the minimum supported version for consumer projects): + +- **Default: C# 7.3** — `TestHelper.CreateCompilation()` and `RunGenerator()` default to `LanguageVersion.CSharp7_3`. This ensures generated output contains no C# 8+ syntax (no nullable reference type annotations, no `static` lambdas, no `#nullable enable`). +- **CallerArgumentExpression tests: explicit C# 10** — Tests that verify `CallerArgumentExpression`-based dispatch (the primary dispatch mechanism for C# 10+ projects) must pass `LanguageVersion.CSharp10` explicitly. These are the majority of snapshot tests. +- **CallerFilePath fallback tests: explicit C# 7.3** — Tests that verify `CallerFilePath + CallerLineNumber` dispatch (the fallback for pre-C# 10 projects) pass `LanguageVersion.CSharp7_3` explicitly to document intent, even though it matches the default. +- **Edge case tests** (`RunGenerator` without snapshot verification) — These use the C# 7.3 default. They verify the generator doesn't crash on invalid lambdas and produces no dispatch code. They don't call `CompilationSucceeds()` since their test source may contain C# 8+ features that are only diagnostically invalid under C# 7.3. +- **Runtime execution tests** — These use `LanguageVersion.CSharp10` because their inline source uses C# 8+ features and they call `CompilationSucceeds()`. + +**When adding new generator tests:** +1. If the test verifies CallerArgumentExpression dispatch → pass `LanguageVersion.CSharp10` +2. If the test verifies CallerFilePath fallback dispatch → pass `LanguageVersion.CSharp7_3` +3. If the test verifies the generator skips invalid input → use the default (no parameter) +4. If the test compiles and loads the generated assembly → pass `LanguageVersion.CSharp10` + +### Code Coverage + +Code coverage uses **Microsoft.Testing.Extensions.CodeCoverage** configured in `src/testconfig.json`. Coverage is collected for production assemblies only (test projects and TestModels are excluded). + +```powershell +# Run tests with code coverage (from src/ folder) +dotnet test --solution ReactiveUI.SourceGenerators.slnf -c Release -- --coverage --coverage-output-format cobertura + +# Generate HTML report using ReportGenerator (install if needed: dotnet tool install -g dotnet-reportgenerator-globaltool) +# Find all cobertura files and generate report to /tmp/ +reportgenerator \ + -reports:"tests/**/TestResults/**/*.cobertura.xml" \ + -targetdir:/tmp/code_coverage \ + -reporttypes:"Html;TextSummary" + +# View the text summary +cat /tmp/code_coverage/Summary.txt + +# Open HTML report in browser +xdg-open /tmp/code_coverage/index.html # Linux +open /tmp/code_coverage/index.html # macOS ``` -**Fast paths:** -- Find attributed targets with `ForAttributeWithMetadataName`; benchmarks show it allocates less than a syntax - provider, cold and incrementally. A generic attribute is registered by its arity name (``NameAttribute`1``). -- Reject nodes in the syntax predicate before any binding: node kind, parent shape, `partial` modifier. -- In the transform, read `context.Attributes[0]` rather than searching the symbol's attributes again, and ask for - semantic information only when syntax says it can exist (documentation only when the node has a doc comment). -- Group models per type with `GroupByTarget` and register one source output per type, so an edit rewrites only the - types whose models changed. Tag steps with `TrackingNames`; `IncrementalCachingTests` asserts what is reused. - -**Incremental caching rules:** -- All pipeline output models must implement value equality (`record`, `IEquatable`, or `EquatableArray`). -- Never store `ISymbol`, `SyntaxNode`, `SemanticModel`, or `CancellationToken` in a model. -- Use `EquatableArray` (from `Core/Helpers`) instead of `ImmutableArray` in models. - -## Generators - -| Generator class | Attribute | Input target | -|-----------------|-----------|--------------| -| `ReactiveGenerator` | `[Reactive]` | Field (all Roslyn) or partial property (ROSYLN_412+) | -| `ReactiveCommandGenerator` | `[ReactiveCommand]` | Method | -| `RoutedControlHostGenerator` | `[RoutedControlHost]` | Class | -| `ViewModelControlHostGenerator` | `[ViewModelControlHost]` | Class | -| `BindableDerivedListGenerator` | `[BindableDerivedList]` | Field (`ReadOnlyObservableCollection`) | -| `ReactiveCollectionGenerator` | `[ReactiveCollection]` | Field (`ObservableCollection`) | -| `ReactiveObjectGenerator` | `[IReactiveObject]` | Class | +**Key configuration** (`src/testconfig.json`): +- `modulePaths.include`: `ReactiveUI\\.Binding\\..*` — covers all production assemblies +- `modulePaths.exclude`: `.*Tests.*`, `.*TestRunner.*`, `.*TestModels.*` — excludes test/runner/model assemblies +- `skipAutoProperties: true` — auto-properties excluded from coverage metrics -`[ObservableAsProperty]`, IViewFor view registration and `[IViewFor]` were removed here in favour of ReactiveUI.Binding -(ReactiveUI's binding engine). Do not reintroduce features ReactiveUI.Binding provides. +**Tips:** +- Always clean `bin/` and `obj/` folders before coverage runs to avoid stale results +- The `ReactiveUI.Binding.GeneratedCode.TestModels` assembly has `[assembly: ExcludeFromCodeCoverage]` so it won't appear in reports even though its module path matches the include pattern +- `ReactiveUI.Binding.Reactive` carries the same attribute (applied via `` in its .csproj). It is a recompilation of `ReactiveUI.Binding.Shared`, so every line in it is a line `ReactiveUI.Binding` already covers — only the scheduler binding and the namespace differ. Cover shared code through the lean leaf; the `modulePaths` exclusions do not reach an assembly that is only present as a copied reference +- `DiagnosticWarnings.cs` coverage appears as 0% in `ReactiveUI.Binding.SourceGenerators` — this is a linked-file artifact; the code is actually tested via the `ReactiveUI.Binding.Analyzer` assembly +- Put coverage reports in `/tmp/` to avoid accidentally committing them -## Analyzers & Suppressors +## Architecture Overview -All diagnostics use the `RXUISG` prefix. All suppressions use the `RXUISPR` prefix. +### What This Project Does -| Class | ID range | Purpose | -|-------|----------|---------| -| `PropertyToReactiveFieldAnalyzer` | RXUISG0016 | Suggests converting auto-properties to `[Reactive]` properties | -| `ReactiveAttributeMisuseAnalyzer` | RXUISG0020 | Detects `[Reactive]` on non-partial or non-partial-type members | -| `ReactiveCommandAnalyzer` | RXUISG0002, RXUISG0008, RXUISG0021 | Reports `[ReactiveCommand]` methods and schedulers the generator skips | -| `ControlHostAnalyzer` | RXUISG0022 | Reports WinForms hosts generated without ReactiveUI.Binding 8.4.0's `ObservedProperty` (Info) | -| `PropertyToReactiveFieldCodeFixProvider` | — | Converts auto-property → `[Reactive]` partial property (C# 13+; C# 14+ with an initializer), else a `[Reactive]` field | -| `ReactiveAttributeMisuseCodeFixProvider` | — | Fixes misuse of `[Reactive]` attribute | +ReactiveUI.Binding.SourceGenerators is an **incremental source generator** that replaces ReactiveUI's runtime expression tree analysis with compile-time code generation for property observation and binding. It eliminates runtime reflection, is fully AOT/trimming safe, and supports all ReactiveUI platform notification mechanisms. -Suppressors silence noisy Roslyn/Roslynator diagnostics that are expected for generator-backed patterns (e.g. fields never read, methods that don't need to be static). +### Project Structure -### Analyzer Separation (Roslyn Best Practice) +``` +src/ +├── ReactiveShim.props # The lean/.Reactive seam (REACTIVE_SHIM + ISequencer alias) +│ +├── ReactiveUI.Binding.Shared/ # The runtime library source; compiled by BOTH leaves below +│ ├── Interfaces/ # ICreatesObservableForProperty, IObservedChange, etc. +│ ├── Mixins/ # ReactiveUIBindingExtensions, ReactiveSchedulerExtensions +│ ├── Observables/ # Hand-rolled observables and disposables +│ └── View/ # ViewLocator, DefaultViewLocator, IViewFor, attributes +│ +├── ReactiveUI.Binding/ # Lean leaf (net8.0-net11.0;net462-net481) +├── ReactiveUI.Binding.Reactive/ # System.Reactive leaf: same source, REACTIVE_SHIM +│ +├── build/ # SkipMakePriOnNonWindows.targets (see below) +├── ReactiveUI.Binding.Platform.Shared/ # Private primitives for the platform observers +├── ReactiveUI.Binding.Wpf.Shared/ # Each platform's source, compiled by both its leaves +├── ReactiveUI.Binding.Wpf/ # Lean platform leaf +├── ReactiveUI.Binding.Wpf.Reactive/ # System.Reactive platform leaf +│ # ...and the same triple for WinForms, Maui, Avalonia and Uno +│ # (Uno's leaves use Uno.Sdk and build from the Uno filter) +│ +├── ReactiveUI.Binding.SourceGenerators/ # Source generator (netstandard2.0) +│ ├── BindingGenerator.cs # [Generator] IIncrementalGenerator entry point +│ ├── Constants.cs # API stub text, metadata names (linked to Analyzer) +│ ├── DiagnosticWarnings.cs # Diagnostic descriptors (linked to Analyzer) +│ ├── RoslynHelpers.cs # Syntax predicates for CreateSyntaxProvider +│ ├── MetadataExtractor.cs # Semantic model → POCO extraction +│ ├── Models/ # Value-equatable pipeline POCOs +│ │ ├── EquatableArray.cs +│ │ ├── ClassBindingInfo.cs # Type-level: notification mechanism flags +│ │ ├── InvocationInfo.cs # Per-call-site: WhenChanged/WhenChanging +│ │ ├── BindingInvocationInfo.cs # Per-call-site: BindOneWay/BindTwoWay +│ │ ├── PropertyPathSegment.cs # Per-segment: name, types, and how its declaring type notifies +│ │ ├── ObservablePropertyInfo.cs # Per-property: DP field and change-event participation +│ │ └── ViewRegistrationInfo.cs # Per-IViewFor: view dispatch mapping +│ ├── Plugins/ # Per-property mechanism selection +│ │ ├── ObservationPluginRegistry.cs # Highest-affinity plugin that reaches a given property +│ │ ├── ObservedProperties.cs # Whether one property participates in a type's mechanism +│ │ └── Observation/ # One plugin per mechanism, scored from BindingAffinity +│ │ ├── KVOObservationPlugin.cs # Apple KVO/NSObject (Kvo, 15) +│ │ ├── ReactiveObjectObservationPlugin.cs # IReactiveObject (ExactType, 10) +│ │ ├── INPCObservationPlugin.cs # INotifyPropertyChanged (Explicit, 5) +│ │ ├── WpfObservationPlugin.cs # WPF DependencyObject (WpfDependencyObject, 4) +│ │ ├── NativeObservationPlugin.cs # The one plugin every native after-change mechanism registers +│ │ ├── WinFormsObservation.cs # WinForms Component (WinFormsEvent, 8) +│ │ ├── WinUIObservation.cs, UnoObservation.cs # Dependency objects (WinUiDependencyObject, 6) +│ │ ├── AndroidObservation.cs # Android View (Explicit, 5) +│ │ ├── UIKit*/AppKitObservation.cs # Apple controls (30 and 20) +│ │ ├── ObservationEmissionExtensions.cs # Shared expression and chain composition +│ │ └── NotifyPropertyEmitter.cs # The observation those plugins all emit +│ │ └── ViewThread/ # The invoker a generated binding carries for its target +│ │ ├── ViewThreadPluginRegistry.cs # Matches a target's type to its platform's invoker +│ │ └── Wpf/WinForms/Maui/Avalonia/UnoViewThreadPlugin.cs # One plugin per platform +│ │ └── PropertyRaise/ # How ToProperty raises the source type's notifications +│ │ ├── PropertyRaisePluginRegistry.cs # First plugin that can raise, strongest first +│ │ ├── ReactiveObjectRaisePlugin.cs # ReactiveUI's public RaisePropertyChanged extension (ExactType, 10) +│ │ ├── RaiseMethodRaisePlugin.cs # A raise method callable from the consumer assembly (Explicit, 5) +│ │ ├── PartialTypeRaisePlugin.cs # An accessor added to a partial type (Fallback, 1) +│ │ └── RaiseMembers.cs # Finds raise methods and field-like events +│ ├── Generators/ # Whole-compilation outputs +│ │ ├── ObservationHelperGenerator.cs # Declares the KVO/WinUI helper classes, once per compilation +│ │ ├── ViewThreadInvokerGenerator.cs # Declares the WPF/WinForms/MAUI invoker classes, once per compilation +│ │ ├── SourceGeneratorsCompilation.cs # The compilation call sites are read from, with ReactiveUI.SourceGenerators' members declared +│ │ └── ViewLocatorDispatchGenerator.cs # IViewFor → AOT view dispatch (Pipeline C) +│ ├── Invocations/ # Per-invocation generators (Pipeline B) +│ │ ├── WhenChangedInvocationGenerator.cs # After-change observation +│ │ ├── WhenChangingInvocationGenerator.cs # Before-change observation +│ │ ├── BindOneWayInvocationGenerator.cs # One-way binding +│ │ ├── BindTwoWayInvocationGenerator.cs # Two-way binding +│ │ ├── WhenAnyValueInvocationGenerator.cs # WhenAnyValue compat shim +│ │ ├── InvokeCommandInvocationGenerator.cs # Stream-driven command execution +│ │ └── ToPropertyInvocationGenerator.cs # Observable-backed read-only property +│ ├── Helpers/ # Extraction and validation helpers +│ │ ├── ViewRegistrationExtractor.cs # IViewFor → ViewRegistrationInfo extraction +│ │ ├── SourceGeneratorsMemberExtractor.cs # ReactiveUI.SourceGenerators' naming and typing rules +│ │ ├── XamlPageReader.cs # Named elements of MAUI and Avalonia XAML pages +│ │ ├── XamlMemberResolver.cs # Those elements' types, as fields of the code-behind class +│ │ ├── CallSiteContext.cs # A call site and the semantic model it is read with +│ │ └── ... # ExtractorValidation, SymbolHelpers, etc. +│ └── CodeGeneration/ +│ ├── SourceWriter.cs # Indentation-aware writer every generated file goes through +│ ├── SourceWriterExtensions.cs # Named C# constructs: namespaces, types, blocks, statements +│ ├── GeneratedTypeNames.cs # Fully qualified type names the emitters write +│ ├── PooledBuilder.cs # Per-thread StringBuilder pool behind SourceWriter +│ ├── PooledStringBuilder.cs # char[]-backed builder for generated fragments +│ └── RuntimeFlavourRewriter.cs # Retargets output onto the .Reactive package +│ +├── ReactiveUI.Binding.SourceGenerators.Roslyn413/ # The same generator source against Roslyn 4.13 +├── ReactiveUI.Binding.Analyzer.Roslyn413/ # The same analyzer source against Roslyn 4.13 +│ +├── ReactiveUI.Binding.Analyzer/ # Roslyn analyzer (netstandard2.0) +│ ├── Analyzers/ +│ │ ├── BindingInvocationAnalyzer.cs # RXUIBIND001, 003, 004, 005, 006, 007, 008 +│ │ ├── DispatchReachAnalyzer.cs # RXUIBIND009 +│ │ ├── ServiceLocatorViewAnalyzer.cs # RXUIBIND020 +│ │ ├── TypeAnalyzer.cs # RXUIBIND002 +│ │ ├── MixinShadowAnalyzer.cs # RXUIBIND011 +│ │ ├── NoGeneratedBindingAnalyzer.cs # RXUIBIND021 +│ │ ├── ObservableAsPropertyAnalyzer.cs # RXUIBIND018, 019 +│ │ ├── ToPropertyAnalyzer.cs # RXUIBIND012, 013 +│ │ ├── ToPropertyInitialValueAnalyzer.cs # RXUIBIND014 +│ │ ├── UnreachableTypeAnalyzer.cs # RXUIBIND015, 016 +│ │ └── ViewThreadInvokerAnalyzer.cs # RXUIBIND017 +│ └── CodeFixes/ +│ └── ObservableAsPropertyCodeFixProvider.cs # RXUIBIND018: older [ObservableAsProperty] forms to partial properties +│ +├── benchmarks/ +│ ├── ReactiveUI.Binding.Benchmarks/ # Runtime binding benchmarks +│ └── ReactiveUI.Binding.Generator.Benchmarks/ # Generation-pass benchmarks over a corpus +│ +└── tests/ + ├── ReactiveUI.Binding.SourceGenerators.Tests/ # Generator snapshot tests + ├── ReactiveUI.Binding.Analyzer.Tests/ # Analyzer diagnostic tests + └── ReactiveUI.Binding.Tests/ # Runtime library tests +``` -- Generators report a diagnostic only when their input cannot be generated from: a name collision (RXUISG0009), an - invalid forwarded attribute (RXUISG0012, RXUISG0013), a containing type that is not a `ReactiveObject` - (RXUISG0018), or a `[BindableDerivedList]` field of the wrong type (RXUISG0019). The extraction step returns them as - `DiagnosticInfo` values inside `Result`, and `RegisterDiagnostics` (`Core/Extensions/IncrementalPipelineExtensions.cs`) - reports them from a source output, so they never break caching. Do not add new diagnostics to generators. -- The `ReactiveUI.SourceGenerators.Analyzers.CodeFixes` project owns every other `RXUISG*` diagnostic (such as - RXUISG0016 and RXUISG0020) and all code fixers. -- `DiagnosticDescriptors.cs` and related files are compiled from the shared Roslyn source via the linked `` items. -- When an analyzer reports what a generator skips, both compile the same rules file (for commands, - `ReactiveCommand/ReactiveCommandRules.cs`, linked into the code-fix project), so the two cannot disagree. +### Generation Pipelines -## Testing +**Property metadata** is captured while each invocation's property path is extracted. Each link records its +concrete owner, eligible native mechanisms, their scores, and members verified from Roslyn symbols. The same +extraction handles source and referenced types. Selection emits the binding directly. -### Framework +Observation, command and conversion mechanisms implement their interfaces directly. They use no plugin base +classes. Shared logic lives in static helpers with internal methods. Each mechanism owns its eligibility and +emission; registries compare affinity and retain declaration order on ties. -- **TUnit** — test runner and assertion library (replaces xUnit/NUnit). -- **`GeneratorSnapshot`** (in the test project) — compares each generated file with a stored snapshot. No Verify packages. -- **Microsoft.Testing.Platform** — native test execution (configured via `testconfig.json`). +The native after-change mechanisms (WinForms, WinUI, Uno, Android, UIKit and AppKit) answer the registry the +same way, so one sealed `NativeObservationPlugin` implements the interface for all of them. Each platform is a +static class, such as `WinFormsObservation`. It supplies its kind and affinity, its `Inspect` method, which +decides eligibility, and the statements that attach to its notification. It exposes the result as `Plugin`. -### Test project targets +Affinity values match the corresponding ReactiveUI mechanisms, including property-specific UIKit scores of 30, +Apple value notifications at 20, KVO at 15, and ordinary CLR fallback at 1. Registered providers and generated +mechanisms rank on the same scale. -The test project multi-targets `net8.0;net9.0;net10.0` (controlled by `$(TestTfms)` in `Directory.Build.props`). Tests run against all three frameworks in CI. +### Mechanisms Travel With the Property Path -### Snapshot tests +A type advertises a mechanism; a *property* participates in it or does not, and each link of a chain is declared +by its own type. So `PropertyPathSegment` carries its declaring type's `ClassBindingInfo`, and plugin selection +takes the property name: a dependency object's plain CLR property and a component's property with no +`{Name}Changed` event fall through to the next mechanism, exactly as a zero affinity does at runtime. A property +the type does not declare - an inherited one - is unknown rather than absent and stays observable. -Generator tests extend `TestBase` and call `TestHelper.TestPass(sourceCode)`. Each generated file is stored -as `{FOLDER}/{class}.{method}#{hint}.verified.cs` in the generator's folder (`REACTIVE/`, `REACTIVECMD/`, -`DERIVEDLIST/`, `REACTIVECOLL/`, `REACTIVEOBJ/`). The class segment is the test class's capitals, and common words in the -method and hint segments are abbreviated, so every path stays well inside the Windows path limit. A mismatch writes -`*.received.cs` beside the snapshot and fails; a snapshot the run no longer produces also fails. Generated-code -attribute lines, which carry the assembly version, are left out of the snapshots. +The mechanism is captured during extraction, which already holds the property symbol, rather than looked up from +the detected-type set afterwards. That is a performance constraint, not a preference: binding one of these +invocations is the single largest allocation in a generation pass (extension-method overload resolution and +generic type inference dominate the `GcVerbose` trace), so a second semantic pass over the same call sites is +not affordable. A type from a *referenced* assembly follows the same extraction path as a source type. -#### Accepting snapshot changes +**Pipeline B (Invocation Detection)** scans calls to 14 APIs: `WhenChanged`, `WhenChanging`, `WhenAnyValue`, +`WhenAny`, `WhenAnyObservable`, `BindOneWay`, `BindTwoWay`, `OneWayBind`, `Bind`, `BindTo`, `BindCommand`, +`BindInteraction`, `InvokeCommand` and `ToProperty`. It reads the property paths from each call's lambdas. It writes one method +per call site. [API Pattern](#api-pattern) shows how a call site reaches that method. -1. From `src`, set `ACCEPT_SNAPSHOTS` to `1` (or `true`) and run the tests: - ```pwsh - $env:ACCEPT_SNAPSHOTS = '1' - dotnet test --project ReactiveUI.SourceGenerator.Tests/ReactiveUI.SourceGenerators.Tests.csproj -c Release -f net10.0 - Remove-Item Env:ACCEPT_SNAPSHOTS - ``` -2. Review the snapshot diff; for a refactor, confirm the changes are whitespace only. -3. Re-run the tests without `ACCEPT_SNAPSHOTS` to confirm all pass. +**Pipeline C (View Dispatch)** scans classes that implement `IViewFor`. For each view it records: -### Test source language version +- the view model type and the view type +- whether the view has a parameterless constructor +- its `[ViewContract]` contract and its `[SingleInstanceView]` flag -Test source strings are parsed with **CSharp13** (`LanguageVersion.CSharp13`). This is the version used by `TestHelper.RunGeneratorAndCheck`. +It writes `ViewDispatch.g.cs`, a type switch from view model to view. A view with the requested contract comes +before the default view. The default view answers only an empty contract, so a contract no view claims returns +null from the lookup. Each view's resolver tries the service locator first. It then uses the cached instance +for a `[SingleInstanceView]` view, or calls the parameterless constructor. A view with no parameterless +constructor resolves to null. `[ExcludeFromViewRegistration]` leaves a view out. -### Non-snapshot (unit) tests +A view is skipped when it, or a type it is nested in, is an open generic. A closed subclass of a generic view +base registers through its own `IViewFor` interface. -Analyzer and helper tests use direct `CSharpCompilation` / `CompilationWithAnalyzers` to verify diagnostics without snapshots. See `PropertyToReactiveFieldAnalyzerTests.cs` for the pattern. +Both runtime flavours are matched: `ReactiveUI.Binding.IViewFor` and `ReactiveUI.Binding.Reactive.IViewFor`. +The view attributes are read from the flavour of the interface the view implements. -## Common Tasks +ReactiveUI.SourceGenerators' `[IViewFor]` and `[IViewFor("TypeName")]` also register a view. That generator adds +`IViewFor` to the class in output no other generator can see, so the attributes are matched by metadata name through +`ForAttributeWithMetadataName`. The type name is bound at the class's position, so usings, `nameof` and generic names +resolve. The resolver casts the view through `object` with `as`, because the class may not implement the interface. A +view found both ways registers once. A `RegistrationType` of `LazySingleton` or `Constant` is a `[SingleInstanceView]`. -### Adding a New Generator +The generated class registers the lookup with `DefaultViewLocator.SetGeneratedViewDispatch`. From C# 9 it does +so in a module initializer, which runs before any code in the assembly. The generator declares +`ModuleInitializerAttribute` when the framework has none. Older projects register in a static constructor, which +runs when a binding first uses the generated class. -1. Create a value-equatable model record in `Core/Models/` or the generator's own `Models/` folder. -2. Add the attribute as a public `[Conditional(KeepAttributes.Symbol)]` type in `ReactiveUI.SourceGenerators`, and its - metadata name to `AttributeDefinitions.cs`. -3. Create `Generator.cs` with `Initialize` wiring up `ForAttributeWithMetadataName`. -4. Create `Generator.Execute.cs` with `Get*Info` (extraction) and `GenerateSource` (writes through `SourceWriter`). -5. Add snapshot tests in `ReactiveUI.SourceGenerator.Tests/UnitTests/`. -6. Accept snapshots with `ACCEPT_SNAPSHOTS=1` as above. -7. Add a mock to `src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Mocks` and the generator to `GeneratorCatalog`. +Each assembly that contains views registers its own lookup, and `DefaultViewLocator` keeps all of them in +registration order. `ResolveView` asks them from the most recently registered to the first and takes the first +view returned. A view model that two assemblies both have a view for resolves to the assembly that registered +last. Registering the same lookup twice has no effect. -### Adding a New Analyzer Diagnostic +`DefaultViewLocator.ResolveView` tries the generated lookups first. It then tries mappings added with `Map`. The +generic `ResolveView` and `ResolveViewUnsafe` then ask the service locator; `ResolveView(object)` does not, because +that needs `MakeGenericType`, and it logs a warning when it finds nothing. -1. Add a `DiagnosticDescriptor` to `DiagnosticDescriptors.cs`. -2. Record the rule in `AnalyzerReleases.Shipped.md`, under the release section for the current major version. Never use - `AnalyzerReleases.Unshipped.md`: it stays empty apart from its header, and every new, changed or removed rule is - recorded as released. -3. Implement the analyzer in `ReactiveUI.SourceGenerators.Analyzers.CodeFixes/`. -4. Add unit tests in `ReactiveUI.SourceGenerator.Tests/UnitTests/`. +### API Pattern -### Running Tests +The runtime library declares every API as a stub. The stubs live in `ReactiveUIBindingExtensions` and +`ReactiveSchedulerExtensions`. A stub throws `InvalidOperationException` when it runs. Its message names the +`Unsafe` overload. -Run from `src`, where `global.json` selects the SDK and Microsoft.Testing.Platform: +For each call site, the generator writes a method that does the work. The call site reaches that method in one of +two ways. -```pwsh -cd src -dotnet test --project ReactiveUI.SourceGenerator.Tests/ReactiveUI.SourceGenerators.Tests.csproj -c Release -``` +- **An interceptor.** On Roslyn 4.13 and newer, the generator emits an `[InterceptsLocation]` method. The compiler + replaces the call with it. Setting `ReactiveUIBindingUseInterceptors` to `false` turns this off. +- **A concrete overload.** Otherwise the generator emits an overload that beats the generic stub in method lookup. + From C# 10 it matches the call site by the lambda's text, captured with `[CallerArgumentExpression]`. Below + C# 10 it matches by `[CallerFilePath]` and `[CallerLineNumber]`. -### Measuring allocations +A call site the generator cannot read has to use the `Unsafe` overload. That overload finds properties by +reflection. -```pwsh -cd src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks -dotnet run -c Release -- --smoke # every corpus generates and compiles -dotnet run -c Release -- --eventpipe # bytes per run from GCAllocationTick, one trace per scenario -dotnet run -c Release -- --eventpipe-discovery # attribute discovery strategies against each other -cd ../ReactiveUI.SourceGenerators.Runtime.Benchmarks -dotnet run -c Release -- --eventpipe # the generated code, as an app runs it +```csharp +// User writes: +var obs = vm.WhenChanged(x => x.Name); + +// The runtime stub, which throws when nothing replaces the call: +public static IObservable WhenChanged(this TObj obj, Expression> property, ...) + +// The generator writes one method per call site: +private static IObservable __WhenChanged_7FFFD2E8D6FC818E(MyViewModel obj) +{ + // Attaches to PropertyChanged and emits the current value first. +} + +// Roslyn 4.13 and newer: an interceptor claims the call site. +[InterceptsLocation(1, "...")] +internal static IObservable __Intercept_WhenChanged_7FFFD2E8D6FC818E(this MyViewModel obj, Expression> property, ...) + => __WhenChanged_7FFFD2E8D6FC818E(obj); + +// Roslyn 4.8 to 4.12: a concrete overload wins lookup and matches the call site. +public static IObservable WhenChanged(this MyViewModel obj, Expression> property, [CallerArgumentExpression("property")] string propertyExpression = "", ...) +{ + if (propertyExpression == "x => x.Name") + { + return __WhenChanged_7FFFD2E8D6FC818E(obj); + } + + throw new InvalidOperationException("No generated binding found. ..."); +} ``` -Each scenario writes `/.nettrace`; open it in PerfView's "GC Heap Alloc Ignore Free (Coarse Sampling) -Stacks" view to see which frames allocate. +**File-and-line dispatch matches what the compiler passes.** Two rules keep the condition in step with the +compiler: + +- `CallerFilePath` holds the path as the compiler saw it: backslashes on Windows, and possibly mixed separators + after a path map. The generator keys on the file's last two segments, and + `CodeGeneratorHelpers.AppendCallerFilePathTest` tests them with a forward slash and with a backslash. Every + file-and-line condition goes through that helper. +- `CallerLineNumber` holds the line of the invoked member's name, not the line the invocation starts on. A chained + call written across lines starts at its receiver, several lines up. Every extractor reads the line through + `SyntaxHelpers.CallerLineNumber`, which follows the compiler's rule. + +The generator tests use an empty file path, so snapshots never show the separator test. +`CallerFilePathSeparatorTests` gives the file a Windows path and runs a chained call below C# 10. + +### Members ReactiveUI.SourceGenerators Writes + +No generator sees another generator's output. A call site that binds a property ReactiveUI.SourceGenerators writes +from a field names a member that does not exist in the compilation this generator reads, so the call has no symbol +and nothing is generated. A class marked `[IReactiveObject]` looks as if it raised no notification. + +`SourceGeneratorsCompilation` closes that gap: + +- It reads `[Reactive]`, `[ReactiveCollection]`, `[BindableDerivedList]`, `[ReactiveCommand]` and `[IReactiveObject]` + by metadata name. `SourceGeneratorsMemberExtractor` turns each into a declaration with the name, type and + accessibility ReactiveUI.SourceGenerators gives the member. Accessor bodies are `throw null;`; they never run. +- The declarations go into one file, parsed once per change to them, and added to a private copy of the compilation. + The file is never emitted. +- `BindingGenerator.Detect` reads every call site from that copy, through `CallSiteContext`. A compilation that uses + none of the attributes gets no copy, and its call sites are read from the consumer's compilation as before. +- Every call site in one file shares one semantic model of the copy (`CallSiteContext.ModelFor`). A model caches the + methods it binds, and binding one call site binds its whole method. A new model per call site binds a view's + `WhenActivated` lambda once per binding in it, which grows with the square of the bindings. + +The rules mirror ReactiveUI.SourceGenerators 4.0.0. Its session agreed to announce any change to a name, type or +attribute argument. When one changes, update `SourceGeneratorsMemberExtractor` and `SourceGeneratorsDeclarationTests`. +`SourceGeneratorsContractTests` runs that package's real generators beside this one and executes every binding kind in +both runtime flavours, with and without interceptors. The baseline test project pins 4.0.0 with a `VersionOverride`, +and the Roslyn 4.13 project runs the same tests against the current release from `Directory.Packages.props`. + +The other direction is `ObservedProperty` (`Mixins/ObservedProperty.cs`): a public entry point for code another +generator writes, which cannot rely on this generator to bind a `WhenAnyValue` call. It composes the runtime types the +generated observation uses (`PropertyObservable`, `PluginPropertyObservable`, `SwitchMapSignal`, `UniqueSignal`, +`CombineLatestSignal`), so its values match; `ObservedPropertyParityTests` compares the two in both flavours. It +chooses the mechanism from the source's runtime type: an `INotifyPropertyChanged` source at INPC's affinity, any +other read once, and a higher-scoring registered provider wins either way. ReactiveUI.SourceGenerators detects it by +metadata name and uses it in its WinForms hosts. + +XAML named controls go through the same declarations file. MAUI and Avalonia declare a field per named element with a +source generator, and both pass their XAML to every generator as additional files: MAUI marks them `GenKind=Xaml`, +Avalonia `SourceItemGroup=AvaloniaXaml`. `XamlPageReader` reads the pages they mark (`x:Class`, `x:Name`, Avalonia's +`Name`, `x:FieldModifier`, skipping templates and `x:TypeArguments`), cached per file. `XamlMemberResolver` resolves each +element's type against the compilation, through `clr-namespace:` / `using:` or any assembly's `XmlnsDefinitionAttribute` +(matched by name, since MAUI and Avalonia each declare one), and skips a field the class already declares. WPF and +WinUI write their fields before the compiler runs, so their XAML is not read; `NamedControlsViewTests` shows WPF's +fields bind as they are. + +A member any other generator adds stays invisible. `NoGeneratedBindingAnalyzer` reports RXUIBIND021 on any call that +still resolves to a throwing runtime stub with no interceptor: analyzers see every generator's output, so that is +exactly the set of calls nothing was generated for, whatever the cause. + +### Where the Dispatch Overloads Live + +The generated concrete overloads have to beat the runtime stub at the call site, and they have to do it +without two generator-running assemblies seeing each other's copies. Extension-method lookup decides both: +it walks the enclosing namespaces of the call site from the inside out and **stops at the first level that +offers any candidate**, and a namespace brought in by a `using` (file-level or global) is only ever consulted +at the outermost level. + +From C# 10 the overloads go in the **consumer's own root namespace** (`build_property.RootNamespace`, +rendered as identifier segments so a project name like `My-App` still yields a legal namespace), plus a +generated `global using` of it. Two routes, two jobs: + +- the root namespace catches call sites nested under it, including a consumer whose own code sits under + `ReactiveUI.Binding.*` — those reach the stub at an enclosing level, so a `global using` alone never gets + looked at and the call falls through to the stub's runtime throw; +- the `global using` catches files declared outside the root namespace. + +Either way the concrete overload lands in the same candidate set as the generic stub and wins outright, because +a non-generic candidate beats a generic one. A `global using` is scoped to the compilation that declares it and +is never exported, which is what keeps one assembly's overloads out of another's lookup — the case that matters +when the two are joined by `InternalsVisibleTo`, since identical overloads visible from both make every matching +call site ambiguous (CS0121). When the build exposes no root namespace, the fallback is +`ReactiveUI.Binding.Generated.`. + +The residual risk is two assemblies that **share a root namespace**, grant each other `InternalsVisibleTo`, and +both generate a dispatch for the same concrete types — those calls are ambiguous again. All three have to +coincide; a project and its test project have distinct root namespaces and are unaffected. + +Below C# 10 there are no global usings, so there is nothing to scope a namespace with. The overloads stay in +`ReactiveUI.Binding`, where the import every consumer already has reaches them from any file — **unless the +assembly grants `InternalsVisibleTo`**, which is the only way another assembly can see them at all. Those +assemblies emit into their own root namespace instead, which nobody else's code sits under. The cost is that a +file declared outside the root namespace falls back to the runtime path; the alternative for those assemblies +is not universal reach but a build that does not compile (CS0121). With no root namespace to move to, the +shared namespace is kept — nowhere else would be reachable. + +### Recognising the Class a Stub Was Declared In + +Every extractor asks the same question of a call it has matched by name: is the method one of ours? It answers +by the declaring type's name, so the answer has to survive **how the API was declared**. +`ReactiveSchedulerExtensions` declares its whole surface as extension blocks, and an extension block's members +belong to a synthesized grouping type nested inside the static class, not to the class itself. The grouping type +has no name a consumer could write — empty when read from source, `<>E__N` when read from metadata — so +`ExtractorValidation.IsRecognizedExtensionClass` takes the symbol and reaches one level out when it finds one. + +**Which of the two shapes a call site resolves to is decided by the Roslyn that loads the generator, not by +anything in the consumer's project.** The same source, the same references and the same `LangVersion` resolve +to the static class on one compiler and to the grouping type on another. Rejecting either shape is silent: +those call sites produce no dispatch, the runtime stub throws, and every other call site in the file still +generates, so the build stays green and only the affected bindings go missing. + +There is no single version to code against. The generator is loaded by whatever compiler the consumer's SDK or +Visual Studio ships, and that spans the whole installed base at once - an unchanged project produces one shape +on one machine and the other shape on the next. **Accept every shape rather than the one this repository +happens to build with**, and never narrow a symbol test to what the current compiler returns. + +That cuts against the suite, which pins a single `Microsoft.CodeAnalysis.CSharp` package version and so +exercises exactly one of those compilers. Passing tests say the generator works on that one, and say nothing +about the rest. Where behaviour could turn on the host compiler, verify against several: run the generator from +a throwaway single-file app that pins a different `Microsoft.CodeAnalysis.CSharp` version, over a real +project's sources, and compare the emitted files. When a call site generates in the suite but not in a real +build, suspect this first and check a real build's `EmitCompilerGeneratedFiles` output rather than adding +more tests that share the suite's compiler. + +### Where This Engine Parts Company With ReactiveUI's + +The generator is a replacement for `PropertyBinderImplementation`, so its behaviour is measured against that +engine. Generated bindings and reflection-based bindings have distinct entry points. + +**`TriggerUpdate` and `signalViewUpdate` use `BindUnsafe`.** The view-first Unsafe overloads accept a stream +with registered or explicit converters. `ViewToViewModel` replaces view notifications with the stream; +`ViewModelToView` takes the first model notification and uses the stream for subsequent model-to-view updates, +while observing view notifications. A null stream observes both properties. The initial delivery reads from the +model even when later notifications replace a queued direction before its dispatch. Both sides are read at +delivery, compared after conversion, and written through the view-thread scheduler. These calls carry +`RequiresUnreferencedCode`; generated calls resolve from their property lambdas. + +**Binding faults follow ReactiveUI's contract exactly.** A write that faults is logged against the bound +expression, and rethrown as a `TargetInvocationException` only when it carries an inner exception. This is +parity rather than divergence, and it is not optional: a setter that throws on the notifying thread has no +caller stack to surface on, so swallowing it loses the failure entirely. + +**Hooks are consulted only when one is registered.** ReactiveUI asks the service locator for +`IPropertyBindingHook` on every binding it creates. `BindingHooks.Any` is tested first here, so an +application that registers none - which is nearly all of them - pays nothing, and one that registers a hook +gets the same veto. That is the "better" half of the divergence: same outcome, no cost for the common case. + +**A registered plugin still outranks the generated observation.** The generator picks a mechanism from the +types it can see at compile time, but `ICreatesObservableForProperty` is registered at run time and the +highest affinity wins - which is how ReactiveUI resolves the observation behind `Bind` and `OneWayBind`, not +just behind `WhenChanged`. The choice is made per observed link rather than per binding: +`ObservationAffinityChecker.FindHigherAffinityPlugin` is asked for a registration outranking the affinity +that link was generated from, and the link observes through `PluginPropertyObservable` when one wins and +through the generated mechanism when none does. A two-way binding observes both sides, so either side's +registration takes that side. + +**The registration drives the observation without an expression engine.** `PluginPropertyObservable` +subscribes to the registration for *when* the property changed and reads the value through the accessor the +generator emitted, so the honouring of a plugin costs no reflection. Everything the plugin needs is fixed at +compile time - the declaring type, the property name, the getter, and a lambda the compiler turns into member +tokens - which is what keeps a consumer publishing ahead-of-time free of trim and AOT warnings. Nothing on a +generated path reaches the runtime expression engine; routing a whole binding to it instead would put +`[RequiresUnreferencedCode]` back on every call site. + +The registered set and strongest custom vote are cached by runtime type, property and notification timing. +Each binding compares that vote with its generated score; the generated mechanism wins ties. `Refresh()` +replaces the cache generation, so an in-flight lookup cannot repopulate it with stale registrations. Generated +expressions and object adapters for a custom provider are constructed only when that provider wins. + +**Every binding writes on the view's owning thread.** ReactiveUI moves a write only on WPF. It does so for a +two-way `Bind` and for swapping a control's `Command`. Here every binding API moves it, on WPF, WinForms and MAUI. +The order matches ReactiveUI's WPF binder, which checks `CheckAccess()` before it uses +`RxSchedulers.MainThreadScheduler`. A ReactiveUI adapter sets `BindingSchedulers.MainThread` to that scheduler to +get the same result. + +### Which Thread a Binding Writes On + +A UI framework lets only one thread touch a view. That is the view's owning thread. Every binding API sends its +view writes through `BindingSchedulers.ObserveOnViewThread`. Generated and `Unsafe` calls both do. The observation +APIs (`WhenChanged`, `WhenAny`, `WhenAnyValue` and the rest) do not. The caller decides where to observe. + +**`IViewThreadInvoker` is the contract.** It has three members. + +- `Claims(target)` says whether the object belongs to this platform. +- `CheckAccess(target)` says whether the calling thread may write to the object now. +- `Post(target, callback, state)` queues the callback on the owning thread. + +Each platform module registers one invoker. Every invoker derives from `SequencerViewThreadInvoker`. +The base class claims a `TTarget`. It asks the platform for the sequencer that owns the object, with `SequencerFor`. +That sequencer answers `CheckAccess` through `IThreadAffineSequencer` and runs `Post` through `Schedule`. An object +no sequencer owns may be written from any thread, so `CheckAccess` passes and `Post` runs inline. The sequencers +come from the Primitives platform packages, and `For(owner)` returns one sequencer per dispatcher or control. + +| Invoker | `SequencerFor` | No sequencer when | +|---------|----------------|-------------------| +| WPF `DispatcherViewThreadInvoker` | `DispatcherSequencer.For(Dispatcher)`, at normal priority | the object has no dispatcher, as for a frozen `Freezable` | +| WinForms `ControlViewThreadInvoker` | `ControlSequencer.For(Control)` | `InvokeRequired` is false, which includes a control with no handle | +| MAUI `DispatcherViewThreadInvoker` | `MauiDispatcherSequencer.For(IDispatcher)` | the object has no dispatcher | +| Avalonia `AvaloniaViewThreadInvoker` | `AvaloniaScheduler.For(Dispatcher)`, at background priority | never; every `AvaloniaObject` has a dispatcher | +| Uno `UnoViewThreadInvoker` | `DispatcherQueueSequencer.For(DispatcherQueue)` | never; every `DependencyObject` has a dispatcher queue | + +MAUI's `BindableObject.Dispatcher` throws `InvalidOperationException` when it finds no dispatcher. That is normal in +a view's unit test. The MAUI invoker catches it. It treats the object as having no owning thread. + +`ReactiveUI.Binding.Avalonia` also registers `AvaloniaObjectObservableForProperty`, which observes a registered +`AvaloniaProperty` at the WPF dependency-property affinity, and `AvaloniaCreatesCommandBinding`, which binds a command +through an `ICommandSource`'s `Command` property or through a routed event. Neither uses reflection over members, so +the package is trim and AOT safe. + +**`ViewThreadObservable` decides every route.** Invokers only answer its questions. + +1. It uses the first registered invoker that claims the target. A generated binding also passes a fallback: an + invoker to use when no registered one claims the target. With no invoker at all, the source comes back + unchanged. +2. A notification runs inline when nothing is waiting and `CheckAccess` passes. +3. Any other notification waits. One drain delivers what waits. It runs on `BindingSchedulers.MainThread` when that + is set, and through `Post` otherwise. + +Only the latest value waits. A newer value replaces it, even one raised on the owning thread while a drain runs. +Completion and errors wait beside the value and are delivered after it. + +Keeping every value breaks two-way bindings. Writing a view raises the view's own change at once. If a newer value +is still waiting, that echo writes the older value back to the view model. The write raises another change, and +the two sides bounce forever. `ViewWriteSchedulingRuntimeTests` covers this for `Bind` and `BindTwoWay`. + +A two-way binding that names a sequencer follows the same rule. An `Unsafe` binding routes the source direction +through `ViewThreadObservable` on that sequencer, so only the latest value waits on it. A generated binding routes +both directions through `BindingSchedulers.ObserveOnSequencer`, which is the same stage. A value that a newer one +supersedes before the sequencer runs is never written, so two edits before the queue drains write once, with the +second. A null scheduler and the immediate sequencer skip the stage: the first writes on the thread that owns the +target and the second writes inline. + +`MainThread` only carries writes from another thread to a claimed object. It never sees an on-thread write. It +never sees a write to an unclaimed object. + +**Generated bindings carry their fallback.** They route writes without the platform module. + +- `ViewThreadPluginRegistry` checks the target's type during extraction. It matches + `System.Windows.Threading.DispatcherObject`, `System.Windows.Forms.Control`, + `Microsoft.Maui.Controls.BindableObject`, `Avalonia.AvaloniaObject` and `Microsoft.UI.Xaml.DependencyObject`, + through a base class first and then through an interface. +- Uno and WinUI share `Microsoft.UI.Xaml.DependencyObject`. Its plugin names the Uno invoker only when the + compilation references `ReactiveUI.Binding.Uno`, and its `PackageName` is null, so RXUIBIND017 never reports a + WinUI binding: the Uno package does not serve plain WinUI apps. +- Uno declares `DependencyObject` as an interface on every head but Windows, so an Uno control implements it rather + than deriving from it. Every check for that type accepts either: the view thread registry, the dependency-property + observation (`PlatformSymbols.DerivesFromOrImplements`), type detection, and the analyzers. +- The invocation model stores the matching runtime invoker's full name. `BindTo`, `BindOneWay`, `OneWayBind` and + `Bind` store it for the target. `BindTwoWay` stores it for both sides. `BindCommand` stores it for the view, and + for the control when the view has none. +- The emitter passes the platform package's invoker, such as + `global::ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker.Instance`, in the flavour the compilation references. +- An invoker is named only when its type resolves. Without the platform package the binding carries none, and + RXUIBIND017 reports the binding. + +The generator never declares an invoker itself: the invokers are public types in the platform packages. + +An `Unsafe` binding only has the registered invokers. It routes writes only when the platform module is registered. + +There is no plain WinUI invoker package. An Uno app gets `ReactiveUI.Binding.Uno`, whose Windows head compiles +against the Windows App SDK, so its invoker also covers the Uno app's Windows head. + +### Operators Come From Primitives + +`ReactiveUI.Binding.Shared/Observables/` holds only the observables this library's *domain* owns - the ones +that turn a property notification into an `IObservedChange`. Anything that is a general reactive operator +belongs to `ReactiveUI.Primitives`, which is already referenced, and is used from there rather than +hand-rolled again here. + +Primitives exposes both a concrete type per operator under `ReactiveUI.Primitives.Advanced` and a factory or +extension that returns it. **Prefer the concrete type** - `new LeadSignal(source, value)` over +`source.StartWith(value)` - so the generated and runtime code says exactly what it builds. Reach for the +factory only where it is the better path: `Signal.Never()`, `Signal.Empty()` and `Signal.Return(v)` +hand back cached singletons or a specialised immediate form that the public constructors cannot express. + +Two traps when naming these: + +- **`ReactiveUI.Primitives.Core` does not shift.** It is one assembly shared by both runtime flavours rather + than one recompiled per leaf, so the types in it - `ImmutableNeverSignal`, `ImmediateReturnSignal` - + stay in `ReactiveUI.Primitives.Advanced` for the `.Reactive` leaf too. That leaf imports the unshifted + namespace alongside its shifted one; the two declare disjoint types, which is what lets the lean leaf merge + them already. +- **Generated code qualifies operator types**, such as `global::ReactiveUI.Primitives.Advanced.WitnessOnSignal`, + so `RuntimeFlavourRewriter` can retarget the types declared by the `.Reactive` flavour. Immediate scheduling + returns the source directly. The shared `MapSignal` type keeps its namespace. + +Use `CurrentValueDelivery` for after-change and custom-provider reads and `SerializedDelivery` with +reentrancy enabled for before-change capture. Keep each gate in a mutable field. Read after-change values inside +the gate; capture before-change values on the raising thread. Attach before initial delivery and release the +subscription if initialization throws. A contended producer can hand off after the gate's 20 ms wait budget. +Custom-provider terminals must follow a change raised inside the current observer call. + +Two-source combinations construct `CombineLatestSignal`. For 3–16 sources, keep the +`CombineLatest` extension's specialized subscription path. Keep the specialized `Return`, `Never`, and `Empty` +factories, the internal `Skip` operator's extension, and the subscription extensions' fast paths. + +What stays in `Observables/` is decided by whether the type is a general operator or something this domain +fuses: + +| Type | Why it lives here | +|------|-------------------| +| `PropertyObservable`, `NotifyPropertyChangedObservable`, `PropertyChangingObservable` | Turn a property notification into an `IObservedChange`. The concept is this library's, so no general-purpose equivalent exists. | +| `EventObservable` | Fuses add/remove handler, the getter, `StartWith` and `DistinctUntilChanged` into **one** allocation. Assembling the same behaviour from `Signal.FromEventPattern` and three operators costs four. | +| `CombineLatestObservable` | A façade over `LinqExtensions.CombineLatest` that builds nothing itself, so every call site names one thing. | + +**A fused type is not replaced by a chain of general operators.** The point of this library is the allocation +count, so a swap that trades one object for four is a regression however much code it removes. Measure before +assuming a replacement is free. + +### ToProperty and the Helper Behind It + +`ToProperty` backs a read-only property with an observable. The generated worker calls +`ObservableAsPropertyHelper.Create`, passing the owning object and two lambdas that take it as an argument. +The lambdas capture nothing, so the compiler caches each as one static delegate. The property name is a literal. + +**How the generator raises the owner's notifications.** A type can only raise its own events. The +`PropertyRaise` plugins each name a member generated code can reach, strongest first, and the first that applies +wins: + +| Plugin | Applies when | Generated call | +|--------|--------------|----------------| +| `ReactiveObjectRaisePlugin` (10) | The type implements `ReactiveUI.IReactiveObject` | `IReactiveObjectExtensions.RaisePropertyChanged(owner, "Name")` | +| `RaiseMethodRaisePlugin` (5) | A raise method is accessible from the consumer assembly | `owner.RaisePropertyChanged(args)` | +| `PartialTypeRaisePlugin` (1) | The type and every type around it are partial | `owner.__ToPropertyRaiseChanged_Name()`, an accessor added to the type | + +- The ReactiveUI plugin goes through the public extension, not `IReactiveObject.RaisePropertyChanged(args)`. Only + the extension honours suppressed and delayed notifications and feeds `Changed`. The extension class is taken + from the assembly that declares the object's ReactiveUI base, because each flavour keeps its own state. +- A raise method that takes event args wins over one that takes a name. Generated code passes one static + `PropertyChangedEventArgs` per property, so raising allocates nothing. +- The partial accessor is an `internal` member on the consumer's own type. It is the only code the generator adds + to a consumer type for `ToProperty`. It declares no type, so `InternalsVisibleTo` friends see no duplicate. +- The plugins are symbol-only, so `ToPropertyAnalyzer` links them and reports RXUIBIND012 exactly when the + generator declines a call. + +**The selector is a `Func`, not an expression tree.** The generated code never reads the selector. It only needs +the property name, which the generator reads from the lambda's syntax. A non-capturing lambda converted to a +delegate is a compiler-cached static, so a call allocates nothing for it. A lambda converts to `Func` and to +`Expression` with equal rank, so the generated concrete overload still beats the generic stub. + +**A string name is dispatched by its value.** The overloads that take the property name as a `string` have no +caller-information parameters. The generated overload compares the name itself, as in `if (property == "Name")`, +and call sites that pass the same name collapse to one branch. A string name carries everything the body needs, so +the call site does not matter. + +**A selector overload with an initial value has priority.** The selector overloads carry +`[CallerArgumentExpression]` string parameters. For a `string` property, a string initial value could bind to the +initial-value overload or to the expression parameter of the overload without one, and the call is ambiguous +(CS0121). The initial-value overloads carry `[OverloadResolutionPriority(1)]` to settle it. The runtime declares an +internal copy of the attribute below .NET 9. Generated overloads carry it when `LanguageFeatures.SupportsOverloadResolutionPriority` +is set: C# 13 or later, and the attribute is accessible. Below C# 13 the compiler ignores the attribute, so such a +call names its argument: `initialValue: "..."`. + +RXUIBIND014 turns that ambiguity into an error that names the argument to write. `ToPropertyInitialValueAnalyzer` +reads the language version and the method name from syntax, so it asks the model only about `ToProperty` calls +below C# 13. The compiler reports CS0121 as an overload resolution failure with the candidates attached. The +analyzer reports when one candidate takes a positional argument as `initialValue` and another takes it as an +optional `string` parameter. + +**`ToPropertyUnsafe` finds the raise member by reflection.** It mirrors every `ToProperty` shape, with an +`Expression` selector or any string name, and carries `[RequiresUnreferencedCode]` and `[RequiresDynamicCode]`. +`RuntimePropertyRaiser` tries the members the plugins try, in the same order: ReactiveUI's raise extensions, then a +raise method, then the field behind a field-like event. Reflection reaches a protected or private raise method and +a non-partial type's event field, which generated code cannot; SES1406 is suppressed on those two lookups. + +The members are cached per type. Each raiser binds a raise method to its owner once, with `CreateDelegate`, which +closes an instance method over its target and a static extension over its first argument. The raiser is the +helper's owner, so the helper's callbacks capture nothing. A raise method that returns a value cannot bind to +`Action`, so it is called through `MethodInfo.Invoke` instead. + +**An owner built from the caller's type parameters stays generic.** Generated code only raises the owner's +notifications, so `ToProperty(this, x => x.Name)` inside `ViewModel : ReactiveObject` needs no name for +`ViewModel`. On a build that intercepts, the worker and the interceptor are generic over `__TOwner` and `__TValue` +and constrain the owner to `IReactiveObject` (`ToPropertyInvocationInfo.OpenOwnerConstraint`). Any other generic owner +goes through the call-site hosting described above. A build that cannot intercept generates nothing for it. + +**A property can be read while its helper starts.** A source that produces a value as it is subscribed makes the +helper raise `PropertyChanged` before `ToProperty` returns, so before the owner assigns the helper field. The generated +worker passes an `ObservablePropertyTarget` (the owner and the property name), the helper records itself in a +thread-static slot while it starts, and the generated getter of an `[ObservableAsProperty]` property asks +`ObservableAsPropertyHelper.PendingValue(this, "Name", fallback)` when its field is still null. A listener that +reads the property from the first notification sees the value, and a property that follows another one created later +sees its first value. + +**The helper keeps its state in a private core.** `ObservableAsPropertyHelper` is the public face. Its private +nested `Core` holds the state and implements `IObserver`, so the helper exposes no observer that others could +push values through. The source subscribes to the core, so the helper's constructor never hands out `this`. + +- The gate is an `int` taken with one `Interlocked.CompareExchange`, so the helper allocates no lock object. Each + critical section is a few field reads and writes, and no callback runs inside one. A waiter backs off with + `SpinWait` and never sleeps: on .NET Core it calls `SpinOnce(-1)`, because a one-millisecond sleep outlasts the + holder's critical section many times over. .NET Framework has no such overload and keeps the default backoff. +- Delivery with no scheduler is serialized. A value produced while another is being delivered, from a callback or + from another thread, is queued and delivered next by the thread already delivering. The queue is created the + first time a value has to wait. +- The distinct gate is seeded with the initial value, including after deferred activation, so a source that + opens by repeating the initial value raises nothing. +- `ThrownExceptions` observers live in a `Broadcaster`, which is safe to change from any thread, so + adding one takes no gate. + +**The extractor reads syntax before it asks the model.** Resolving a call runs overload resolution and generic +inference, which is the most expensive thing an extractor does. A selector that is not `x => x.Property` can never +generate, so its syntax turns it away first. + +**`[ObservableAsProperty]` only applies to a partial property.** The attribute is a runtime type. The generator +writes the property's body and a `_{name}Helper` field, and the consumer assigns the field with `ToProperty`. The +consumer declares the property, so every generator in the build sees it. A property written from a field would +exist only in generated code, which no other generator can observe or bind, so that form is not offered. + +The attribute's `InitialValue`, `ReadOnly` and `UseProtected` shape the generated members. A non-string +`InitialValue` is an expression held in a backing field. The generated file repeats the declaring file's `using` and +`extern alias` directives, so the expression binds as it was written. The attribute is also valid on a field, a method +and a property, the forms of ReactiveUI's older generator, so that code compiles. RXUIBIND018 reports them, and +`ObservableAsPropertyCodeFixProvider` rewrites them as partial properties; `PropertyName` and `Inheritance` exist only +for that rewrite. + +### One Body Per Reachable Branch + +The two dispatch mechanisms differ in what they can tell apart, and the emitted bodies follow. File-and-line +dispatch keys on the call site, so every call site is distinct and each needs its own binding method. +Expression-text dispatch keys on the two lambdas as written, so call sites that spell them the same way all +produce the same condition — the first wins, and any later one is unreachable while still dragging a binding +method along. Binding the same pair of properties from more than one place is ordinary rather than exotic, so +that dead weight scales with the consumer. + +`BindingEmitterHelpers.Generate` therefore collapses a group to one call site per distinct pair of expression +texts, but **only under expression-text dispatch**. Collapsing is sound there because the group already fixes +both types, so a shared pair of expressions means a shared pair of property paths and an identical body. Doing +the same under file-and-line dispatch would strand every collapsed call site on the stub's runtime throw. + +Collapsing is sound only while the lambdas are everything that shapes the body. Any other argument that changes +the body belongs in both the branch condition and the collapse key. `BindCommand` is the example: an explicit +`toEvent` replaces the mechanism the control would bind through, and a `withParameter` selector picks the +property that feeds the control. So its branch compares `toEvent` and the parameter text as well as the two +selectors. A call site that names no event carries no `toEvent` condition, so the call sites that name one are +tried first. An argument that changes the overload's signature belongs in the group key instead: a converter, a +hint, a scheduler, or the type an observable handler produces each get their own overload. + +The dispatch compares the text exactly as the compiler captured it, so a `static` lambda and the same lambda +without the modifier are two call sites with two branches. Nothing strips the modifier at run time. + +### Generating for the Lean or the .Reactive Runtime + +The two runtime packages share **no type names** — everything the lean one puts in `ReactiveUI.Binding.*`, the +other puts in `ReactiveUI.Binding.Reactive.*`, and the scheduler abstraction differs outright +(`ISequencer` vs `IScheduler`). Output written for one does not compile against the other at all, so the +generator branches on which package the consumer actually references, detected by looking up the stub class. + +The emitters write the lean names throughout, and `RuntimeFlavourRewriter` retargets the finished text when the +consumer is on the System.Reactive package. It runs on the finished text rather than being threaded through the +emitters because most generated bodies are **non-interpolated** raw string literals whose braces are the braces +of the generated code — making them interpolated to inject a namespace would mean escaping every one. + +The shift is anchored on the names the runtime namespace actually declares, read from the referenced assembly +rather than listed in the generator. That way it cannot go stale as the runtime grows, and it will not touch a +consumer type that merely happens to sit under `ReactiveUI.Binding` — which is exactly what a consumer whose own +root namespace starts that way would otherwise hit. + +Every generated file goes out through `CodeGeneratorHelpers.AddGeneratedSource` so no emitter can forget the +retargeting. Forgetting would only ever show up as generated code that does not compile, for consumers of the +package the test suite reaches least. `ReactiveRuntimeFlavourTests` sweeps **every** shared scenario against the +System.Reactive package for that reason — one unshifted type name in one emitter is enough to break every +consumer on it, and no representative subset can be trusted to reach it. + +### Matching the Stub's Parameter List + +The concrete overload only beats the generic stub once their parameter lists match — a non-generic candidate is +preferred over a generic one, but that tie-break needs the two to be otherwise indistinguishable. A shorter +parameter list leaves both merely applicable, neither better, and **every matching call site fails with CS0121**. + +Every stub declares its `[CallerArgumentExpression]` parameters on every target framework. Below .NET 5 the +attribute comes from the runtime library's `internal` polyfill in `Polyfills/`. The stub files carry no +`#if` around those parameters, so each overload is written once. + +Declaring a parameter does not mean the compiler fills it. The compiler fills the parameter on the generated +overload only when two things hold: + +- The consumer compiles at C# 10 or later. +- The generated overload can apply the attribute, because exactly one accessible attribute type resolves in the + consumer's compilation. On .NET Framework the only copy is the runtime's `internal` one, which the consumer + cannot apply. + +`LanguageFeatures` carries the two answers separately: + +- `StubHasExpressionParameters` reads the referenced stub's own parameter list. It decides whether the generated + overload declares the parameters, so the two lists match. A runtime package built before the parameters + existed on every framework reads as `false`. +- `SupportsCallerArgExpr` is the above, C# 10, and an accessible attribute. It decides whether the parameters + carry the attribute and whether dispatch matches on expression text rather than on `CallerFilePath` + + `CallerLineNumber`. + +When the compiler will not fill the parameters, the generated overload declares them unattributed. They exist +only so the lists line up, and dispatch runs off the file and line. The generator never declares the attribute +itself. Another generator, such as PolySharp, can declare it in the same compilation, and two declarations do not +compile (CS0101). `LanguageFeatureDetectionTests` covers a .NET Framework consumer and one on a framework that +declares the attribute. + +The overloads that take an `IBindingTypeConverter` - `BindOneWay`, `BindTwoWay`, `OneWayBind` and `Bind` with a +converter, an optional hint and an optional scheduler - declare no expression parameters at all. Their call sites +are dispatched by file and line at every language version and are never collapsed. Their generated overload keeps +the stub's parameter names, so a call that names an argument still resolves to it. The scheduler is optional, so +a call that leaves it out reaches the binding as null. + +Every property-binding overload that takes a scheduler treats null the same way: the binding writes on the thread +that owns the target, as if no scheduler had been named. The generated binding tests for null once, when it is +created. + +A generated overload also declares nullable reference types the way the stub does. The property selectors, the +scheduler, and the view model or target the stub takes as `TViewModel?` or `TTarget?`, are annotated `?` wherever +the target supports nullable reference types, so a call that passes an explicit null scheduler compiles without a +warning. Value types are left alone, because annotating one adds a conversion node to +the expression and breaks path extraction. + +### WhenChanged vs WhenChanging + +| API | Interface | Event | Timing | +|-----|-----------|-------|--------| +| `WhenChanged` | `INotifyPropertyChanged` | `PropertyChanged` | After value changes | +| `WhenChanging` | `INotifyPropertyChanging` | `PropertyChanging` | Before value changes | + +Not all platforms support before-change notifications (WPF DP, WinUI DP, WinForms, Android do not). The analyzer reports RXUIBIND004 when `WhenChanging` targets an unsupported platform type. + +### Diagnostic IDs + +| ID | Severity | Description | +|----|----------|-------------| +| RXUIBIND001 | Info | Expression must be inline lambda for compile-time optimization | +| RXUIBIND002 | Warning | Type has no observable properties | +| RXUIBIND003 | Warning | Expression contains private/protected member | +| RXUIBIND004 | Warning | Type does not support before-change notifications | +| RXUIBIND005 | Info | Source type implements INotifyDataErrorInfo; validation binding requires the runtime engine | +| RXUIBIND006 | Warning | Expression contains an unsupported path segment (indexer, static field, read-only leaf field, or method call) | +| RXUIBIND007 | Warning | BindCommand control has no bindable event | +| RXUIBIND008 | Warning | Property does not implement IInteraction | +| RXUIBIND009 | Warning | Generated binding dispatch is out of reach from this file | +| RXUIBIND010 | Warning | Observed path passes through a type that raises no notification | +| RXUIBIND011 | Warning | Binding call resolved to ReactiveUI's own mixin | +| RXUIBIND012 | Warning | ToProperty source raises no notification generated code can reach | +| RXUIBIND013 | Warning | ToProperty property must be named directly | +| RXUIBIND014 | Error | ToProperty initial value must be named below C# 13 | +| RXUIBIND015 | Warning | Binding call names a type generated code cannot reach | +| RXUIBIND016 | Warning | Binding call is made through a type parameter | +| RXUIBIND017 | Warning | Binding writes to a UI object without its platform package | +| RXUIBIND018 | Warning | ObservableAsProperty needs a partial get-only property | +| RXUIBIND019 | Warning | ObservableAsProperty method takes parameters | +| RXUIBIND020 | Info | View is registered only in the service locator | +| RXUIBIND021 | Warning | Binding call has no generated binding | + +## Code Style & Quality Requirements + +**CRITICAL:** All code must comply with ReactiveUI contribution guidelines: https://www.reactiveui.net/contribute/index.html -Report allocation figures from the EventPipe traces, not the memory diagnoser, and compare a change against the -previous commit with the same harness. `src/benchmarks/README.md` has the method and the current figures. +### Style Enforcement + +- EditorConfig rules (`.editorconfig`), kept in step with the RoslynCommonAnalyzers repository's own `.editorconfig` +- StyleSharp, PerformanceSharp and SecuritySharp analyzers - builds fail on violations +- The Sonar rules are set to `none`, so the SonarCloud scan does not report what these analyzers already cover +- **All public APIs require XML documentation comments** +- **Public API baselines**: every shipping library checks in `PublicAPI//PublicAPI.txt` through PublicApiSharp.Analyzers (PAS0001-PAS0005 are errors); generators, analyzers, tests and benchmarks are not tracked. To regenerate one, empty the file and run `dotnet format analyzers -f --diagnostics PAS0001 PAS0003 --severity info` +- **RS2008**: Analyzer release tracking enabled (`AnalyzerReleases.Shipped.md` / `AnalyzerReleases.Unshipped.md`) + +### C# Style Rules + +- **Braces:** Allman style +- **Indentation:** 4 spaces, no tabs +- **Fields:** `_camelCase` for private/internal +- **Visibility:** Always explicit, visibility first modifier +- **Namespaces:** File-scoped preferred +- **Modern C#:** Nullable reference types, pattern matching, records, init setters +- **netstandard2.0 targets:** Use `IsExternalInit.cs` polyfill for records; avoid APIs not available in netstandard2.0 (e.g., use `if (x is null) throw new System.ArgumentNullException(...)` instead of `ArgumentNullException.ThrowIfNull()`) + +## Writing Docs + +These rules cover README.md, CLAUDE.md and every other doc in the repository. They do not cover XML doc comments. + +### Who you write for + +Write for a reader at a grade 8 level who knows basic C#. They know what a class, a property and an event are. They do not know this library. + +### Sentences + +- Put the main point first. +- Give each sentence one subject. Use two only when they are tightly coupled. +- Keep sentences short. Split a sentence that needs a dash, a semicolon or a "which" to hold together. +- Use the active voice. Say who does what: "the binding writes the value", not "the value is written". +- Use verbs, not nouns made from verbs. Write "decide", not "make a decision". +- Say what is true. Avoid double negatives. +- Cut words that add nothing. Do not restate a point in the next sentence. + +### Words + +- Use everyday words. When you need a technical term, define it the first time you use it. +- Define each term once. After that, use it without explaining it again. +- Use the same word for the same thing every time. Do not swap in a synonym for variety. +- Use "you" for the reader. + +### Structure + +- Use headings so a reader can find a topic. +- Use a list for steps or for separate items. Use a table to compare items across the same columns. +- Show a short code example when it explains faster than words. + +### Scope + +- Each section says what this library does, on its own terms. +- Anything that differs from ReactiveUI goes only under the differences header: "Where this differs from ReactiveUI" in README.md, and "Where This Engine Parts Company With ReactiveUI's" here. Do not compare with ReactiveUI anywhere else. +- Describe the code as it is. Do not describe what it used to do. + +## Analyzer Suppression Policy + +**NO analyzer suppressions are allowed unless discussed and approved first.** This applies to every form of suppression: `[SuppressMessage]` attributes, `#pragma warning disable`, `.editorconfig` severity downgrades, and `` in project files. **Fix the underlying issue instead.** + +If a rule genuinely cannot be fixed without changing behavior or public API, **STOP and raise it for discussion — do not suppress unilaterally, and do not present a suppression as if it were a fix.** + +### Pre-approved suppressions (the ONLY ones allowed without further discussion) + +| Rule | Where it may be suppressed | Justification text | +|------|----------------------------|--------------------| +| **SST1472** (too many parameters) | The **offending method only** (never class-level) where the parameter count is inherent — e.g. CombineLatest selector lambdas, CallerInfo dispatch stubs. | parameter count is inherent to the API/overload under test | +| **SST2307** (generic type param not inferable) | **Public / interface-dictated** generic methods whose signature cannot change. Must be **fixed** (refactored) when the method is private/internal and refactorable. | type parameter is dictated by the interface / specified explicitly by the caller | +| **SST1300** (PascalCase naming) | Only for established domain acronyms: **INPC** (INotifyPropertyChanged), **KVO** (Key-Value Observing), **POCO**. | established acronym matching ReactiveUI domain terminology | +| **SST2309** (optional parameters) | Only the CallerInfo dispatch stubs (e.g. `ReactiveSchedulerExtensions`) where converting to overloads would exceed the parameter-count limit (SST1472). | part of the CallerInfo dispatch contract; overloads would exceed the parameter limit | +| **CA1040** (empty interfaces) | Only interfaces that are intentional **marker interfaces** (e.g. `IActivatableView`). | intentional marker interface | +| **SST1711** (extension block member never reads its receiver) | Only the CallerInfo dispatch stubs declared in extension blocks (e.g. `ReactiveSchedulerExtensions`). A genuine member that ignores its receiver moves to a static helper class instead. | part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws | +| **SES1406** (reflection with `BindingFlags.NonPublic`) | The **offending member only**, in reflection-based runtime code whose job requires reaching a non-public member and has no public route - e.g. `RuntimePropertyRaiser` invoking a protected raise method or a field-like event's backing field. Never where a public member would do, or where ReactiveUI's own lookup is public-only. | reflection-based API that must reach a non-public member; there is no public route | +| **CA1005** (too many generic type parameters) | Only arity-expanded public types whose type parameters are the values they carry (e.g. `PropertyValues`). | one arity-expanded emission per observed-property count; the type parameters are the observed properties | + +Anything **not** in this table — including (non-exhaustively) CA1019, CA1508, SST1175, SST1473, SST2337 — must be **fixed**, or **discussed and approved before any suppression is added**. + +## Key Architectural Patterns + +### Value-Equatable Models (Critical for Caching) + +All pipeline models are `sealed record` types with value equality. NEVER include `ISymbol`, `SyntaxNode`, or `Location` in pipeline outputs. Use `EquatableArray` for array equality. Extract strings from symbols using `ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)`. + +### Code Generation Strategy + +- Emitters write through `SourceWriter`, not `SyntaxFactory` and not a raw `StringBuilder` +- Generated code emitted as C# source via `context.AddSource()` +- `#pragma warning disable` at top of generated files +- All generated types use `[Microsoft.CodeAnalysis.Embedded]` attribute + +### Writing Generated Code + +`SourceWriter` owns the layout of every generated file. An emitter says what it writes, and the writer decides +the indentation. + +- **The writer tracks the level.** A line is indented when its first character is written. A blank line carries + no whitespace. Every line ends with `\n`. No string literal in an emitter starts with spaces. +- **Blocks change the level.** `OpenBlock` and `CloseBlock` write the braces and move one level in and out. + `OpenContinuation` moves the rest of a multi-line expression one level deeper. +- **Each emitter method writes at the level it is given.** It leaves the level as it found it, unless its name + says it opens something, like `OpenParameterList` or `AppendChoiceOpen`. Its doc comment says where it leaves + the writer. +- **C# constructs have names.** `SourceWriterExtensions` covers the file header, namespaces, types, doc comments, + attributes, parameter lists, branches, locals, returns and `try`/`finally`. A construct built from several + values has a `Begin` member that writes the keyword. The emitter appends the parts, and a closing member + finishes the line, so no intermediate string is built. +- **Domain shapes have names too.** Examples are `CodeGeneratorHelpers.AppendGuardedAssignment`, + `BindingEmitterHelpers.AppendWriteSubscription`, `ChainRegistrationEmitter.AppendStageOpen` and + `CommandBindingSyntax.OpenCommandSubscription`. Reuse one before you write the same lines again. +- **Type names live in `GeneratedTypeNames`.** A string literal names a type through a constant hole, such as + `$"var x = {GeneratedTypeNames.SwapDisposable}();"`. With only constant holes, the compiler folds the string to + one constant, so this costs nothing at run time. +- **Fixed text is written with `Lines`.** A fixed block, such as the command parameter capture, sits in a raw + string literal with its indentation relative to column zero. `Lines` indents it from the writer's level. + +`SourceWriter.Rent` takes its `StringBuilder` from `PooledBuilder`'s per-thread free list, and +`ToStringAndReturn` gives it back. `PooledStringBuilder` stays the builder for short fragments that are not +lines, such as grouping keys and type argument lists. + +`GeneratedLayoutTests` checks every stored snapshot. Each closing brace must line up with its opening brace. A +line inside a block must sit deeper than the block's braces, in whole levels. No line may end in whitespace. + +### Generated Code Declares No Shared Types + +The generator never emits the same static code into every consumer, and never declares a type whose fully +qualified name another assembly could also declare. An assembly granted `InternalsVisibleTo` would otherwise see two +types by one name. + +- Observation helpers are public runtime types: `DeferredPropertyObservable` for a plain property, + `CallbackPropertyObservable` for every native mechanism (UIKit, AppKit, WinForms, WinUI, Uno, + Android), and `KvoPropertyObservable` on the core package's Apple heads. +- AppKit command binding installs the runtime's `AppKitCommandTarget`, on the macOS head. +- KVO and AppKit routes are only taken when the runtime type resolves; otherwise the next mechanism wins. +- The `InterceptsLocationAttribute` and `ModuleInitializerAttribute` polyfills are `file`-local to the generated file + that needs them, so interception and the polyfilled module initializer need C# 11. +- The dispatch class sits in a per-assembly namespace, `ReactiveUI.Binding.Generated.` or + `ReactiveUI.Binding.Generated.Interceptors.`. Where it has to sit in a namespace other assemblies can + share (a consumer's root namespace, or the runtime's own below C# 10), its class name carries the assembly: + `__ReactiveUIGeneratedBindings_`. + +### Two-Layer Language Version Constraint + +There are **two distinct C# language contexts** in this project: + +**Generator source code** (the `.cs` files in `ReactiveUI.Binding.SourceGenerators/`): +- Compiled with `LangVersion` set to `latest` +- Can freely use raw string literals (`$$"""`), file-scoped namespaces, pattern matching (`is not`), records, switch expressions, etc. +- Must target **netstandard2.0** (Roslyn requirement), but the SDK/language version is latest + +**Generated output** (the strings emitted by the generator into user projects): +- Must be **C# 7.3 compatible** — user projects may target older frameworks +- Must follow the **ReactiveUI coding standard** (https://www.reactiveui.net/contribute/index.html) as closely as possible within C# 7.3 constraints +- Key rules for generated output: + - **Allman-style braces** — each brace on a new line + - **4-space indentation** — no tabs + - **Properly formatted multi-line code** — no single-line walls of text for non-trivial expressions + - **Explicit visibility modifiers** — visibility first (e.g. `private static`, not `static private`) + - Method bodies indented consistently at 12 spaces (namespace=0, class=4, member=8, body=12) +- C# 7.3 restrictions for generated output — do NOT use: + - `is not`, `and`, `or` pattern combinators (C# 9) + - `??=` null-coalescing assignment (C# 8) + - Switch expressions (C# 8) + - `required` members (C# 11) + - Raw string literals (C# 11) + - File-scoped namespaces (C# 10) + - `init` setters (C# 9) +- Generated output must NOT use `#nullable enable` or nullable reference type annotations (`T?` where T is a reference type) — these are C# 8+ features +- `static` lambdas are C# 9 — do not use in generated output + +### Analyzer Separation (Roslyn Best Practice) -### Building +- Generator does NOT report diagnostics +- Separate analyzer project reports all RXUIBIND diagnostics +- `DiagnosticWarnings.cs` and `Constants.cs` are linked from generator to analyzer via `` -```pwsh -dotnet build src/ReactiveUI.SourceGenerators.slnx +### Shared File Linking + +The analyzer project links shared files from the generator project: +```xml + + ``` +### The Lean / .Reactive Seam + +`ReactiveUI.Binding.Shared` holds the whole runtime library and is compiled twice: + +| Leaf | Scheduler type | Namespaces | +|------|----------------|------------| +| `ReactiveUI.Binding` | `ReactiveUI.Primitives.Concurrency.ISequencer` | `ReactiveUI.Binding.*` | +| `ReactiveUI.Binding.Reactive` | `System.Reactive.Concurrency.IScheduler` | `ReactiveUI.Binding.Reactive.*` | + +`ReactiveShim.props` (imported by `Directory.Build.props`) keys on the `.Reactive` project-name suffix: it +defines `REACTIVE_SHIM` and aliases `ISequencer` onto `IScheduler`. A future platform leaf such as +`ReactiveUI.Binding.Wpf.Reactive` picks the seam up with no further wiring. + +Rules for anything in `ReactiveUI.Binding.Shared`: + +- Name only `ISequencer`, never `IScheduler` or a Primitives sequencer type directly. +- Declare namespaces with the macro, so both leaves get their own: + ```csharp + #if REACTIVE_SHIM + namespace ReactiveUI.Binding.Reactive.Observables; + #else + namespace ReactiveUI.Binding.Observables; + #endif + ``` +- Never write a per-file `using ReactiveUI.Binding.*;` — those namespaces shift between leaves, so the + import has to come from each csproj as a `` item (unshifted vs shifted). +- Only call scheduler APIs that exist in both flavours. The state-carrying + `Schedule(TState, Func)` is the shared shape; the plain + `Action` overload exists on `ISequencer` but binds to recursive scheduling on `IScheduler`. + +The platform packages follow the same shape: `ReactiveUI.Binding..Shared` is compiled by +`ReactiveUI.Binding.` and `ReactiveUI.Binding..Reactive`, with namespaces shifting +`ReactiveUI.Binding.` to `ReactiveUI.Binding.Reactive.`. Neither platform leaf +references System.Reactive directly — `AnonymousObservable` and `ActionDisposable` in +`ReactiveUI.Binding.Platform.Shared` replace `Observable.Create`/`Disposable.Create`, and are compiled +privately into each platform assembly rather than added to the base library's surface. + +### Platform Test Projects + +Each platform package is tested by a pair: `ReactiveUI.Binding..Tests` owns the test source, and +`ReactiveUI.Binding..Tests.Reactive` has no source of its own — it links the lean project's `.cs` +so the same assertions run against both leaves. **The `.Reactive` suffix must come last in the name**, or +`ReactiveShim.props` will not recognise it and the mirror silently compiles against the lean namespaces. + +WPF and WinForms tests target the windows TFMs and need the Windows Desktop runtime, so off Windows +`Directory.Build.targets` demotes them (`IsTestProject`, `IsTestingPlatformApplication`, +`TestingPlatformDotnetTestSupport` to false, `OutputType` to `Library`). They still compile on every leg; +they only execute on the Windows one. That demotion has to live in `Directory.Build.targets`, not +`Directory.Build.props` — the testing-platform props set those back to true after props are evaluated, and +launching a windows-TFM app on Linux fails the whole run with "Zero tests ran" even when every real test +passed. The MAUI pair is exempt: it targets the plain TFMs and runs everywhere. + +Test fixtures that the product code finds by reflection must be `public` — the WinForms observer looks up +`{PropertyName}Changed` over public members only, so an `internal` fixture would pass for the wrong reason. + +### Building Windows Targets off Windows + +`MakePri.exe` and `cswinrt.exe` are native Windows binaries. On Linux/macOS the build reaches for them +through Wine, which crashes. `build/SkipMakePriOnNonWindows.targets` turns that pipeline off, imported +by a `Directory.Build.targets` in each Windows-desktop project (WPF and MAUI, both leaves) under +`Condition="!$([MSBuild]::IsOsPlatform('Windows'))"`, so real Windows builds still generate PRI. + +**That `Directory.Build.targets` must sit in the project's own folder.** MSBuild discovers it by walking +up from the project directory, so moving it into a `*.Shared` source folder silently disables it — the +build keeps working right up until Wine starts. Each copy chains to the repository-level file with +`GetPathOfFileAbove`; without that chain it shadows `src/Directory.Build.targets` instead of adding to it. + +### ConditionalWeakTable Symbol Caching + +`MetadataExtractor.cs` uses `ConditionalWeakTable` to cache resolved well-known type symbols per compilation, avoiding repeated `GetTypeByMetadataName` calls. + +## Common Tasks + +### Adding a New Generator Pipeline + +1. Create value-equatable POCO in `Models/` +2. Add syntax predicate to `RoslynHelpers.cs` +3. Add extraction logic to `MetadataExtractor.cs` +4. Create invocation generator in `Invocations/` with `Register()` method +5. Wire into `BindingGenerator.cs` `Initialize()` +6. Add code generation to `CodeGeneration/CodeGenerator.cs` +7. Add snapshot test in generator test project +8. Accept snapshots by running the tests with `ACCEPT_SNAPSHOTS=1` + +### Adding a New Analyzer Diagnostic + +1. Add descriptor to `DiagnosticWarnings.cs` (shared file) +2. Update `AnalyzerReleases.Unshipped.md` in both projects +3. Create/update analyzer in `ReactiveUI.Binding.Analyzer/Analyzers/` +4. Add tests in `ReactiveUI.Binding.Analyzer.Tests/` +5. Use `AnalyzerTestHelper.GetDiagnosticsAsync()` for testing + +### Accepting Snapshot Changes + +1. Run tests with the variable set: `ACCEPT_SNAPSHOTS=1 dotnet test --project tests/ReactiveUI.Binding.SourceGenerators.Tests/... -c Release` +2. Re-run tests without it to confirm the snapshots pass on their own + ## What to Avoid -- **`ISymbol` / `SyntaxNode` in pipeline output models** — breaks incremental caching; use value-equatable data records instead. -- **`SyntaxFactory` for code generation** — write through `SourceWriter`. -- **`StringBuilder`, `string.Join` or interpolation in emitters** — append into `SourceWriter`. -- **New diagnostics reported inside generators** — put new `RXUISG*` diagnostics in the separate analyzer project. -- **LINQ in hot Roslyn pipeline paths** — use `foreach` loops (Roslyn convention for incremental generators). -- **Non-value-equatable models** in the incremental pipeline — will defeat caching and cause unnecessary regeneration. -- **APIs unavailable in `netstandard2.0`** inside `ReactiveUI.SourceGenerators.Roslyn*` projects — the generator must run inside the compiler host which targets netstandard2.0. -- **Runtime reflection** in generated code — breaks Native AOT compatibility. -- **Language features newer than C# 12 in generated output** — generated code must compile at the minimum consumer - C# version (12.0). `#nullable enable` and nullable annotations are fine; generated files open with - `DisableWarningsEnableNullable()`. -- **File-scoped namespaces in generated output** — requires C# 10; use block-scoped namespaces. +- **ISymbol/SyntaxNode in pipeline outputs** - breaks incremental caching +- **Runtime reflection** in generated code - breaks AOT compatibility +- **SyntaxFactory or a raw StringBuilder for code generation** - write through `SourceWriter` instead +- **Diagnostics in generator** - use separate analyzer project +- **LINQ in hot paths** - use manual loops (Roslyn convention) +- **Non-value-equatable models** in pipeline - breaks caching +- **APIs unavailable in netstandard2.0** in generator/analyzer projects ## Important Notes -- **Required .NET SDKs:** .NET 8.0, 9.0, and 10.0 (all required for multi-targeting the test project). -- **Generator + Analyzer targets:** `netstandard2.0` (Roslyn host requirement). -- **Test project targets:** `net8.0;net9.0;net10.0`. -- **No shallow clones:** The repository uses MinVer; a full `git clone` with tags is required for correct versioning. -- **NuGet packaging:** The `ReactiveUI.SourceGenerators` project bundles all three versioned generator DLLs at different `analyzers/dotnet/roslyn*/cs` paths. -- **Cross-platform tests:** On non-Windows platforms, WPF/WinForms types are injected as source stubs so generator tests compile cross-platform. -- **`SyntaxFactory` helper:** https://roslynquoter.azurewebsites.net/ — useful for inspecting how Roslyn models a given syntax construct (reference only; do not use SyntaxFactory in code-gen paths). - -**Philosophy:** Generate zero-reflection, AOT-compatible ReactiveUI boilerplate at compile-time. Separate diagnostic reporting from code generation. Keep the incremental pipeline pure and value-equatable so Roslyn can cache and skip unchanged work. +- **Test and benchmark runtimes:** .NET 10.0 and 11.0 +- **Generator + Analyzer targets:** netstandard2.0 (Roslyn requirement) +- **Runtime library targets:** net8.0;net9.0;net10.0;net11.0;net462;net47;net471;net472;net48;net481 +- **Two separate version streams:** The attribute packages (`ReactiveUI.SourceGenerators`) continue their `v4.x` tags. + Every `ReactiveUI.Binding*` project continues from 9.1.0 on its own `binding-v` tags with a 9.2 floor + (`src/Directory.Build.props`). Each family has its own release workflow: `release.yml` builds + `ReactiveUI.SourceGenerators.Package.slnf` with the `v` prefix, and `release-binding.yml` builds + `ReactiveUI.Binding.slnf` and `ReactiveUI.Binding.Uno.slnf` with the `binding-v` prefix. The workflow computes the + next version from its family's tags, so nobody tags by hand, and a release of one family never moves the other. +- **No shallow clones:** Repository requires full clone for MinVer +- **Where the analyzers ship:** `ReactiveUI.Binding` and `ReactiveUI.Binding.Reactive` each pack the generator + and analyzer DLLs into `analyzers/dotnet/roslyn4.8/cs` and `analyzers/dotnet/roslyn4.13/cs`, so referencing a + runtime package is all a consumer needs. `ReactiveUI.Binding.SourceGenerators` is a compatibility package that + ships only the MSBuild props and targets: a second copy of the same assemblies under a different package root + loads as a second generator and emits every dispatch file twice, which fails the consumer's build + +**Philosophy:** Generate zero-reflection, AOT-compatible property observation and binding code at compile-time. Support all ReactiveUI platform notification mechanisms. Fall back to runtime expression analysis only when compile-time analysis is not possible. diff --git a/README.md b/README.md index 687c84ed..48c29c70 100644 --- a/README.md +++ b/README.md @@ -1,598 +1,154 @@ -# ReactiveUI Source Generators Documentation +
-This documentation covers using ReactiveUI Source Generators to simplify and enhance the use of ReactiveUI objects. +ReactiveUI -- **Minimum Requirements**: - - **C# Version**: 12.0 - - **Visual Studio Version**: 17.14.0 (Roslyn 4.14) — or Visual Studio 2026 (Roslyn 5.0) - - **ReactiveUI Version**: 23.2.28+ +# ReactiveUI.SourceGenerators -## Table of Contents -- [Installation](#installation) -- [Overview](#overview) -- [Supported Attributes & Features](#supported-attributes) -- [Detailed Usage](#welcome-to-a-new-way---source-generators) - - [Reactive](#reactive) - - [ReactiveCommand](#reactivecommand) - - [BindableDerivedList](#usage-readonlyobservablecollection) - - [Platform-Specific Attributes](#platform-specific-attributes) -- [Moved to ReactiveUI.Binding](#moved-to-reactiveuibinding) -- [Compatibility Notes](#compatibility-notes) -- [Credits](#credits) +**Compile-time code for ReactiveUI. No reflection. Trim and NativeAOT safe.** -## Installation +[![NuGet](https://img.shields.io/nuget/v/ReactiveUI.Binding.svg?label=ReactiveUI.Binding)](https://www.nuget.org/packages/ReactiveUI.Binding) +[![NuGet](https://img.shields.io/nuget/v/ReactiveUI.SourceGenerators.svg?label=ReactiveUI.SourceGenerators)](https://www.nuget.org/packages/ReactiveUI.SourceGenerators) +[![Build](https://github.com/reactiveui/ReactiveUI.SourceGenerators/actions/workflows/ci-build.yml/badge.svg)](https://github.com/reactiveui/ReactiveUI.SourceGenerators/actions/workflows/ci-build.yml) +[![Coverage](https://codecov.io/gh/reactiveui/ReactiveUI.SourceGenerators/branch/main/graph/badge.svg)](https://codecov.io/gh/reactiveui/ReactiveUI.SourceGenerators) +[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) +[![Slack](https://img.shields.io/badge/chat-slack-blue.svg)](https://reactiveui.net/slack) -dotnet add package ReactiveUI.SourceGenerators +
-Ensure the package is loaded with `PrivateAssets="all"` to avoid issues with generated code in consuming projects. +Two families of Roslyn source generators that work together: -The attributes (`[Reactive]`, `[ReactiveCommand]` and the rest) are public types in the package's -`ReactiveUI.SourceGenerators` assembly; the generators no longer declare them in your project, so assemblies -that share internals through `InternalsVisibleTo` no longer see two copies. Your project compiles against that assembly -but keeps no reference to it. If an older install added an `` line without `compile`, remove it: +| | Attribute generators | Binding generators | +|---|---|---| +| **Package** | `ReactiveUI.SourceGenerators` | `ReactiveUI.Binding` (and platform packages) | +| **You write** | `[Reactive]`, `[ReactiveCommand]`, `[IViewFor]` | `WhenChanged`, `Bind`, `ToProperty`, `[ObservableAsProperty]` | +| **You get** | Properties, commands, views, collections | Observations and bindings, with no expression trees | +| **Guide** | [Attribute generators](src/ReactiveUI.SourceGenerators/README.md) | [Binding reference](docs/ReactiveUI.Binding.md) | -```xml - -``` - -ReactiveUI V24.x.x consumers can reference either `ReactiveUI` for the primitives-based API without -System.Reactive, or `ReactiveUI.Reactive` for the System.Reactive-based API. The generators detect -the referenced API surface automatically. ReactiveUI releases from 23.2.28 remain supported. - -## Overview - -ReactiveUI Source Generators automatically generate ReactiveUI objects to streamline your code. These Source Generators are designed to work with ReactiveUI V23.2.28+ and support the following features: - -- `[Reactive]` With field and access modifiers, partial property support (C# 13 Visual Studio Version 17.12.0), partial properties with initializer support (C# 14+/preview only) -- `[Reactive(SetModifier = AccessModifier.Protected)]` With field and access modifiers, (Not Required for partial properties, configure set accessor with the property declaration). -- `[Reactive(Inheritance = InheritanceModifier.Virtual)]` With field and access modifiers. This will generate a virtual property. -- `[Reactive(UseRequired = true)]` With field and access modifiers. This will generate a required property, (Not Required for partial properties, use required keyword for property declaration). -- `[Reactive(nameof(RaiseProperty1), nameof(RaiseProperty2))]` With field and property changed notification for additional properties. -- `[ReactiveCommand]` -- `[ReactiveCommand(RunInBackground = true)]` runs a synchronous command on ReactiveUI's background scheduler, and starts a task-returning command with `Task.Run` -- `[ReactiveCommand(BackgroundScheduler = nameof(_scheduler))]` runs a synchronous command on the given scheduler -- `[ReactiveCommand(CanExecute = nameof(IObservableBoolName))]` with CanExecute -- `[ReactiveCommand(OutputScheduler = "RxSchedulers.MainThreadScheduler")]` using a ReactiveUI Scheduler -- `[ReactiveCommand(OutputScheduler = nameof(_isheduler))]` using a Scheduler defined in the class -- `[ReactiveCommand][property: AttributeToAddToCommand]` with Attribute passthrough -- `[ReactiveCommand(AccessModifier = PropertyAccessModifier.Internal)]` sets the access modifier of the generated command property -- `[RoutedControlHost("YourNameSpace.CustomControl")]` -- `[ViewModelControlHost("YourNameSpace.CustomControl")]` -- `[BindableDerivedList]` Generates a derived list from a ReadOnlyObservableCollection backing field -- `[ReactiveCollection]` Generates property changed notifications on add, remove, new actions on a ObservableCollection backing field -- `[IReactiveObject]` Generates IReactiveObject implementation for classes not able to inherit from ReactiveObject - -`[ObservableAsProperty]`, view registration and `[IViewFor]` have been removed in favour of ReactiveUI.Binding; see [Moved to ReactiveUI.Binding](#moved-to-reactiveuibinding). - -### Compatibility Notes -- For **.NET Framework 4.8 and older**, add [Polyfill by Simon Cropp](https://github.com/SimonCropp/Polyfill) or [PolySharp by Sergio Pedri](https://github.com/Sergio0694/PolySharp) to your project and set the `LangVersion` to 12.0 or later in your project file. - -### Roslyn / Visual Studio support - -The generators ship three Roslyn analyzer bands and the matching one is selected automatically by your compiler (it picks the highest band that is less than or equal to its own Roslyn version): - -| Band (`analyzers/dotnet/...`) | Roslyn | Minimum tooling | Covers | -| --- | --- | --- | --- | -| `roslyn4.8` | 4.8 | Visual Studio 2022 17.8, .NET 8 SDK (8.0.1xx) | The whole .NET 8 SDK line (Roslyn 4.8–4.11) plus VS 17.12/17.13 (Roslyn 4.12/4.13) | -| `roslyn4.14` | 4.14 | Visual Studio 2022 17.14, .NET SDK 9.0.3xx | VS 17.14, current .NET 9 SDK | -| `roslyn5.0` | 5.0 | Visual Studio 2026, .NET 10 SDK | VS 2026, .NET 10 SDK | - -The **`roslyn4.8` baseline keeps the entire .NET 8 SDK line working** — .NET 8 is supported through November 2026 and its SDK feature bands carry Roslyn 4.8 (`8.0.1xx`) through 4.11 (`8.0.4xx`); all of them select the `roslyn4.8` band. The 4.8 band compiles against the Roslyn 4.8 API only (the 4.12+ surface is compiled out), so it loads on those compilers without the `CS9057` "analyzer references a newer compiler" error. See the official [Roslyn package version mappings](https://learn.microsoft.com/en-us/visualstudio/extensibility/roslyn-version-support). - -| Visual Studio 2022 LTSC | Roslyn | .NET SDK band | -| --- | --- | --- | -| 17.8 | 4.8 | 8.0.1xx | -| 17.9 | 4.9 | 8.0.2xx | -| 17.10 | 4.10 | 8.0.3xx | -| 17.11 | 4.11 | 8.0.4xx | -| 17.14 | 4.14 | 9.0.3xx | - -For more information on analyzer codes, see the [analyzer codes documentation](https://github.com/reactiveui/ReactiveUI.SourceGenerators/blob/main/src/ReactiveUI.SourceGenerators/AnalyzerReleases.Shipped.md). - ---- - -## Supported Attributes - -### `[Reactive]` -Marks properties as reactive, generating getter and setter code. - -### `[ReactiveCommand]` -Generates commands, with options to add attributes or enable `CanExecute` functionality. - -### `[RoutedControlHost]` and `[ViewModelControlHost]` -Platform-specific attributes for control hosting in WinForms applications. - -### `[BindableDerivedList]` -Generates a derived list from a `ReadOnlyObservableCollection` backing field. - -### `[ReactiveCollection]` -Generates property changed notifications on add, remove, and new actions on an `ObservableCollection` backing field. - -### `[IReactiveObject]` -Generates `IReactiveObject` implementation for classes not able to inherit from `ReactiveObject`. - -## Historical Approach - -### Read-Write Properties -Previously, properties were declared like this: - -```csharp -private string _name; -public string Name -{ - get => _name; - set => this.RaiseAndSetIfChanged(ref _name, value); -} -``` - -Before these Source Generators were available we used ReactiveUI.Fody. -With ReactiveUI.Fody the `[Reactive]` Attribute was placed on a Public Property with Auto get / set properties, the generated code from the Source Generator and the Injected code using Fody are very similar with the exception of the Attributes. - -```csharp -[Reactive] -public string Name { get; set; } -``` - -## Migration from ReactiveUI.Fody -To migrate from ReactiveUI.Fody to ReactiveUI.SourceGenerators, follow these steps: -1. **Remove ReactiveUI.Fody**: Uninstall the ReactiveUI.Fody NuGet package from your project. -Remove the Fody support files from the project directory - -- FodyWeaver.xml -- FodyWeavers.xsd -2. **Install ReactiveUI.SourceGenerators**: Add the ReactiveUI.SourceGenerators NuGet package -3. **Update Property Declarations**: Place `[Reactive]` attributes on your properties as shown in the examples below and ensure that your classes and properties are declared as `partial`. You can also use field backing for `[Reactive]` properties as shown in the examples. This is a change from ReactiveUI.Fody which only supported property backing. -Remove using directives for `ReactiveUI.Fody.Helpers` and add using directives for `ReactiveUI.SourceGenerators`. -Fody's `[ObservableAsProperty]` has no equivalent in this package; see [A read-only property backed by an observable](#a-read-only-property-backed-by-an-observable). -4. **Rebuild Your Project**: Ensure that your project builds successfully and that the generated code behaves as expected. - -# Welcome to a new way - Source Generators - -## Usage Reactive property `[Reactive]` -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass : ReactiveObject -{ - [Reactive] - private string _myProperty; -} -``` - -### Usage Reactive property with set Access Modifier -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass : ReactiveObject -{ - [Reactive(SetModifier = AccessModifier.Protected)] - private string _myProperty; -} -``` - -### Usage Reactive property with property Attribute pass through -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass : ReactiveObject -{ - [Reactive] - [property: JsonIgnore] - private string _myProperty; -} -``` - -### Usage Reactive property from partial property - -Partial properties are supported in C# 13 and Visual Studio 17.12.0 and later. -Both the getter and setter must be empty, and the `[Reactive]` attribute must be placed on the property. -Override and Virtual properties are supported. -Set Access Modifier is also supported on partial properties. - -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass : ReactiveObject -{ - [Reactive] - public partial string MyProperty { get; set; } -} -``` - -### Usage Reactive property from partial property with default value -Partial properties with initial value are supported in C# preview and Visual Studio 17.12.0 and later. -Both the getter and setter must be empty, and the `[Reactive]` attribute must be placed on the property. -Override and Virtual properties are supported. -Set Access Modifier is also supported on partial properties. -```csharp -using ReactiveUI.SourceGenerators; -public partial class MyReactiveClass : ReactiveObject -{ - [Reactive] - public partial string MyProperty { get; set; } = "Default Value" -} -``` - -### Usage Reactive property with other source generators - -Roslyn source generators don’t have a defined run order and each generator sees the same initial compilation. -Code/attributes that one generator emits aren’t visible to other generators in the same compilation round, -so adding `[JsonPropertyName]`/`[JsonInclude]` from `ReactiveUI.SourceGenerators` won’t cause the `System.Text.Json` -source generator to pick them up in that project. That’s by design of the generator pipeline (no inter-generator dependencies / ordering). - -So `System.Text.Json` needs special care. In the case that you want to Json-serialize `[Reactive]` -properties, and you want to use the `System.Text.Json` source generator they must run in different -assemblies. The same applies to other source generators depending on the output of `ReactiveUI.SourceGenerators`. - -Define types with `[Reactive]` properties in assembly `A`, and then define the -`System.Text.Json.JsonSerializerContext` source generation context in assembly `B`, and let -`B` reference `A`. - -## Moved to ReactiveUI.Binding - -ReactiveUI's binding engine, [ReactiveUI.Binding](https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators), -now covers three features this package used to generate. They have been removed from ReactiveUI.SourceGenerators. - -| Removed | Use instead | -| --- | --- | -| `[ObservableAsProperty]` on a field, method, observable property or partial property, and the generated `InitializeOAPH()` | ReactiveUI.Binding's `[ObservableAsProperty]` on a `partial` property, assigned with `ToProperty` | -| `RegisterViewsForViewModelsSourceGenerated()`, the `RegistrationType` and `ViewModelRegistrationType` options of `[IViewFor]`, and `SplatRegistrationType` | ReactiveUI.Binding's view locator, which registers views at compile time | -| `[IViewFor]` and `[IViewFor("...")]`, which generated the `ViewModel` property and the `IViewFor` implementation | Implement `IViewFor` on the view yourself, or derive from one of ReactiveUI's view base classes; ReactiveUI.Binding's view locator registers it | -| RXUISG0014, RXUISG0017 and the RXUISPR0002 suppression | Nothing: they only applied to `[ObservableAsProperty]` | - -The Windows Forms `[RoutedControlHost]` and `[ViewModelControlHost]` remain. They resolve views through ReactiveUI's -view locator, or through ReactiveUI.Binding's when the project's ReactiveUI is built on it. With ReactiveUI.Binding -8.4.0 or later they follow their own properties through Binding's `ObservedProperty`, with `WhenAnyValue`'s semantics; -with anything older they follow them through `PropertyChanged`, and RXUISG0022 notes the difference. - -The ReactiveUI.Binding replacements need a ReactiveUI release built on ReactiveUI.Binding. ReactiveUI 24.3 and earlier -are not: there, ReactiveUI's own `ObservableAsPropertyHelper` and `IViewFor` are the ones in use, so -ReactiveUI.Binding's `ToProperty` does not produce the helper its generated property expects, and its view locator does -not see ReactiveUI's `IViewFor`. On those releases, use the hand-written forms below. - -### A read-only property backed by an observable - -With ReactiveUI.Binding, mark a `partial` property `[ObservableAsProperty]` (C# 13 or later). The generator writes the -property's body and a helper field named after it, which you assign with `ToProperty`: - -```csharp -using ReactiveUI; -using ReactiveUI.Binding; - -public partial class MyReactiveClass : ReactiveObject -{ - public MyReactiveClass(IObservable myPropertySource) => - _myPropertyHelper = myPropertySource.ToProperty(this, x => x.MyProperty, initialValue: "Default Value"); - - [ObservableAsProperty] - public partial string MyProperty { get; } -} -``` - -ReactiveUI.Binding 7.11 and later report `[ObservableAsProperty]` on a field, method or observable property -(RXUIBIND018), and its code fix rewrites each as a partial property. - -Without ReactiveUI.Binding, or on ReactiveUI 24.3 and earlier, write the helper with ReactiveUI's `ToProperty`: - -```csharp -using ReactiveUI; - -public class MyReactiveClass : ReactiveObject -{ - private readonly ObservableAsPropertyHelper _myPropertyHelper; - - public MyReactiveClass(IObservable myPropertySource) => - _myPropertyHelper = myPropertySource.ToProperty(this, x => x.MyProperty, initialValue: "Default Value"); - - public string MyProperty => _myPropertyHelper.Value; -} -``` - -### Views - -`[IViewFor]` generated a view's `ViewModel` property and its `IViewFor` implementation. Write them on the view, or -derive the view from one of ReactiveUI's view base classes such as `ReactiveUserControl`: - -```csharp -using ReactiveUI; - -public partial class LoginView : UserControl, IViewFor -{ - public LoginViewModel? ViewModel { get; set; } - - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (LoginViewModel?)value; } -} -``` - -ReactiveUI.Binding's view locator registers every class whose declaration implements `IViewFor`. Without -ReactiveUI.Binding, or on ReactiveUI 24.3 and earlier, register each view with Splat: - -```csharp -AppLocator.CurrentMutable.Register>(static () => new LoginView()); -``` +## Quick start -## Usage ReactiveCommand `[ReactiveCommand]` +**Attributes.** Mark a field. The property, its change notification and the command are written for you. -### Usage ReactiveCommand without parameter ```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass +public partial class LoginViewModel : ReactiveObject { - [ReactiveCommand] - private void Execute() { } -} -``` - -### Usage ReactiveCommand with parameter -```csharp -using ReactiveUI.SourceGenerators; + [Reactive] private string _userName = ""; -public partial class MyReactiveClass -{ [ReactiveCommand] - private void Execute(string parameter) { } + private void SignIn() { } } ``` -### Usage ReactiveCommand on the background scheduler - -Use `RunInBackground` to run a command's method off the calling thread. A synchronous method's command is created with `ReactiveCommand.CreateRunInBackground`. A task-returning method is started with `Task.Run`, so the code before its first `await` no longer runs on the calling thread; the command parameter and `CancellationToken` are passed through. Observable-returning methods are unaffected. - -`BackgroundScheduler` chooses the scheduler a synchronous method runs on, from a scheduler member of the class or a built-in ReactiveUI scheduler, and implies `RunInBackground`. A task-returning method always starts on the thread pool. +**Binding.** Name the path as a lambda. The generator writes the code that attaches to each link of it. ```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [ReactiveCommand(RunInBackground = true)] - private void ExecuteExpensiveWork() { } - - [ReactiveCommand(RunInBackground = true)] - private async Task LoadAsync(int id, CancellationToken token) => await _repository.LoadAsync(id, token); +IObservable city = viewModel.WhenChanged(x => x.Address.City); - [ReactiveCommand(BackgroundScheduler = nameof(_workScheduler))] - private void Crunch() { } -} +view.OneWayBind(viewModel, x => x.UserName, v => v.NameLabel.Text); ``` -### Usage ReactiveCommand with parameter and return value -```csharp -using ReactiveUI.SourceGenerators; +## Install -public partial class MyReactiveClass -{ - [ReactiveCommand] - private string Execute(string parameter) => parameter; -} +```bash +dotnet add package ReactiveUI.SourceGenerators # attribute generators +dotnet add package ReactiveUI.Binding # binding generators, no System.Reactive +dotnet add package ReactiveUI.Binding.Reactive # binding generators on System.Reactive ``` -### Usage ReactiveCommand with parameter and async return value. +Reference one binding runtime package, not both. Add `PrivateAssets="all"` to `ReactiveUI.SourceGenerators`. -Note: the Async suffix is removed from the generated command +## Packages -```csharp -using ReactiveUI.SourceGenerators; +| Package | Purpose | +|---------|---------| +| `ReactiveUI.SourceGenerators` | Attribute generators | +| `ReactiveUI.Binding`, `ReactiveUI.Binding.Reactive` | Binding runtime, generator and analyzer | +| `ReactiveUI.Binding.Wpf`, `.WinForms`, `.Maui`, `.Avalonia`, `.Uno` | Platform property observation and view thread routing | +| `*.Reactive` platform packages | The same, for System.Reactive apps | -public partial class MyReactiveClass -{ - [ReactiveCommand] - private async Task ExecuteAsync(string parameter) => await Task.FromResult(parameter); +## Requirements - // Generates the following code ExecuteCommand, Note the Async suffix is removed -} -``` +| | Attribute generators | Binding generators | +|---|---|---| +| Language | C# 12 | C# 7.3 for generated code; interceptors need C# 11 | +| Compiler | Roslyn 4.8 or later | Roslyn 4.8 or later; interceptors need 4.13 | +| Runtime | .NET 8 to 11, .NET Framework 4.6.2 to 4.8.1 | The same | -### Usage ReactiveCommand with IObservable return value -```csharp -using ReactiveUI.SourceGenerators; +## Examples -public partial class MyReactiveClass -{ - [ReactiveCommand] - private IObservable Execute(string parameter) => Observable.Return(parameter); -} -``` - -### Usage ReactiveCommand with CancellationToken -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [ReactiveCommand] - private async Task Execute(CancellationToken token) => await Task.Delay(1000, token); -} -``` - -### Usage ReactiveCommand with CancellationToken and parameter -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [ReactiveCommand] - private async Task Execute(string parameter, CancellationToken token) - { - await Task.Delay(1000, token); - return parameter; - } -} -``` - -### Usage ReactiveCommand with CanExecute -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - private IObservable _canExecute; +Every example runs and prints what it does. - [Reactive] - private string _myProperty1; +| Example | Shows | +|---------|-------| +| [index](src/examples/Documentation/Pages/index) | Your first binding | +| [observing](src/examples/Documentation/Pages/observing) | `WhenChanged`, `WhenAny`, `WhenAnyValue`, `WhenAnyObservable` | +| [bindings](src/examples/Documentation/Pages/bindings) | One-way, two-way, command and interaction bindings | +| [properties](src/examples/Documentation/Pages/properties) | `ToProperty` and `[ObservableAsProperty]` | +| [converters](src/examples/Documentation/Pages/converters) | Built-in type converters | +| [custom-converters](src/examples/Documentation/Pages/custom-converters) | Writing your own converters | +| [mechanisms](src/examples/Documentation/Pages/mechanisms) | How a property reports a change | +| [views](src/examples/Documentation/Pages/views) | The view locator and `IViewFor` | +| [threading](src/examples/Documentation/Pages/threading) | Which thread a binding writes on | +| [xaml](src/examples/Documentation/Pages/xaml) | Controls named in MAUI and Avalonia XAML | +| [sourcegenerators](src/examples/Documentation/Pages/sourcegenerators) | Binding to members the attribute generators write | +| [unsafe](src/examples/Documentation/Pages/unsafe) | Run-time expressions | +| [setup](src/examples/Documentation/Pages/setup) | Configuration, analyzer and NativeAOT | +| [Execute](src/tests/ReactiveUI.SourceGenerators.Execute) | The attribute generators in use | +| [ToPropertyVerification](src/examples/Platforms/ToPropertyVerification) | `ToProperty` on every runtime target | +| [PlatformBindingsVerification](src/examples/Platforms/PlatformBindingsVerification) | `ToProperty` feeding real WPF, WinForms and MAUI controls | - [Reactive] - private string _myProperty2; +## Documentation - public MyReactiveClass() - { - _canExecute = this.WhenAnyValue(x => x.MyProperty1, x => x.MyProperty2, (x, y) => !string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(y)); - } +| Topic | Where | +|-------|-------| +| Attribute generators | [src/ReactiveUI.SourceGenerators](src/ReactiveUI.SourceGenerators/README.md) | +| Binding reference: APIs, diagnostics, threading, differences from ReactiveUI | [docs/ReactiveUI.Binding.md](docs/ReactiveUI.Binding.md) | +| Benchmarks and current figures | [src/benchmarks](src/benchmarks/README.md) | +| Contributing and repository layout | [CLAUDE.md](CLAUDE.md) | +| ReactiveUI handbook | [reactiveui.net](https://www.reactiveui.net/documentation/handbook/) | - [ReactiveCommand(CanExecute = nameof(_canExecute))] - private void Search() { } -} -``` - -### Usage ReactiveCommand with property Attribute pass through -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - private IObservable _canExecute; +## Core team - [Reactive] - private string _myProperty1; + + + + + + + +
+ +
+ Chris Pulman +

London, UK

+
+ +
+ Glenn Watson +

Melbourne, Australia

+
- [Reactive] - private string _myProperty2; +## Contribute - public MyReactiveClass() - { - _canExecute = this.WhenAnyValue(x => x.MyProperty1, x => x.MyProperty2, (x, y) => !string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(y)); - } +The project uses the MIT license. Everyone is welcome, including first-time contributors. - [ReactiveCommand(CanExecute = nameof(_canExecute))] - [property: JsonIgnore] - private void Search() { } -} -``` - -### Usage ReactiveCommand with ReactiveUI OutputScheduler - -`OutputScheduler` and `BackgroundScheduler` name a scheduler as you would write it in the class: a field, property or -parameterless method of the class, or a static one elsewhere, such as `RxSchedulers.MainThreadScheduler` with -`using ReactiveUI;`. A name that does not resolve to a scheduler is reported as RXUISG0021. - -```csharp -using ReactiveUI; -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [ReactiveCommand(OutputScheduler = "RxSchedulers.MainThreadScheduler")] - private void Execute() { } -} -``` - -### Usage ReactiveCommand with custom OutputScheduler -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - private IScheduler _customScheduler = new TestScheduler(); - - [ReactiveCommand(OutputScheduler = nameof(_customScheduler))] - private void Execute() { } -} -``` - -### Usage ReactiveCommand with AccessModifier -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [ReactiveCommand(AccessModifier = PropertyAccessModifier.Internal)] - private void Execute() { } -} -``` - -### Usage ReadOnlyObservableCollection - -```csharp -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass -{ - [BindableDerivedList] - private readonly ReadOnlyObservableCollection _myList; -} -``` - -## Platform specific Attributes - -### WinForms - -#### RoutedControlHost -```csharp -using ReactiveUI.SourceGenerators.WinForms; - -[RoutedControlHost("YourNameSpace.CustomControl")] -public partial class MyCustomRoutedControlHost; -``` - -#### ViewModelControlHost -```csharp -using ReactiveUI.SourceGenerators.WinForms; - -[ViewModelControlHost("YourNameSpace.CustomControl")] -public partial class MyCustomViewModelControlHost; -``` - -### ReactiveCollection -```csharp -using System.Collections.ObjectModel; -using ReactiveUI; -using ReactiveUI.SourceGenerators; - -public partial class MyReactiveClass : ReactiveObject -{ - [ReactiveCollection] - private ObservableCollection _myCollection; - - public MyReactiveClass() - { - MyCollection = new ObservableCollection(); - _myCollection.Add("Item 1"); - } -} -``` - -### IReactiveObject implementation for classes not able to inherit from ReactiveObject -```csharp -using ReactiveUI; -using ReactiveUI.SourceGenerators; - -[IReactiveObject] -public partial class MyReactiveClass -{ - [Reactive] - private string _myProperty; -} -``` +- [Answer questions on GitHub Discussions](https://github.com/reactiveui/ReactiveUI.SourceGenerators/discussions) +- Improve the docs where something is missing or unclear. +- Contribute code. Read [CLAUDE.md](CLAUDE.md) first. -# Credits +## Credits -Portions of this code base are based on and derived from -* [PolySharp](https://github.com/Sergio0694/PolySharp) library. Thanks go to @Sergio0694 -* [Microsoft MVVM Community Toolkit](https://github.com/CommunityToolkit/dotnet) +Portions of this code are derived from [PolySharp](https://github.com/Sergio0694/PolySharp) and the +[Microsoft MVVM Community Toolkit](https://github.com/CommunityToolkit/dotnet). ## Sponsors -[JetBrains](https://www.jetbrains.com/) gives ReactiveUI's maintainers licences for its tools through its -[open source support programme](https://www.jetbrains.com/community/opensource/). -[Anthropic](https://www.anthropic.com/) supports them with [Claude](https://claude.com/) through -[Claude for Open Source](https://claude.com/contact-sales/claude-for-oss). -[OpenAI](https://openai.com/) supports them with [Codex](https://openai.com/codex/) through -[Codex for Open Source](https://developers.openai.com/community/codex-for-oss). +[JetBrains](https://www.jetbrains.com/) supports ReactiveUI's maintainers through its +[open source programme](https://www.jetbrains.com/community/opensource/). +[Anthropic](https://www.anthropic.com/) supports them with [Claude](https://claude.com/), and +[OpenAI](https://openai.com/) with [Codex](https://openai.com/codex/). [![JetBrains](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/jetbrains.svg)](https://www.jetbrains.com/) [![Claude by Anthropic](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/claude.svg)](https://claude.com/) [![OpenAI](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/openai.svg)](https://openai.com/codex/) -See [our sponsors](https://www.reactiveui.net/sponsors/) for more information. -JetBrains, Claude, Anthropic, OpenAI and Codex names and logos are trademarks of their respective owners. +See [our sponsors](https://www.reactiveui.net/sponsors/). All names and logos belong to their owners. diff --git a/SECURITY.md b/SECURITY.md index d02c1ad1..00983dc7 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,10 +2,10 @@ ## Supported versions -Only the latest released version of `ReactiveUI.SourceGenerators` on -[NuGet](https://www.nuget.org/packages/ReactiveUI.SourceGenerators/) is supported. Fixes ship in -a new release; no patches are issued for earlier versions. Upgrade to the latest version before -reporting an issue. +Only the latest released versions of the `ReactiveUI.SourceGenerators` and `ReactiveUI.Binding` +packages on [NuGet](https://www.nuget.org/packages/ReactiveUI.SourceGenerators/) are supported. +Fixes ship in a new release; no patches are issued for earlier versions. Upgrade to the latest +version before reporting an issue. ## Reporting a vulnerability diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..3ad69eb9 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,7 @@ +### YamlMime:ManagedReference +ignore: + - src/tests + - "**/Tests/" + - "**/*.Tests/" + - "**/*.Test/" + - "**/TestModels/" diff --git a/docs/ReactiveUI.Binding.md b/docs/ReactiveUI.Binding.md new file mode 100644 index 00000000..0b7841da --- /dev/null +++ b/docs/ReactiveUI.Binding.md @@ -0,0 +1,1099 @@ +[![NuGet Stats](https://img.shields.io/nuget/v/ReactiveUI.Binding.svg)](https://www.nuget.org/packages/ReactiveUI.Binding) [![Build](https://github.com/reactiveui/ReactiveUI.SourceGenerators/actions/workflows/ci-build.yml/badge.svg)](https://github.com/reactiveui/ReactiveUI.SourceGenerators/actions/workflows/ci-build.yml) [![Code Coverage](https://codecov.io/gh/reactiveui/ReactiveUI.SourceGenerators/branch/main/graph/badge.svg)](https://codecov.io/gh/reactiveui/ReactiveUI.SourceGenerators) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](../LICENSE) +
+ + + + + + + + + + + + + + + +# ReactiveUI.SourceGenerators + +This repository holds two families of source generators for ReactiveUI. A source generator is a compiler add-on that +writes C# code while your project builds. + +| Family | Package | What it does | +|--------|---------|--------------| +| Attribute generators | `ReactiveUI.SourceGenerators` | Writes properties, commands, views and collections from attributes such as `[Reactive]`, `[ReactiveCommand]` and `[IViewFor]`. [Read its README](../src/ReactiveUI.SourceGenerators/README.md). | +| Binding generators | `ReactiveUI.Binding` and its platform packages | Writes the code behind `WhenChanged`, `Bind`, `ToProperty` and `[ObservableAsProperty]`. The rest of this page covers it. | + +The families work together, so they live in one repository and share their build and test infrastructure. Both write +reflection-free code that works with trimming and NativeAOT. + +## ReactiveUI.Binding + +You have a property. When it changes, something else needs to know. That might be a label, a validation rule +or another property. This library lets you say that in one line. It writes the code for you when you build. + +> [!NOTE] +> This page covers this binding engine. It does not teach reactive programming. The +> [WhenAny handbook](https://www.reactiveui.net/documentation/handbook/when-any/) teaches property +> observation. The [data binding guide](https://www.reactiveui.net/documentation/handbook/data-binding/) +> covers the binding methods in depth. + +## Table of Contents + +- [The problem it solves](#the-problem-it-solves) +- [Your first binding](#your-first-binding) +- [How a property reports a change](#how-a-property-reports-a-change) +- [The generator checks each property in a path](#the-generator-checks-each-property-in-a-path) +- [Trimming and NativeAOT](#trimming-and-nativeaot) +- [Compiler requirements](#compiler-requirements) +- [When nothing claims the call](#when-nothing-claims-the-call) +- [Members written by another source generator](#members-written-by-another-source-generator) +- [Installing](#installing) +- [Supported frameworks](#supported-frameworks) +- [Packages](#packages) +- [Supported APIs](#supported-apis) +- [Examples](#examples) +- [The view locator](#the-view-locator) +- [Which mechanism wins](#which-mechanism-wins) +- [Which thread a binding writes on](#which-thread-a-binding-writes-on) +- [Rx library compatibility](#rx-library-compatibility) +- [Diagnostics](#diagnostics) +- [Where this differs from ReactiveUI](#where-this-differs-from-reactiveui) +- [Core team](#core-team) +- [Contribute](#contribute) + +### Core Team + + + + + + + + +
+ +
+ Chris Pulman +

London, UK

+
+ +
+ Glenn Watson +

Melbourne, Australia

+
+ +## The problem it solves + +C# already tells you when a property changes. A class raises `PropertyChanged`. You attach a handler, check +which property changed, and read the new value. + +That works for one property. It gets hard when you follow a path through two properties: + +```csharp +// Tell me when the city changes. +viewModel.PropertyChanged += (sender, args) => +{ + if (args.PropertyName != nameof(viewModel.Address)) + { + return; + } + + // Address was replaced. Detach from the old Address, attach to the new one, + // and start watching its City. Then undo all of it when you are finished. +}; +``` + +With this library, you write the path as a lambda instead: + +```csharp +IObservable city = viewModel.WhenChanged(x => x.Address.City); +``` + +This attaches to `Address` and to `City`. When `Address` is replaced, it moves to the new `Address`. When you +dispose the subscription, it detaches from everything. + +The lambda only names the path. A source generator is a compiler add-on that writes C# code while your project +builds. This library's generator reads the properties in the lambda, `Address` and then `City`. It writes code +that reads each one and attaches to the event that reports its change. + +## Your first binding + +**1. Install the package.** + +``` +dotnet add package ReactiveUI.Binding +``` + +**2. Raise `PropertyChanged` from your view model.** Any class that does this can be observed. You do not need +a base class. + +```csharp +public class PersonViewModel : INotifyPropertyChanged +{ + private string _name = ""; + + public event PropertyChangedEventHandler? PropertyChanged; + + public string Name + { + get => _name; + set + { + _name = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name))); + } + } +} +``` + +**3. Observe a property.** You get an `IObservable`. It gives you the current value, then every later value. + +```csharp +var vm = new PersonViewModel { Name = "Ada" }; + +IDisposable subscription = vm.WhenChanged(x => x.Name) + .Subscribe(name => Console.WriteLine(name)); // prints Ada + +vm.Name = "Grace"; // prints Grace +``` + +**4. Or bind it straight to a control.** This writes `Name` into the label now, and again on every change. + +```csharp +IDisposable binding = vm.BindOneWay(view, x => x.Name, v => v.NameLabel.Text); +``` + +**5. Dispose when you are done.** Both calls return an `IDisposable`. Disposing it detaches every handler the +binding attached. + +> [!TIP] +> Keep your subscriptions in a `CompositeDisposable`. Dispose it when the view goes away. A subscription you +> never dispose keeps the view model alive. + +`WhenChanging`, `BindTwoWay`, `BindCommand` and the other methods work the same way. + +## How a property reports a change + +`PropertyChanged` is one way for a property to report a change. There are others. A WPF `TextBox.Text` does +not raise `PropertyChanged`. An iOS view does not raise it at all. + +Each way of reporting a change is a mechanism. The generator first finds the mechanisms a type offers. Each +mechanism uses a different event, and attaches to it a different way. + +| Mechanism | Supported properties | Before the change | +|-----------|----------------------|-------------------| +| `INotifyPropertyChanged` | Properties that raise `PropertyChanged`, including MAUI bindable properties. | no | +| `INotifyPropertyChanging` | Properties that raise `PropertyChanging`. | yes | +| `IReactiveObject` | ReactiveUI properties that raise change notifications. | yes | +| WPF dependency property | Dependency properties such as `TextBox.Text`. | see below | +| WinUI and Uno dependency property | Properties backed by a framework dependency property. | no | +| WinForms component | Properties with a public `{PropertyName}Changed` event. | no | +| Apple KVO | Native `NSObject` properties and exported properties. | yes | +| UIKit and AppKit notifications | Supported control text, value, date and selection properties. | no | +| Android view | Supported widget properties such as `TextView.Text`. | no | + +> [!NOTE] +> A type can offer more than one mechanism. A `ReactiveObject` in a WPF window implements +> `INotifyPropertyChanged`. It may also have dependency properties. The generator uses the most specific +> mechanism that can reach the property you named. So a plain C# property on a `DependencyObject` still uses +> `PropertyChanged`. [Which mechanism wins](#which-mechanism-wins) lists the order. + +Observing before a change needs the type to raise an event before the value is replaced. Some types do not. For +those, `WhenChanging` reads the value once and then stays silent. RXUIBIND004 warns you about this when you +build. A WPF dependency property is the exception. It keeps a live subscription and delivers each new value. + +## The generator checks each property in a path + +`x => x.Address.City` names two properties. They can use different mechanisms. `Address` might be a plain +property on a view model that raises `PropertyChanged`. `City` might be a dependency property on a WPF control. + +The generator checks each property on its own when you build. It writes the code to attach to each one. + +```csharp +// Address: INotifyPropertyChanged on the view model. +// City: a dependency property on the control it holds. +vm.WhenChanged(x => x.Address.City); +``` + +When `Address` is replaced, the subscription detaches from the old `Address` and attaches to the new one. You +would otherwise write this part by hand, and it is easy to get wrong. + +> [!WARNING] +> If a property in the path raises no change event, replacing it cannot be detected. Properties below it can +> still be observed on the initial object. The analyzer reports RXUIBIND010 when you build. + +## Trimming and NativeAOT + +For example, observing a WinForms text box uses its own change event: + +```csharp +var changes = textBox.WhenChanged(x => x.Text); +``` + +The central framework calls are direct property access and event subscription: + +```csharp +EventHandler handler = (_, _) => observer.OnNext(textBox.Text); +textBox.TextChanged += handler; +// When the subscription is disposed: +textBox.TextChanged -= handler; +``` + +The complete observation also delivers the initial value and handles disposal. Ordinary JIT projects benefit +from avoiding runtime expression analysis and property lookup, keeping values typed, and catching unsupported +bindings during the build. Trimming and NativeAOT support are additional benefits. + +Bindings with property paths known at build time support `PublishTrimmed` and `PublishAot`. Use the normal +binding APIs with inline property lambdas. The `Unsafe` APIs use reflection and carry trimming warnings. +Custom providers remain responsible for their own trimming and NativeAOT requirements. + +## Compiler requirements + +Use supported build tools and C# 7.3 or later. + +### Which compiler you have + +You do not choose the compiler directly. It comes with your build tools. + +- Building in Visual Studio, or with Visual Studio's `msbuild`, uses the compiler that ships with that Visual + Studio version. +- Building with `dotnet build` uses the compiler that ships with that .NET SDK version. + +| Your build tools | Support | +|------------------|---------------------------------------| +| Visual Studio 2022 17.13 or later, Visual Studio 2026, or .NET SDK 9.0.200 or later | Supported | +| Visual Studio 2022 17.8 to 17.12, or .NET SDK 8.0.100 to 9.0.1xx | Supported, with call-site restrictions reported by RXUIBIND009 | +| Anything older | Not supported. The build fails with RXUIBIND100. | + +Microsoft's [Roslyn version table](https://learn.microsoft.com/en-us/visualstudio/extensibility/roslyn-version-support) +lists the compiler in each Visual Studio version. + +### .NET Framework projects + +A .NET Framework project gets the same features as a .NET project. It needs the SDK-style project format and new +enough build tools. An SDK-style project file names the SDK on its first line and sets a target framework: + +```xml + + + net472 + + +``` + +Build that project with Visual Studio 2022 17.13 or later, or with `dotnet build` on .NET SDK 9.0.200 or later. +The C# 7.3 language version used by .NET Framework projects is supported. + +An old-style project file has no `Sdk` attribute and lists its source files one by one. It still works. It uses the +compiler from the Visual Studio that builds it. + +### Build properties + +Two build properties change this. + +- Set `ReactiveUIBindingUseInterceptors` to `false` to use the overloads on a compiler that can intercept. +- Set `ReactiveUIBindingEmitGeneratedCodeMarkers` to `false` to drop the `// ` header from + generated files. Analyzer and compiler warnings inside those files then show up. + +## When nothing claims the call + +Some call sites cannot be read when you build. Examples are a lambda stored in a variable, an expression built +at run time, and a call on a generic type parameter `T`. None of them name a path the generator can see. + +For those call sites, call the `Unsafe` overload. It uses reflection. Reflection looks up each property by name +while the app runs. A trimmer cannot see those lookups, so an `Unsafe` overload may break after trimming or +ahead-of-time publishing. The other overloads keep working. + +When nothing was generated for a call site, the plain method throws. The error message names the `Unsafe` +overload to use: + +```csharp +Expression> selector = x => x.Name; + +vm.WhenChanged(selector); // throws, and names WhenChangedUnsafe +vm.WhenChangedUnsafe(selector); // walks the path by reflection +``` + +Fourteen methods have an `Unsafe` twin. + +| Resolved when you build | Resolved by reflection | +|-------------------------|------------------------| +| `WhenChanged` | `WhenChangedUnsafe` | +| `WhenChanging` | `WhenChangingUnsafe` | +| `WhenAnyValue` | `WhenAnyValueUnsafe` | +| `WhenAny` | `WhenAnyUnsafe` | +| `WhenAnyObservable` | `WhenAnyObservableUnsafe` | +| `BindOneWay` | `BindOneWayUnsafe` | +| `BindTwoWay` | `BindTwoWayUnsafe` | +| `OneWayBind` | `OneWayBindUnsafe` | +| `Bind` | `BindUnsafe` | +| `BindTo` | `BindToUnsafe` | +| `BindCommand` | `BindCommandUnsafe` | +| `BindInteraction` | `BindInteractionUnsafe` | +| `InvokeCommand` | `InvokeCommandUnsafe` | +| `ToProperty` | `ToPropertyUnsafe` | + +Every `Unsafe` overload carries `[RequiresUnreferencedCode]`. The plain overloads carry none. So a +`PublishTrimmed` or `PublishAot` build warns about each call that uses reflection, and about nothing else. +RXUIBIND021 reports every plain call that nothing was generated for, whatever the reason. RXUIBIND001, RXUIBIND006 +and RXUIBIND009 name some of the reasons. + +The scheduler overloads split the same way. Both kinds live on `ReactiveSchedulerExtensions`. + +Two members always use reflection, so their plain names carry the attribute. + +- `WhenAnyDynamic`. See [Observing a path built at run time](#observing-a-path-built-at-run-time). +- The object-typed `ResolveView` on the view locator. See [The view locator](#the-view-locator). + +## Members written by another source generator + +The generator reads your code as you wrote it. It never sees what another source generator adds, because no +generator sees another's output. A call that binds such a member has nothing to read, so nothing is generated for it. + +The members ReactiveUI.SourceGenerators writes are the exception. The generator reads that package's attributes and +follows its rules for what each one writes, so these members bind like any other. + +| Attribute | What the generator reads | +|-----------|--------------------------| +| `[Reactive]` on a field | A public property named from the field: `_name`, `name` and `m_name` become `Name`. Its setter follows `SetModifier`. | +| `[Reactive]` on a partial property | The property you declared. | +| `[ReactiveCollection]` on a field | A public read-write property, named the same way. | +| `[BindableDerivedList]` on a field | A read-only property, named the same way, with the accessibility `AccessModifier` gives it. | +| `[ReactiveCommand]` on a method | A `ReactiveCommand` property named from the method, with `Async` dropped and `Command` added. | +| `[IReactiveObject]` on a class | The class implements `IReactiveObject`, so its properties raise change notifications. | + +```csharp +public partial class ProfileViewModel : ReactiveObject +{ + [Reactive] + private string _displayName = "Ada"; + + [ReactiveCommand] + private void Save() => Saves++; + + public int Saves { get; private set; } +} + +profile.WhenAnyValue(x => x.DisplayName); // generated +view.BindCommand(profile, x => x.SaveCommand, v => v.Save); // generated +``` + +A member any other source generator adds is not seen. RXUIBIND021 reports each call that binds one, because the call +throws when it runs. Declare the member yourself as a partial property, or call the `Unsafe` overload. + +### Observing from code a generator writes + +The reverse holds too: code another source generator writes cannot call `WhenAnyValue`, because this generator never +sees that call. `ObservedProperty` gives such code the same observation without a generated binding. Hand-written code +calls `WhenAnyValue`. + +| Generated code wants | It calls | +|----------------------|----------| +| `WhenAnyValue(x => x.Name)` | `ObservedProperty.Create(source, static x => x.Name, static x => x.Name)` | +| `WhenAnyValue(x => x.Name, x => x.Age)` | `ObservedProperty.Create(source, ...Name..., ...Age...)`, with an optional selector | +| `WhenAnyValue(x => x.Home.City)` | `ObservedProperty.Create(source, ...Home...).Then(static h => h.City, static h => h.City)` | +| `WhenAnyObservable(x => x.Messages)` | `ObservedProperty.Create(source, ...Messages...).Switch()` | + +Each property is passed twice: as a lambda that names it, and as a delegate that reads it. The compiler builds the +lambda from metadata, so nothing uses reflection, and trimming and ahead-of-time publishing are safe. The types it +composes are the ones a generated binding uses, so the values match. `ObservedProperty` observes one or two properties; +`Then` and `Switch` extend either to longer paths. + +### Controls named in XAML + +MAUI and Avalonia declare a field for each control a page names in XAML, and they do it with a source generator. The +generator reads those pages itself, so `Bind`, `OneWayBind` and `BindCommand` reach the named controls: + +```csharp +// LoginPage.xaml: +this.Bind(ViewModel, vm => vm.UserName, v => v.UserName.Text); // generated +``` + +- **MAUI:** each `x:Name` is a field, `private` unless `x:FieldModifier` says otherwise. Generated code cannot reach a + private field, so give a bound control `x:FieldModifier="internal"`. +- **Avalonia:** each `x:Name` or `Name` is a field, with the accessibility `AvaloniaNameGeneratorDefaultFieldModifier` + gives it, `internal` by default. +- **WPF and WinUI:** their build writes the fields before the compiler runs, so the generator sees them without reading + the XAML. + +The pages reach the generator through the platform's own build, so there is nothing to set up. A control inside a +template gets no field, and a generic control named with `x:TypeArguments` is not read. + +## Installing + +``` +dotnet add package ReactiveUI.Binding +``` + +The generator and the analyzer ship inside that package. You do not need to reference anything else. + +If your app uses System.Reactive, install `ReactiveUI.Binding.Reactive` instead. It is the same library, built +against `System.Reactive.Concurrency.IScheduler`. Its namespaces start with `ReactiveUI.Binding.Reactive`. + +Reference one package or the other, never both. They share no type names. So both together put two copies of +every method in scope. + +## Supported frameworks + +| Target | Versions | Microsoft support ends | +|--------|----------|------------------------| +| .NET | 10.0, 11.0 | November 2028 for .NET 10 | +| .NET | 8.0, 9.0 | 10 November 2026 | +| .NET Framework | 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 | tied to the Windows version | +| .NET Framework | 4.6.2 | 12 January 2027 | + +> [!WARNING] +> .NET 8 and .NET 9 leave Microsoft support on 10 November 2026. This library drops them on that date. .NET +> Framework 4.6.2 leaves support on 12 January 2027, and this library drops it then. Before those dates, move to +> .NET 10 or later, or to .NET Framework 4.7 or later. See the +> [.NET support policy](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core) and the +> [.NET Framework support policy](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-framework). + +The WPF and WinForms packages target the .NET Framework versions and the Windows targets of .NET 8 to 11. + +The MAUI packages start at .NET 10. They add Android, iOS, macOS, Mac Catalyst and tvOS targets. The Apple +targets build only on Windows and macOS. + +The Avalonia packages target .NET 8 to 11. They are trim and NativeAOT safe. + +The Uno packages target the Uno Platform heads of .NET 10 and 11: desktop, WebAssembly, Android, iOS and Windows. + +NativeAOT works on .NET 8 and later. Only the generated code runs there. The `Unsafe` overloads compile +expressions at run time, and NativeAOT cannot do that. + +## Packages + +Fifteen packages ship. Each binding runtime package carries the generator and the analyzer. The platform packages +get them through the runtime package. + +| Package | What it is | +|---------|------------| +| `ReactiveUI.SourceGenerators` | The attribute generators: `[Reactive]`, `[ReactiveCommand]`, `[IViewFor]` and the rest. See [its README](../src/ReactiveUI.SourceGenerators/README.md). | +| `ReactiveUI.Binding` | The runtime library. It has lightweight observables and no System.Reactive dependency. | +| `ReactiveUI.Binding.Reactive` | The same library, built against System.Reactive's `IScheduler`. | +| `ReactiveUI.Binding.Wpf` | WPF dependency-property observation. | +| `ReactiveUI.Binding.Wpf.Reactive` | The same, for a System.Reactive app. | +| `ReactiveUI.Binding.WinForms` | WinForms component observation. | +| `ReactiveUI.Binding.WinForms.Reactive` | The same, for a System.Reactive app. | +| `ReactiveUI.Binding.Maui` | MAUI bindable-property observation. | +| `ReactiveUI.Binding.Maui.Reactive` | The same, for a System.Reactive app. | +| `ReactiveUI.Binding.Avalonia` | Avalonia property observation and command binding. | +| `ReactiveUI.Binding.Avalonia.Reactive` | The same, for a System.Reactive app. | +| `ReactiveUI.Binding.Uno` | Uno Platform view thread routing. | +| `ReactiveUI.Binding.Uno.Reactive` | The same, for a System.Reactive app. | +| `ReactiveUI.Binding.SourceGenerators` | MSBuild props and targets only. A compatibility package. | +| `ReactiveUI.Binding.Analyzer` | The analyzer project. Its files ship inside the runtime packages. | + +## Supported APIs + +| API | What it does | Properties per call | +|-----|--------------|--------------------:| +| `WhenChanged` | Observes a property after it changes. | 16 | +| `WhenChanging` | Observes a property before it changes. | 16 | +| `WhenAnyValue` | Observes a property after it changes, like `WhenChanged`. | 16 | +| `WhenAny` | Observes properties and hands each change to a selector. | 12 | +| `WhenAnyObservable` | Observes properties that hold observables, and switches between them. | 12 | +| `WhenAnyDynamic` | Observes a path you built as an `Expression`. | 12 | +| `BindOneWay` | Writes a source property to a target property. | 1 each side | +| `BindTwoWay` | Carries a property both ways. | 1 each side | +| `OneWayBind` | A one-way binding, written view first. | 1 each side | +| `Bind` | A two-way binding, written view first. | 1 each side | +| `BindTo` | Writes an observable's values to a target property. | 1 | +| `BindCommand` | Binds a command to a control's event. | 1 | +| `BindInteraction` | Registers a handler for an interaction a property holds. | 1 | +| `InvokeCommand` | Runs a command with each value an observable produces. | 1 | +| `ToProperty` | Backs a read-only property with the latest value an observable produces. | 1 | + +Each of them reads a single property, a path such as `x => x.Address.City`, or several properties at once. When +an object in the middle of a path is replaced, the subscription moves to the new object. + +`BindOneWay`, `BindTwoWay`, `OneWayBind` and `Bind` also accept a scheduler. The observation methods do not. + +## Examples + +### Observing a property + +```csharp +// One property. +IObservable name = vm.WhenChanged(x => x.Name); + +// A path. Replacing Address moves the subscription to the new Address. +IObservable city = vm.WhenChanged(x => x.Address.City); + +// Several properties, combined by a selector. +IObservable fullName = vm.WhenChanged( + x => x.FirstName, + x => x.LastName, + (first, last) => $"{first} {last}"); + +// Before the change. The type has to raise PropertyChanging. +IObservable before = vm.WhenChanging(x => x.Name); +``` + +### Binding + +```csharp +// One way. +IDisposable binding = vm.BindOneWay(view, x => x.Name, x => x.NameLabel); + +// One way, converting on the way through. +IDisposable converted = vm.BindOneWay(view, x => x.Age, x => x.AgeLabel, age => $"Age: {age}"); + +// Both ways. +IDisposable twoWay = vm.BindTwoWay(view, x => x.Name, x => x.NameTextBox); + +// Both ways, with a converter per direction. +IDisposable pair = vm.BindTwoWay( + view, + x => x.Age, + x => x.AgeTextBox, + age => age.ToString(), + text => int.TryParse(text, out var n) ? n : 0); + +// On a scheduler. +IDisposable scheduled = vm.BindOneWay( + view, x => x.Name, x => x.NameLabel, scheduler: RxApp.MainThreadScheduler); +``` + +`OneWayBind` and `Bind` are the same bindings, written with the view first: + +```csharp +IDisposable oneWay = view.OneWayBind(vm, x => x.Name, x => x.NameLabel); +IDisposable twoWay = view.Bind(vm, x => x.Name, x => x.NameTextBox); +``` + +### Running a command + +```csharp +// The command lives on a view model property. Each value becomes the command parameter, +// and a value CanExecute refuses is dropped. +IDisposable invocation = searchText.InvokeCommand(vm, x => x.Search); + +// The caller holds the command, so there is no property to observe. +IDisposable direct = searchText.InvokeCommand(vm.Search); +``` + +A `ReactiveCommand` works like any other `ICommand`. The parameter arrives as `object`, not as the command's +declared input type. + +### Backing a property with an observable + +`ToProperty` turns an observable into a read-only property. It returns an `ObservableAsPropertyHelper`, a +helper that keeps the latest value. Each new value raises your type's own change notification for the property. + +```csharp +public partial class PersonViewModel : INotifyPropertyChanged +{ + private readonly ObservableAsPropertyHelper _fullName; + + public PersonViewModel(IObservable fullNames) => + _fullName = fullNames.ToProperty(this, x => x.FullName); + + public event PropertyChangedEventHandler? PropertyChanged; + + public string FullName => _fullName.Value; +} +``` + +A type can only raise its own events, so the generator needs a way in. It uses the first of these that your type +offers: + +| Your type | How the generator raises the notification | +|-----------|-------------------------------------------| +| A ReactiveUI `ReactiveObject`, or another `IReactiveObject` | ReactiveUI's own `RaisePropertyChanged`, so suppressed and delayed notifications still work. | +| A public or internal `RaisePropertyChanged`, `OnPropertyChanged`, `NotifyPropertyChanged` or `NotifyOfPropertyChange` method | Calls that method. | +| A `partial` type | Adds one small member to your type. The member invokes your `PropertyChanged` event, or calls a protected raise method your base class has. | + +When the raise method takes `PropertyChangedEventArgs`, the generator passes one cached instance per property. So +raising a notification allocates nothing. + +Name the property with a lambda of the form `x => x.Property`, or with a constant such as `nameof(Property)`. +The overloads that take an initial value, an initial value factory, `deferSubscription`, a scheduler, or an `out` +parameter for the helper all work the same way. + +Below C# 13, name the initial value of a `string` property when you name the property with a lambda: +`ToProperty(this, x => x.Title, initialValue: "(untitled)")`. Without the name the compiler cannot choose an overload, +and RXUIBIND014 tells you which argument to name. From C# 13, and with a `nameof` name at any version, the plain +argument works. + +RXUIBIND012 warns you when the generator has no way to raise your type's notifications. RXUIBIND013 warns you +when it cannot read the property's name. Either way the call throws when it runs. Call `ToPropertyUnsafe` for those +properties instead. It reads the name and finds the raise member by reflection, so it also reaches a protected raise +method or a plain `PropertyChanged` event on a type that is not `partial`. + +#### The helper + +`ObservableAsPropertyHelper` holds the latest value and raises the notification for each new one. + +| Member | What it does | +|--------|--------------| +| `Value` | The latest value. A deferred helper subscribes the first time you read it. | +| `IsSubscribed` | Whether the helper follows its observable yet. | +| `ThrownExceptions` | The errors the observable produced. With no observer, an error is rethrown on the thread that produced it. | +| `Dispose()` | Stops following the observable. `Value` keeps the last value. | +| `Default(...)` | A helper that never changes, for a property with nothing to follow yet. | + +A helper that subscribes straight away announces its initial value once, then each value that differs from the one +before. A deferred helper announces nothing until you read `Value`. Values arrive in order, one at a time. Pass a +scheduler to raise the notifications on another thread. + +#### Declaring the property with `[ObservableAsProperty]` + +From C# 13 you can declare the property as `partial` and mark it `[ObservableAsProperty]`. The generator writes the +property's body and a field named after it, such as `_fullNameHelper`. You assign that field with `ToProperty`. + +```csharp +public partial class PersonViewModel : INotifyPropertyChanged +{ + public PersonViewModel(IObservable fullNames) => + _fullNameHelper = fullNames.ToProperty(this, x => x.FullName); + + public event PropertyChangedEventHandler? PropertyChanged; + + [ObservableAsProperty] + public partial string FullName { get; } +} +``` + +The attribute ships in the runtime package, so the generator adds no types to your assembly. Two projects that see +each other's internals both keep working. + +The attribute takes these options. + +| Option | Effect | +|--------|--------| +| `InitialValue` | What the property returns until you assign its helper. For a `string` property it is the value, such as `"none"`. For any other type it is a C# expression, such as `"1.5d"`, evaluated once. A non-nullable `string` property with no initial value returns `string.Empty`. | +| `ReadOnly` | Makes the helper field `readonly`, so only a constructor can assign it. | +| `UseProtected` | Makes the helper field `protected` rather than `private`, so a derived type can assign it. | + +```csharp +[ObservableAsProperty(InitialValue = "Loading", ReadOnly = true)] +public partial string Status { get; } +``` + +ReactiveUI's older source generator also accepted `[ObservableAsProperty]` on a field, on a method that returns an +observable, and on an observable property. Nothing is generated for those forms. RXUIBIND018 reports each one, with a +code fix that rewrites it as a partial property: + +- A field becomes a property named after it, without its `_` or `m_` prefix. Its initializer becomes `InitialValue`, and + its `Inheritance` becomes a `virtual`, `override` or `new` modifier. +- A method or an observable property keeps its declaration and gains a property named `PropertyName`, or its own name + followed by `Property`. The fix writes an `InitializeOAPH` method that assigns each helper, which your constructor + already calls. + +### Observing a path built at run time + +`WhenAnyDynamic` takes the path as an `Expression`, not a lambda. So you can build the path from a property name +or a setting. It observes 1 to 12 paths at once. Each count has an overload that reports only changed values, +and one that reports every value. + +```csharp +Expression chain = ((Expression>)(x => x.Address.City)).Body; + +IObservable city = vm.WhenAnyDynamic(chain, static c => (string?)c.Value); +``` + +The generator cannot read an expression built at run time. So `WhenAnyDynamic` walks the path by reflection. +Every overload carries `[RequiresUnreferencedCode]`, so a `PublishAot` build reports each call. When you know the +path before you build, `WhenChanged` and `WhenAny` observe the same thing without reflection. + +## The view locator + +A view locator finds the view for a view model. Implement `IViewFor`, and the generator registers the view for +you. This works with both the `ReactiveUI.Binding` and `ReactiveUI.Binding.Reactive` packages. + +```csharp +public class LoginView : IViewFor +{ + public LoginViewModel ViewModel { get; set; } + + object IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (LoginViewModel)value; + } +} + +IViewFor? view = ViewLocator.GetCurrent().ResolveView(myViewModel); +``` + +Three attributes change what is registered. + +| Attribute | Effect | +|-----------|--------| +| `[ViewContract("name")]` | Registers the view under a contract, so one view model can have several views. Pass the contract to `ResolveView`. | +| `[SingleInstanceView]` | Keeps one instance instead of creating a view each time. Do not use it for a view that appears more than once in the tree. | +| `[ExcludeFromViewRegistration]` | Leaves the view out of the generated registration. | + +A view that ReactiveUI.SourceGenerators completes with `[IViewFor]` or `[IViewFor("TypeName")]` is registered too. +That generator adds `IViewFor` to the class, so the generated lookup checks for the interface when it resolves the +view. A class it leaves alone resolves to null. A `RegistrationType` of `LazySingleton` or `Constant` keeps one +instance, created the first time the view resolves. + +```csharp +[ViewContract("compact")] +public class CompactDashboardView : IViewFor { } + +public class FullDashboardView : IViewFor { } + +var compact = ViewLocator.GetCurrent().ResolveView(vm, "compact"); +var full = ViewLocator.GetCurrent().ResolveView(vm); +``` + +`ResolveView` looks in these places, in order. + +1. The generated lookup. It is a type switch with no reflection. +2. A mapping you added at run time with `Map()`. +3. The service locator, `Splat.AppLocator.Current`. Only the generic `ResolveView` and `ResolveViewUnsafe` ask it. + +`ResolveView` with a view model held as an `object` stops after the mappings. Asking the service locator would close +`IViewFor<>` over the view model's runtime type, which an ahead-of-time build cannot do. So a view registered only as +`IViewFor` in the service locator is not found there. When it finds nothing, it logs a warning that says so. +`ResolveViewUnsafe` adds the service locator step, and carries `[RequiresDynamicCode]`. RXUIBIND020 points out a +registration that only the service locator knows about. + +In the generated lookup, a view registered under the requested contract comes before the default view. The default +view answers only a request with no contract. A request under a contract that no view claims moves on to your +mappings. The view instance comes from the first of these that has one. + +1. The service locator. +2. The cached instance, when the view is marked `[SingleInstanceView]`. The first resolution creates it. +3. A new instance from the view's parameterless constructor. + +The cache is set with `Interlocked.CompareExchange`. So two threads resolving at once share one instance. + +Both `ResolveView` overloads are safe for ahead-of-time publishing. `ResolveViewUnsafe` is not. + +## Which mechanism wins + +Each mechanism has a score. The highest-scoring mechanism that can reach the property you named wins. + +| Mechanism | Type it keys on | Score | +|-----------|-----------------|------:| +| UIKit control notifications | Supported text, selection, date and switch properties | 30 | +| UIKit value changes | `UIKit.UIControl.Value` with `ValueChanged` | 20 | +| AppKit control notifications | Supported `AppKit.NSControl` value properties | 20 | +| Apple KVO | `Foundation.NSObject` | 15 | +| IReactiveObject | `ReactiveUI.IReactiveObject` | 10 | +| WinForms component | `System.ComponentModel.Component` | 8 | +| WinUI bindable property | `Microsoft.UI.Xaml.DependencyObject` | 6 | +| Uno dependency property | `Windows.UI.Xaml.DependencyObject` | 6 | +| INotifyPropertyChanged | `System.ComponentModel.INotifyPropertyChanged` | 5 | +| Android view | `Android.Views.View` | 5 | +| WPF dependency property | `System.Windows.DependencyObject` | 4 | +| Plain property | A readable property without notifications | 1 | + +A mechanism has to reach the property. A plain C# property on a dependency object is not a dependency property. A +component property with no `{PropertyName}Changed` event has nothing to attach to. Both fall through to the next +mechanism down. + +A plain property emits its current value when you subscribe. It cannot report later changes. + +`INotifyPropertyChanged` and `Android.Views.View` share a score. `INotifyPropertyChanged` wins that tie. + +An `ICreatesObservableForProperty` you register yourself uses the same scores. It takes the property when it +scores higher. The generated code wins a tie. + +Call `ReactiveUI.Binding.Fallback.ObservationAffinityChecker.Refresh()` after changing observation-provider +registrations so subsequent subscriptions use the updated registrations. + +### Platform adapters + +Platform support uses the framework references in your application. No extra binding platform package or +platform registration is needed for these APIs. + +`BindCommand` supports Android `Click`, UIKit target/action touch handling, refresh-control `ValueChanged`, +bar-button `Clicked`, and AppKit `Target`/`Action`. It follows command and control replacements, tracks streamed +or property-based parameters, and detaches handlers when disposed. Registered command binders take over when +their score exceeds the selected adapter's score. + +`ICreatesCommandBinding` carries no trimming attributes, so a generated binding that hands a command to a +registered binder stays safe to trim and to publish ahead of time. A binder you write must not rely on reflection +that trimming can break. + +| Command mechanism | Score | +|-------------------|------:| +| UIKit refresh control or bar button | 10 | +| UIKit touch target or Android click | 9 | +| `Command` and `CommandParameter` properties | 5 | +| AppKit target/action or an event with `Enabled` | 4 | +| An event without `Enabled` | 3 | + +Supplying `toEvent` selects that event instead of the control's default command mechanism. + +`BindTo` and `OneWayBind` can populate WinForms panel and table-layout control collections from collections of +derived controls. They update the existing collection, including a read-only `Controls` property. They suspend +layout during the write and resume it even when a collection operation throws. The generated setter scores 10; +a registered `ISetMethodBindingConverter` must score higher to replace it. + +Generated conversions cover numeric, boolean, GUID, date and time strings; numeric nullable values; URIs; +framework visibility enums; and Apple `NSDate` values. Visibility conversions honor the framework's inversion +and hidden-value hints. Registered typed converters must beat the generated score. An explicit converter +override takes precedence over conversion voting. + +## Which thread a binding writes on + +A UI framework lets only one thread touch a view. That thread is the view's owning thread. A view model can raise +a change on any thread. So a binding moves each write to the owning thread. + +The binding asks the object it writes to for its **sequencer**: the ReactiveUI.Primitives scheduler that runs work +on the object's owning thread. The sequencer says whether the calling thread owns it, and queues the write when it +does not. + +| Target | Sequencer | +|--------|-----------| +| WPF `DispatcherObject` | `DispatcherSequencer` for the object's dispatcher, at normal priority | +| WinForms `Control` | `ControlSequencer` for the control | +| MAUI `BindableObject` | `MauiDispatcherSequencer` for the object's dispatcher | +| Avalonia `AvaloniaObject` | `AvaloniaScheduler` for the object's dispatcher, at background priority | +| Uno `DependencyObject` | `DispatcherQueueSequencer` for the object's dispatcher queue | + +WPF and Avalonia can run several UI threads. Each window belongs to one of them. Asking the object sends each write +to the right one. + +The binding asks on every write. + +- A write on the owning thread runs straight away when no earlier write is waiting. Set a property on the UI + thread, and the control has the new value on the next line. +- A write from another thread waits for the owning thread. A write on the owning thread also waits while an + earlier write is waiting. +- Only the latest value waits. A newer change replaces the waiting one, so a burst of changes becomes one write. + +Some objects have no owning thread. The binding writes to them straight away. + +- A frozen WPF `Freezable`. +- A WinForms control with no window handle yet. Once the handle exists, writes go to the thread that created it. +- A MAUI object with no dispatcher, such as a view in a unit test. +- Any object that is not a WPF, WinForms, MAUI, Avalonia or Uno object, such as a plain view model. + +Every binding API does this: `BindOneWay`, `BindTwoWay`, `OneWayBind`, `Bind`, `BindTo`, and `BindCommand` when +it binds a new command to the control. Each `Unsafe` twin does the same through the registered invokers. + +### Invokers + +An `IViewThreadInvoker` does the check and the queueing for one platform. Each platform package has a module +that registers one: `WpfBindingModule`, `WinFormsBindingModule`, `MauiBindingModule`, `AvaloniaBindingModule` or +`UnoBindingModule`. +You can register your own. An invoker you register is asked first. + +To support another platform, derive from `SequencerViewThreadInvoker` and return the +sequencer that owns an object from `SequencerFor`. The sequencer has to implement `IThreadAffineSequencer`, as every +ReactiveUI.Primitives UI sequencer does. Return null for an object that has no owning thread. + +A generated binding knows its target's type when it compiles. For a WPF, WinForms, MAUI, Avalonia or Uno target, it +carries that platform's invoker. So it routes writes even when the platform module is not registered. + +An `Unsafe` binding only finds its target's type while the app runs. It uses the registered invokers alone. Register +the platform module when you use `Unsafe` bindings. + +### Choosing the thread yourself + +> [!TIP] +> Pass a scheduler to pick the thread for one binding: `vm.BindOneWay(view, x => x.Name, x => x.NameLabel, +> scheduler: someScheduler)`. That binding skips the check. + +To change it for every binding, set `BindingSchedulers.MainThread`, or call +`BindingSchedulers.UseSynchronizationContext(context)`. Only writes from another thread go through it. A write on +the owning thread still runs straight away. So does a write to an object no invoker claims. + +## Rx library compatibility + +Rx means the Reactive Extensions: libraries of operators for `IObservable`. This library's observables and +operators come from **ReactiveUI.Primitives**. `ReactiveUI.Binding` depends on no other Rx library. + +`ReactiveUI.Binding.Reactive` uses System.Reactive through **ReactiveUI.Primitives.Reactive**. Neither package +references System.Reactive directly. + +| Package | Depends on | Scheduler type | +|---------|------------|----------------| +| `ReactiveUI.Binding` | `ReactiveUI.Primitives` | `ISequencer` | +| `ReactiveUI.Binding.Reactive` | `ReactiveUI.Primitives.Reactive` | `IScheduler` | + +Every binding returns a standard .NET `IObservable`. So you are not tied to either library. + +| Library | How it works | +|---------|--------------| +| ReactiveUI.Primitives | The default. Reference `ReactiveUI.Binding`. | +| System.Reactive | Reference `ReactiveUI.Binding.Reactive`. | +| R3 | R3 has its own `Observable` class. Convert with `.ToObservable()`. | +| Anything else | Any library that accepts `IObservable` works as it is. | + +## Diagnostics + +The analyzer ships inside the runtime packages. It reports these diagnostics. + +| ID | Severity | What it means | +|----|----------|---------------| +| RXUIBIND001 | Info | The expression is not an inline lambda, so nothing is generated. Call the `Unsafe` overload, or the call will throw. | +| RXUIBIND002 | Warning | The type has no observable property and raises no change event. | +| RXUIBIND003 | Warning | The expression reads a private or protected member. A generated extension method cannot read it. | +| RXUIBIND004 | Warning | The type raises no before-change event. `WhenChanging` reads the value once and then stays silent. | +| RXUIBIND005 | Info | The source implements `INotifyDataErrorInfo`. No code is generated for validation state. | +| RXUIBIND006 | Warning | The path contains an indexer, a static field, a read-only field at its end, or a method call. Properties and instance fields are generated; a field is read once, because it raises no notification. | +| RXUIBIND007 | Warning | The control named by `BindCommand` has no default event to bind. Pass `toEvent`. | +| RXUIBIND008 | Warning | The property named by `BindInteraction` does not implement `IInteraction`. | +| RXUIBIND009 | Warning | The generated overload cannot be reached from this file, so the call throws. Not reported when an interceptor takes the call. | +| RXUIBIND010 | Warning | The path passes through a type that raises no change event. The value is read once, and the path is followed no further. | +| RXUIBIND011 | Warning | The call resolved to ReactiveUI's own extension method. Nothing is generated, and the call uses reflection. | +| RXUIBIND012 | Warning | Generated code has no way to raise the `ToProperty` source's notifications. Make the type `partial`, add a raise method, or call `ToPropertyUnsafe`. | +| RXUIBIND013 | Warning | `ToProperty` names its property in a form the generator cannot read. Use `x => x.Property` or a constant, or call `ToPropertyUnsafe`. | +| RXUIBIND014 | Error | Below C# 13, a `string` initial value passed by position makes a `ToProperty` call ambiguous. Write it as `initialValue: ...`. | +| RXUIBIND015 | Warning | The call names a private or protected nested type, which generated code cannot reach, so nothing is generated and the call throws. Make the type `internal` or `public`, or call the `Unsafe` overload. | +| RXUIBIND016 | Warning | The call is made through a type parameter of the calling code, so generated code cannot name its types and the call throws. Call the `Unsafe` overload. | +| RXUIBIND017 | Warning | The binding writes to a WPF, WinForms, MAUI or Avalonia object, but the matching `ReactiveUI.Binding.Wpf`, `.WinForms`, `.Maui` or `.Avalonia` package is not referenced, so writes from another thread are not marshalled onto the object's thread. Reference the platform package. | +| RXUIBIND018 | Warning | `[ObservableAsProperty]` marks something other than a partial get-only instance property, so nothing is generated. For a field, a method or an observable property, a code fix rewrites it as a partial property (C# 13). | +| RXUIBIND019 | Warning | A method marked `[ObservableAsProperty]` takes parameters, so it cannot supply a property's values. | +| RXUIBIND020 | Info | A view is registered as `IViewFor` in the service locator, and this project has no generated view and no `Map` for `T`. `ResolveView` with a view model held as an `object` does not find it. Add it with `Map`, or call `ResolveViewUnsafe`. | +| RXUIBIND021 | Warning | Nothing was generated for the call, so it throws when it runs. A lambda the generator cannot read, or a member another source generator adds, are common causes. Name each member directly, declare a generated member as a partial property, or call the `Unsafe` overload. | + +The package's build targets report one error of their own. + +| ID | What it means | +|----|---------------| +| RXUIBIND100 | The compiler is older than Roslyn 4.8, so no generator would load. Upgrade to Visual Studio 2022 17.8 or the .NET 8.0.100 SDK. | + +## Where this differs from ReactiveUI + +The sections below list every way a binding here behaves differently from ReactiveUI. + +### Bindings are generated, not reflected + +ReactiveUI does the generator's job while the app runs. It compiles the lambda into a delegate, then finds each +property by name. That costs time on every binding. A trimmer cannot see which members those lookups need, so it +may remove them. + +The generated code does that work once, when you build, so it runs faster and allocates less. ReactiveUI's engine +compiles expressions at run time, so it cannot run under NativeAOT. + +### ReactiveUI's method names are kept + +`WhenAnyValue`, `OneWayBind` and `Bind` use ReactiveUI's names. They make code written for ReactiveUI easier to +move across. + +### Observation delivery is serialized + +Property observations deliver on the raising thread when the delivery gate is available. A competing producer +waits up to 20 ms, then hands its notification to the delivering thread. Subscriber calls do not hold a lock, +so a subscriber can wait for another thread to update the same property. Observation APIs leave scheduling +to the caller. + +After-change and custom-provider observations read inside the gate and collapse contended changes to the +latest value. A change raised by the subscriber is delivered after that subscriber returns. Before-change +observations capture values before the write and preserve their order; a nested notification on the delivering +thread reaches the subscriber before the nested setter writes. Disposal stops pending delivery. + +### `TriggerUpdate` and `signalViewUpdate` use `BindUnsafe` + +The view-first `BindUnsafe` overloads accept an update stream and `TriggerUpdate`, with either registered +converters or explicit conversion delegates. These overloads resolve property paths by reflection and carry +`RequiresUnreferencedCode`; calling them produces a trimming diagnostic. Generated bindings use the two +property lambdas and do not offer these parameters. + +`ViewToViewModel` is the default. A supplied stream replaces the view's change notifications, so editing the +view writes back only when the stream signals. With `ViewModelToView`, the stream drives model-to-view updates +after the initial model notification, and the view's own notifications always participate. A null stream observes +both properties in either mode; pass a typed null such as `(IObservable?)null` for type inference. + +Both sides are wired before a single initial signal writes from view model to view. Each signal reads the +current values when delivered, converts in its selected direction, and skips a write when the converted value +equals the destination. Disposing the binding disconnects both directions and the supplied stream. + +### Every binding writes on the thread that owns the view + +ReactiveUI moves a write to the UI thread only on WPF. It does so for a two-way `Bind`, and when it swaps a +control's `Command`. Its other bindings write on the thread that raised the change. So do all its WinForms and +MAUI bindings. + +Here every binding moves its writes, on all three platforms. See +[Which thread a binding writes on](#which-thread-a-binding-writes-on). A background update that throws under +ReactiveUI works here. An update from another thread that ReactiveUI applied at once arrives one turn of the +message loop later. + +Where ReactiveUI does move a write, the order is the same. A write on the owning thread runs straight away. A +write from another thread goes through the main-thread scheduler. Set `BindingSchedulers.MainThread` to +ReactiveUI's main-thread scheduler to use the same scheduler. + +A burst of changes from another thread is handled differently. ReactiveUI's one-way bindings and `BindTo` write +every value, on the thread that raised it. Its two-way `Bind` queues one signal per change and reads the current +value when each signal runs. Here every binding writes only the latest value, once. A binding's change stream +skips the values in between. + +### A binding made through a type parameter is not generated + +A generated overload has to name the bound types. A call through a type parameter names none. The type is only +known once code fills in the parameter. So the generator leaves those calls to the plain overload. A generic +binding helper then compiles, but throws when it runs. An overload that named a type parameter would break your +build instead. From the helper, call the `Unsafe` twin to bind by reflection. + +### A property with no change event is reported when you build + +ReactiveUI logs a warning the first time it observes a property on a type that raises no change event. +RXUIBIND010 reports the same thing when you build. A generator can only report it then. The observation behaves +the same either way. The value is read when you subscribe; replacing that property cannot be detected. + +### `ToProperty` works without a ReactiveUI base class + +ReactiveUI's `ToProperty` only accepts an `IReactiveObject`. Here it accepts any class the generator can raise +notifications for, including a plain `INotifyPropertyChanged` type. A ReactiveUI object still raises through +ReactiveUI, so its `Changed` stream and suppressed notifications behave as before. + +ReactiveUI's `ToProperty` takes the property as an expression tree. The compiler builds that tree every time the +line runs, and ReactiveUI reads the property name from it by reflection. Here the property is a plain lambda. The +generator reads its name when you build, and the lambda is never called. So creating the property builds no tree, +uses no reflection, and passes one cached delegate per notification instead of new delegates and a closure. + +A property backed this way costs one small helper. Raising each new value allocates nothing, unless your own raise +method takes the property name as a string and builds new event args. + +The helper type has ReactiveUI's name, `ObservableAsPropertyHelper`, in the `ReactiveUI.Binding` namespace. A +file that imports both `ReactiveUI` and `ReactiveUI.Binding` has to name one of them in full, or give it an alias. + +### A helper delivers its values in order, on the thread that produced them + +ReactiveUI's helper raises its notifications through the current-thread scheduler. Here a helper with no scheduler +raises them straight away, on the thread that produced the value. A value produced while an earlier one is still +being delivered waits for it, whether it came from a notification handler or from another thread. So the +notifications never overlap and always arrive in order. Pass a scheduler to raise them somewhere else. + +### An error nobody observes is rethrown where it happened + +ReactiveUI sends a helper's error to its default exception handler, which throws on the main thread. Here the error +goes to the helper's `ThrownExceptions` stream. When nothing observes that stream, the error is rethrown on the +thread that produced it. + +### A write that throws behaves the same + +A write that throws is logged against the bound expression. It is rethrown as a `TargetInvocationException` only +when it has an inner exception. The setter threw on the thread that raised the change, so no caller can catch it. +Swallowing the exception would hide the failure. + +## Contribute + +ReactiveUI.SourceGenerators uses an OSI-approved open source license. You can use and share it freely, +including for commercial work. We value everyone who takes part. We would love to have you, even if you have +never contributed to open source before. + +Ways to help: + +* [Answer questions on GitHub Discussions](https://github.com/reactiveui/ReactiveUI.SourceGenerators/discussions) +* [Share what you know and teach other developers](http://ericsink.com/entries/dont_use_rxui.html) +* Improve the docs where something is missing or unclear. +* Contribute code. + +## Sponsors + +[JetBrains](https://www.jetbrains.com/) gives ReactiveUI's maintainers licences for its tools through its +[open source support programme](https://www.jetbrains.com/community/opensource/). +[Anthropic](https://www.anthropic.com/) supports them with [Claude](https://claude.com/) through +[Claude for Open Source](https://claude.com/contact-sales/claude-for-oss). +[OpenAI](https://openai.com/) supports them with [Codex](https://openai.com/codex/) through +[Codex for Open Source](https://developers.openai.com/community/codex-for-oss). + +[![JetBrains](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/jetbrains.svg)](https://www.jetbrains.com/) +[![Claude by Anthropic](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/claude.svg)](https://claude.com/) +[![OpenAI](https://raw.githubusercontent.com/reactiveui/website/main/docs/images/sponsors/openai.svg)](https://openai.com/codex/) + +See [our sponsors](https://www.reactiveui.net/sponsors/) for more information. +JetBrains, Claude, Anthropic, OpenAI and Codex names and logos are trademarks of their respective owners. diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 227e4823..ce4ab484 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,61 +1,113 @@ + + + + + true + + + net8.0;net9.0;net10.0;net11.0 + + + net462;net47;net471;net472;net48;net481 + + + $(BindingCoreTargets) + $(BindingRuntimeTargets);$(BindingLegacyTargets) + + + net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0;net11.0-windows10.0.19041.0 + + + net10.0-windows10.0.19041.0;net11.0-windows10.0.19041.0 + + net10.0-android36.0;net11.0-android37 + net10.0-ios;net10.0-macos;net10.0-maccatalyst;net10.0-tvos;net11.0-ios;net11.0-macos;net11.0-maccatalyst;net11.0-tvos + + $(BindingMauiWindowsTargets) + $(BindingMauiTargets);net10.0;net11.0;$(BindingAndroidTargets) + $(BindingMauiTargets);$(BindingAppleTargets) + + + net10.0;net10.0-desktop;net10.0-browserwasm;net11.0;net11.0-desktop;net11.0-browserwasm;net10.0-android;net11.0-android + $(BindingUnoTargets);net10.0-windows10.0.19041.0;net11.0-windows10.0.19041.0 + $(BindingUnoTargets);net10.0-ios;net11.0-ios + + + $(BindingRuntimeTargets) + $(BindingCoreRuntimeTargets);$(BindingAppleTargets) + + + net8.0-windows;net9.0-windows;net10.0-windows;net11.0-windows + + + $(BindingWindowsTargets) + $(BindingLegacyTargets);$(BindingDesktopTargets);$(BindingWindowsTargets) + + + net10.0;net11.0 + net10.0-windows10.0.19041.0;net11.0-windows10.0.19041.0 + + + net10.0;net11.0 + + + $(BindingTestTargets) + $(BindingTestPlatformTargets) + + true + enable + latest + enable AnyCPU $(MSBuildProjectName.Contains('Tests')) + + + $(MSBuildProjectName.Contains('Benchmark')) + + + true + false + false embedded - .NET Foundation and Contributors - Copyright (c) .NET Foundation and Contributors - logo.png - README.md + Glenn Watson + Copyright (c) $([System.DateTime]::Now.ToString(yyyy)) ReactiveUI and Contributors MIT - https://reactiveui.net - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. Supports Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin Forms, Xamarin.TVOS, Tizen, WPF, Windows Forms, Universal Windows Platform (UWP) and the Uno Platform. - $(DefaultPackageDescription) - anaisbetts;chrispulman - mvvm;reactiveui;rx;reactive extensions;observable;LINQ;events;frp;xamarin;android;ios;mac;forms;monodroid;monotouch;xamarin.android;xamarin.ios;xamarin.forms;xamarin.mac;xamarin.tvos;wpf;net;netstandard;net462;winui;maui;tizen;unoplatform - https://github.com/reactiveui/ReactiveUI.SourceGenerators/releases - https://github.com/reactiveui/reactiveui.sourcegenerators + Source generator for ReactiveUI property observation and binding. Generates compile-time WhenChanged, WhenChanging, BindOneWay, and BindTwoWay implementations. + glennawatson + reactiveui;binding;source-generator;system.reactive + https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators + https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators/releases + https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators git - $(NoWarn);IDE0060;IDE1006;IDE0130;VSSpell001;RS2007;RS1038;NU5128 + README.md + true true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - enable - preview + logo.png + $(MSBuildThisFileDirectory) + true True latest - true - true true - true - true - - - true - - - - - - netstandard2.0 - - net8.0;net9.0;net10.0;net11.0;net462;net47;net471;net472;net48;net481 - - net8.0;net9.0;net10.0 - - - - - - net10.0-android - - net10.0-android;net10.0-ios;net10.0-maccatalyst - - net10.0-android;net10.0-ios;net10.0-maccatalyst;net10.0-windows10.0.19041.0 @@ -67,39 +119,74 @@ + + + <_Parameter1>en-US + $(AssemblyName).testconfig.json PreserveNewest - - + + + - - $(MSBuildThisFileDirectory) + + + + + + + + + + + true + - - - + + + - + + minor alpha.0 v - 2.7 + + + binding-v + 9.2 + + + + $(MSBuildThisFileDirectory)build\NoDeviceSelection.targets - + - + + + + true + false + false + false + $(TrackPublicApi) + + + - diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets new file mode 100644 index 00000000..a2386ccf --- /dev/null +++ b/src/Directory.Build.targets @@ -0,0 +1,44 @@ + + + $(AssemblyName) ($(TargetFramework)) + + + + + false + false + false + + Library + + + + $(DefineConstants);NET_45;XAML + + + $(DefineConstants);NETFX_CORE;XAML;WINDOWS_UWP + + + $(DefineConstants);MONO;UIKIT;COCOA + + + $(DefineConstants);MONO;COCOA + + + $(DefineConstants);MONO;UIKIT;COCOA + + + $(DefineConstants);MONO;UIKIT;COCOA + + + $(DefineConstants);MONO;ANDROID + + + $(DefineConstants);TIZEN + + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 3b90e35e..80e114d8 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -2,44 +2,90 @@ true true - 4.14.0 - 5.1.2 + + + 10.0.120 + 11.0.0-rc.1.26451.6 + + + + 5.1.4 + 9.0.0 + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/ReactiveShim.props b/src/ReactiveShim.props new file mode 100644 index 00000000..0bd11b7e --- /dev/null +++ b/src/ReactiveShim.props @@ -0,0 +1,33 @@ + + + + + true + + + + $(DefineConstants);REACTIVE_SHIM + + + + + + + + diff --git a/src/ReactiveUI.Binding.Analyzer.Roslyn413/ReactiveUI.Binding.Analyzer.Roslyn413.csproj b/src/ReactiveUI.Binding.Analyzer.Roslyn413/ReactiveUI.Binding.Analyzer.Roslyn413.csproj new file mode 100644 index 00000000..c7d8d78f --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer.Roslyn413/ReactiveUI.Binding.Analyzer.Roslyn413.csproj @@ -0,0 +1,68 @@ + + + netstandard2.0 + ReactiveUI.Binding.Analyzer + ReactiveUI.Binding.Analyzer + false + true + true + false + + $(NoWarn);RS1038 + + + + + $(DefineConstants);ROSLYN_4_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Shipped.md b/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Shipped.md new file mode 100644 index 00000000..f50bb1fe --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Shipped.md @@ -0,0 +1,2 @@ +; Shipped analyzer releases +; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md diff --git a/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Unshipped.md b/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Unshipped.md new file mode 100644 index 00000000..ffed4bd6 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/AnalyzerReleases.Unshipped.md @@ -0,0 +1,25 @@ +### New Rules + + Rule ID | Category | Severity | Notes +-------------|----------|----------|----------------------------------------------------------------------------------------- + RXUIBIND001 | Usage | Error | Expression must be inline lambda for compile-time optimization + RXUIBIND002 | Usage | Warning | Type has no observable properties + RXUIBIND003 | Usage | Error | Expression contains private/protected member + RXUIBIND004 | Usage | Warning | Type does not support before-change notifications + RXUIBIND005 | Usage | Info | Source type implements INotifyDataErrorInfo; validation binding requires runtime engine + RXUIBIND006 | Usage | Error | Expression contains unsupported path segment (indexer, static field, read-only leaf field, or method call) + RXUIBIND007 | Usage | Warning | Control has no bindable event + RXUIBIND008 | Usage | Warning | Property is not an IInteraction + RXUIBIND009 | Usage | Error | Generated binding dispatch is out of reach for this file + RXUIBIND010 | Usage | Warning | Observed path passes through a type that raises no notification + RXUIBIND011 | Usage | Warning | Binding call resolved to ReactiveUI's own mixin + RXUIBIND012 | Usage | Error | ToProperty source raises no notification generated code can reach + RXUIBIND013 | Usage | Error | ToProperty property must be named directly + RXUIBIND014 | Usage | Error | Name the ToProperty initial value below C# 13 + RXUIBIND015 | Usage | Error | Binding call names a type generated code cannot reach + RXUIBIND016 | Usage | Error | Binding call is made through a type parameter + RXUIBIND017 | Usage | Warning | Binding writes to a UI object without its platform package + RXUIBIND018 | Usage | Warning | ObservableAsProperty needs a partial get-only property + RXUIBIND019 | Usage | Warning | ObservableAsProperty method takes parameters + RXUIBIND020 | Usage | Info | View is registered only in the service locator + RXUIBIND021 | Usage | Error | Binding call has no generated binding diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/AnalyzerHelpers.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/AnalyzerHelpers.cs new file mode 100644 index 00000000..d9a7e569 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/AnalyzerHelpers.cs @@ -0,0 +1,487 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Operations; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// Shared helper methods for analyzers. No LINQ, manual loops. +internal static class AnalyzerHelpers +{ + /// The index returns for an API that observes none of its type arguments. + internal const int NoObservedTypeArgument = -1; + + /// The suffix that marks the runtime-reflection twin of an API. + internal const string UnsafeMethodSuffix = "Unsafe"; + + /// The name of the argument that carries the view model of a view-first binding. + private const string ViewModelParameterName = "viewModel"; + + /// Determines whether a method name is one of the APIs this package generates bindings for. + /// The method name. + /// when bindings are generated for it. + /// A pattern over constants compiles to a hashed switch, so the lookup builds and allocates nothing. + internal static bool IsGeneratedApiName(string name) => + IsObservationApiName(name) || IsPropertyBindingApiName(name) || IsCommandOrOutputApiName(name); + + /// Checks if a method symbol belongs to our generated extension class. + /// The method symbol to check. + /// true if the method is from our generated extension class. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindingExtensionMethod(IMethodSymbol methodSymbol) => + methodSymbol.ContainingType?.Name is { } name + && (name is SourceGenerators.Constants.GeneratedExtensionClassName or SourceGenerators.Constants.StubExtensionClassName + || name.StartsWith($"{SourceGenerators.Constants.GeneratedExtensionClassName}_", StringComparison.Ordinal)); + + /// Checks whether an API deliberately resolves notification providers at run time. + /// The binding method symbol. + /// for an Unsafe binding call. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsUnsafeBindingMethod(IMethodSymbol methodSymbol) => + methodSymbol.Name.EndsWith(UnsafeMethodSuffix, StringComparison.Ordinal); + + /// Checks if an expression is an inline lambda (not a variable reference or method call). + /// The expression to check. + /// true if the expression is an inline lambda. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsInlineLambda(ExpressionSyntax expression) => + expression is SimpleLambdaExpressionSyntax or ParenthesizedLambdaExpressionSyntax; + + /// + /// Steps over the null-forgiving operator and parentheses, which wrap a link of a property path without + /// changing which member it names: (x.A)! is read as x.A. + /// + /// The expression to read through. + /// The first expression that is neither a null-forgiving suppression nor parenthesized. + /// + /// Every walk over a lambda body reads its links through this, so an operator in the middle of a path + /// cannot end one check early while another carries on. It reads a node's kind and allocates nothing. + /// + internal static ExpressionSyntax SkipNullForgivingAndParentheses(ExpressionSyntax expression) + { + while (true) + { + var kind = expression.Kind(); + if (kind == SyntaxKind.ParenthesizedExpression) + { + expression = ((ParenthesizedExpressionSyntax)expression).Expression; + } + else if (kind == SyntaxKind.SuppressNullableWarningExpression) + { + expression = ((PostfixUnaryExpressionSyntax)expression).Operand; + } + else + { + return expression; + } + } + } + + /// Checks if a type supports before-change notifications based on its notification mechanism. + /// The type to check. + /// The current compilation for type resolution. + /// Output: the name of the detected mechanism. + /// true if the type supports before-change notifications. + internal static bool HasBeforeChangeSupport( + INamedTypeSymbol typeSymbol, + Compilation compilation, + out string mechanism) + { + // IReactiveObject supports before-change via GetChangingObservable() + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.IReactiveObjectMetadataName, byInterface: true)) + { + mechanism = "IReactiveObject"; + return true; + } + + // INotifyPropertyChanging supports before-change + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.INotifyPropertyChangingMetadataName, byInterface: true)) + { + mechanism = "INotifyPropertyChanging"; + return true; + } + + // Platform types that DON'T support before-change + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.WpfDependencyObjectMetadataName, byInterface: false)) + { + mechanism = "WPF DependencyObject"; + return false; + } + + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.WinUIDependencyObjectMetadataName, byInterface: false)) + { + mechanism = "WinUI DependencyObject"; + return false; + } + + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.WinFormsComponentMetadataName, byInterface: false)) + { + mechanism = "WinForms Component"; + return false; + } + + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.AndroidViewMetadataName, byInterface: false)) + { + mechanism = "Android View"; + return false; + } + + // KVO (NSObject) supports before-change + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.NSObjectMetadataName, byInterface: false)) + { + mechanism = "KVO"; + return true; + } + + // INPC without INotifyPropertyChanging + if (Matches(typeSymbol, compilation, SourceGenerators.Constants.INotifyPropertyChangedMetadataName, byInterface: true)) + { + mechanism = "INotifyPropertyChanged (without INotifyPropertyChanging)"; + return false; + } + + mechanism = "unknown"; + return false; + } + + /// + /// Extracts the first type argument from a method symbol as an . + /// Returns null if the method has no type arguments or the first argument is not a named type. + /// + /// The method symbol to extract from. + /// The first type argument as , or null. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static INamedTypeSymbol? ExtractFirstTypeArgument(IMethodSymbol methodSymbol) => ExtractTypeArgument(methodSymbol, 0); + + /// + /// Extracts one of a method's type arguments as an . Returns null when the + /// method has fewer arguments than that, or when the one asked for is not a named type. + /// + /// The method symbol to extract from. + /// Which type argument to read. + /// The type argument as , or null. + /// + /// Which argument names the observed object differs by API: most name it first, while the ones taking a + /// stream the caller already built name that stream's value type there instead. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static INamedTypeSymbol? ExtractTypeArgument(IMethodSymbol methodSymbol, int index) => + (uint)index >= (uint)methodSymbol.TypeArguments.Length ? null : methodSymbol.TypeArguments[index] as INamedTypeSymbol; + + /// + /// Finds which type argument of a binding method names the object the method observes for property + /// notifications. The Unsafe twin of an API answers as the API does. + /// + /// The binding method symbol. + /// The index of that type argument, or when the method observes none of them. + /// + /// Most APIs name the observed object first. BindTo names the value type of a stream the caller already + /// built first, and its target is only written to, so nothing is observed. InvokeCommand names the + /// stream's value type first and the object holding the command second. Bind and OneWayBind name + /// the view model by the type parameter behind their viewModel argument, which sits first on some + /// overloads and second on others. + /// + internal static int ObservedTypeArgumentIndex(IMethodSymbol methodSymbol) + { + var name = methodSymbol.Name; + + // ToProperty raises the source's notifications rather than observing them; RXUIBIND012 covers its source. + if (IsApi(name, SourceGenerators.Constants.BindToMethodName) || IsApi(name, SourceGenerators.Constants.ToPropertyMethodName)) + { + return NoObservedTypeArgument; + } + + if (IsApi(name, SourceGenerators.Constants.InvokeCommandMethodName)) + { + return 1; + } + + var isViewFirst = IsApi(name, SourceGenerators.Constants.BindMethodName) + || IsApi(name, SourceGenerators.Constants.OneWayBindMethodName); + return isViewFirst + ? ViewModelTypeArgumentIndex(methodSymbol) + : 0; + } + + /// + /// Determines whether a method's first type argument lacks any observable notification mechanism. + /// Returns false if the method has no type arguments (non-generic dispatch overload). + /// + /// The method symbol. + /// The current compilation. + /// The resolved source type, if the check matched. + /// true if the type has no observable mechanism. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool LacksObservableMechanism( + IMethodSymbol methodSymbol, + Compilation compilation, + out INamedTypeSymbol? sourceType) => + LacksObservableMechanism(methodSymbol, compilation, 0, out sourceType); + + /// + /// Determines whether the type argument naming this API's observed object lacks any observable notification + /// mechanism. Returns false when the method has no such argument (a non-generic dispatch overload). + /// + /// The method symbol. + /// The current compilation. + /// Which type argument names the observed object. + /// The resolved source type, if the check matched. + /// true if the type has no observable mechanism. + internal static bool LacksObservableMechanism( + IMethodSymbol methodSymbol, + Compilation compilation, + int typeArgumentIndex, + out INamedTypeSymbol? sourceType) + { + sourceType = ExtractTypeArgument(methodSymbol, typeArgumentIndex); + return sourceType is not null && !HasObservableMechanism(sourceType, compilation); + } + + /// + /// Determines whether a method's first type argument lacks before-change notification support. + /// Returns false if the method has no type arguments (non-generic dispatch overload). + /// + /// The method symbol. + /// The current compilation. + /// The resolved receiver type, if the check matched. + /// The detected notification mechanism name. + /// true if the type does NOT support before-change notifications. + internal static bool LacksBeforeChangeSupport( + IMethodSymbol methodSymbol, + Compilation compilation, + out INamedTypeSymbol? receiverType, + out string mechanism) + { + mechanism = string.Empty; + receiverType = ExtractFirstTypeArgument(methodSymbol); + return receiverType is not null && !HasBeforeChangeSupport(receiverType, compilation, out mechanism); + } + + /// + /// Determines whether a binding method's source type implements + /// INotifyDataErrorInfo, requiring the runtime validation engine. + /// Returns false if the method has no type arguments or the + /// INotifyDataErrorInfo type cannot be resolved in the compilation. + /// + /// The binding method symbol. + /// The current compilation. + /// The resolved source type, if the check passed. + /// true if the source type implements INotifyDataErrorInfo. + internal static bool ImplementsDataErrorInfo( + IMethodSymbol methodSymbol, + Compilation compilation, + out INamedTypeSymbol? sourceType) + { + sourceType = ExtractFirstTypeArgument(methodSymbol); + if (sourceType is null) + { + return false; + } + + var dataErrorInfo = + compilation.GetTypeByMetadataName(SourceGenerators.Constants.INotifyDataErrorInfoMetadataName); + return dataErrorInfo is not null && ImplementsInterface(sourceType, dataErrorInfo); + } + + /// + /// Determines whether a type notifies about property changes at all, through any of the mechanisms this + /// library observes: INotifyPropertyChanged, IReactiveObject, a WPF or WinUI dependency object, an Apple + /// NSObject, a WinForms component, or an Android view. + /// + /// The type symbol to check. + /// The current compilation for type resolution. + /// true if the type supports property observation; otherwise, false. + internal static bool HasObservableMechanism(INamedTypeSymbol typeSymbol, Compilation compilation) + { + INamedTypeSymbol?[] interfaces = + [ + compilation.GetTypeByMetadataName(SourceGenerators.Constants.INotifyPropertyChangedMetadataName), + compilation.GetTypeByMetadataName(SourceGenerators.Constants.IReactiveObjectMetadataName), + ]; + + for (var i = 0; i < interfaces.Length; i++) + { + if (interfaces[i] is { } observable && ImplementsInterface(typeSymbol, observable)) + { + return true; + } + } + + INamedTypeSymbol?[] baseTypes = + [ + compilation.GetTypeByMetadataName(SourceGenerators.Constants.WpfDependencyObjectMetadataName), + compilation.GetTypeByMetadataName(SourceGenerators.Constants.WinUIDependencyObjectMetadataName), + compilation.GetTypeByMetadataName(SourceGenerators.Constants.NSObjectMetadataName), + compilation.GetTypeByMetadataName(SourceGenerators.Constants.WinFormsComponentMetadataName), + compilation.GetTypeByMetadataName(SourceGenerators.Constants.AndroidViewMetadataName), + ]; + + for (var i = 0; i < baseTypes.Length; i++) + { + if (baseTypes[i] is { } observable && InheritsFromOrImplements(typeSymbol, observable)) + { + return true; + } + } + + return false; + } + + /// Determines whether a type implements a specific interface. + /// The type symbol to check. + /// The interface symbol to look for. + /// true if the type implements the specified interface; otherwise, false. + internal static bool ImplementsInterface(INamedTypeSymbol typeSymbol, INamedTypeSymbol interfaceSymbol) + { + var allInterfaces = typeSymbol.AllInterfaces; + for (var i = 0; i < allInterfaces.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(allInterfaces[i], interfaceSymbol)) + { + return true; + } + } + + return false; + } + + /// Determines whether a type inherits from a specific base type. + /// The type symbol to check. + /// The base type symbol to look for in the inheritance hierarchy. + /// true if the type inherits from the specified base type; otherwise, false. + internal static bool InheritsFrom(INamedTypeSymbol typeSymbol, INamedTypeSymbol baseTypeSymbol) + { + var current = typeSymbol.BaseType; + while (current is not null) + { + if (SymbolEqualityComparer.Default.Equals(current, baseTypeSymbol)) + { + return true; + } + + current = current.BaseType; + } + + return false; + } + + /// Determines whether a generated interceptor claims a binding call. + /// The call. + /// The cancellation token. + /// when an interceptor replaces the call. + internal static bool IsIntercepted(IInvocationOperation invocation, CancellationToken cancellationToken) + { +#if ROSLYN_4_13 + // A binding method is only ever called through an invocation expression, and an operation handed to an + // analyzer always carries the model it was bound with. + return invocation.SemanticModel!.GetInterceptorMethod((InvocationExpressionSyntax)invocation.Syntax, cancellationToken) is not null; +#else + + // The baseline compiler has no interceptors, so no call is ever claimed. + _ = invocation; + _ = cancellationToken; + return false; +#endif + } + + /// Checks if a method is an API or its Unsafe twin. + /// The name of the method. + /// The name of the API. + /// true if the method is the API or its Unsafe twin. + private static bool IsApi(string methodName, string apiName) => + methodName.StartsWith(apiName, StringComparison.Ordinal) + && (methodName.Length == apiName.Length + || (methodName.Length == apiName.Length + UnsafeMethodSuffix.Length + && methodName.EndsWith(UnsafeMethodSuffix, StringComparison.Ordinal))); + + /// Finds the type argument behind a method's viewModel argument. + /// The binding method symbol. + /// The index of that type argument, or 0 when the method has no such argument. + private static int ViewModelTypeArgumentIndex(IMethodSymbol methodSymbol) + { + var parameters = methodSymbol.OriginalDefinition.Parameters; + for (var i = 0; i < parameters.Length; i++) + { + if (parameters[i].Name == ViewModelParameterName && parameters[i].Type is ITypeParameterSymbol typeParameter) + { + return typeParameter.Ordinal; + } + } + + return 0; + } + + /// + /// Resolves a well-known type by metadata name and tests whether + /// matches it, either by interface implementation or base-type inheritance. + /// + /// The type to test. + /// The current compilation for type resolution. + /// The metadata name of the well-known type to resolve. + /// + /// true to test interface implementation; false to test base-type inheritance, or implementation when + /// the resolved type is an interface. + /// + /// true if the resolved type exists and matches; otherwise, false. + private static bool Matches( + INamedTypeSymbol typeSymbol, + Compilation compilation, + string metadataName, + bool byInterface) + { + var target = compilation.GetTypeByMetadataName(metadataName); + if (target is null) + { + return false; + } + + return byInterface + ? ImplementsInterface(typeSymbol, target) + : InheritsFromOrImplements(typeSymbol, target); + } + + /// Tests base-type inheritance, or implementation when the platform type is an interface. + /// The type to test. + /// The platform type. + /// true if the type derives from or implements the platform type; otherwise, false. + /// Uno declares DependencyObject as an interface on its non-Windows heads. + private static bool InheritsFromOrImplements(INamedTypeSymbol typeSymbol, INamedTypeSymbol platformType) => + platformType.TypeKind == TypeKind.Interface + ? ImplementsInterface(typeSymbol, platformType) + : InheritsFrom(typeSymbol, platformType); + + /// Determines whether a method name is one of the observation APIs. + /// The method name. + /// for WhenChanged, WhenChanging and the WhenAny family. + private static bool IsObservationApiName(string name) => + name is SourceGenerators.Constants.WhenChangedMethodName + or SourceGenerators.Constants.WhenChangingMethodName + or SourceGenerators.Constants.WhenAnyMethodName + or SourceGenerators.Constants.WhenAnyValueMethodName + or SourceGenerators.Constants.WhenAnyObservableMethodName; + + /// Determines whether a method name is one of the property binding APIs. + /// The method name. + /// for the one-way, two-way and BindTo bindings. + private static bool IsPropertyBindingApiName(string name) => + name is SourceGenerators.Constants.BindOneWayMethodName + or SourceGenerators.Constants.BindTwoWayMethodName + or SourceGenerators.Constants.OneWayBindMethodName + or SourceGenerators.Constants.BindMethodName + or SourceGenerators.Constants.BindToMethodName; + + /// Determines whether a method name is one of the command, interaction and output property APIs. + /// The method name. + /// for BindCommand, BindInteraction, InvokeCommand and ToProperty. + private static bool IsCommandOrOutputApiName(string name) => + name is SourceGenerators.Constants.BindCommandMethodName + or SourceGenerators.Constants.BindInteractionMethodName + or SourceGenerators.Constants.InvokeCommandMethodName + or SourceGenerators.Constants.ToPropertyMethodName; +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/BindingInvocationAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/BindingInvocationAnalyzer.cs new file mode 100644 index 00000000..2bb1c8fb --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/BindingInvocationAnalyzer.cs @@ -0,0 +1,631 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Analyzes binding and observation invocations (WhenChanged, WhenChanging, BindOneWay, BindTwoWay, +/// OneWayBind, Bind, BindTo, BindCommand, BindInteraction) for common issues. The generic lambda checks +/// (RXUIBIND001/003/006/010) apply to generated binding entry points; the remaining checks are +/// method-specific (RXUIBIND004, RXUIBIND005, RXUIBIND007, RXUIBIND008). +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class BindingInvocationAnalyzer : DiagnosticAnalyzer +{ + /// Runtime entry points accept expressions that the generator cannot inspect. + private const string UnsafeMethodSuffix = "Unsafe"; + + /// The parameter type a property path arrives as, which marks it out from the other arguments. + private const string ExpressionTypeName = "System.Linq.Expressions.Expression`1"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] + { + DiagnosticWarnings.NonInlineLambda, + DiagnosticWarnings.PrivateMember, + DiagnosticWarnings.NoBeforeChangeSupport, + DiagnosticWarnings.ValidationNotGenerated, + DiagnosticWarnings.UnsupportedPathSegment, + DiagnosticWarnings.NoBindableEvent, + DiagnosticWarnings.InvalidInteractionType, + DiagnosticWarnings.SilentPathLink, + }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// Analyzes a method invocation operation for binding-related diagnostics. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocationOp = (IInvocationOperation)context.Operation; + + var methodSymbol = invocationOp.TargetMethod; + + // ToProperty only reads a name from its selector, so the path checks do not apply; ToPropertyAnalyzer covers it. + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || methodSymbol.Name.EndsWith(UnsafeMethodSuffix, StringComparison.Ordinal) + || methodSymbol.Name == Constants.ToPropertyMethodName) + { + return; + } + + var methodName = methodSymbol.Name; + var arguments = invocationOp.Arguments; + + // RXUIBIND001, 003 and 006 name a path the generator cannot read, so the call throws. A call an interceptor + // claims was read after all, from the caller's own partial class, and has nothing to report. + if (!AnalyzerHelpers.IsIntercepted(invocationOp, context.CancellationToken)) + { + CheckNonInlineLambda(context, arguments); + CheckPrivateMember(context, arguments); + CheckUnsupportedPathSegment(context, arguments); + } + + // Check RXUIBIND010: A link in the middle of the path that raises no notification + CheckSilentPathLink(context, arguments); + + // Check RXUIBIND004: Before-change support + if (methodName == Constants.WhenChangingMethodName) + { + CheckBeforeChangeSupport(context, invocationOp, methodSymbol); + } + + // Check RXUIBIND005: Validation support + if (methodName is Constants.BindOneWayMethodName or Constants.BindTwoWayMethodName) + { + CheckValidationSupport(context, invocationOp); + } + + // Check RXUIBIND008: Invalid interaction type + if (methodName == Constants.BindInteractionMethodName) + { + CheckInteractionType(context, invocationOp); + } + + // Check RXUIBIND007: No bindable event on control + if (methodName != Constants.BindCommandMethodName) + { + return; + } + + CheckBindableEvent(context, invocationOp); + } + + /// Checks for RXUIBIND001: Expression arguments that are not inline lambdas. + /// The operation analysis context. + /// The invocation arguments to inspect. + internal static void CheckNonInlineLambda( + in OperationAnalysisContext context, + ImmutableArray arguments) + { + // Find the Expression> arguments + for (var i = 0; i < arguments.Length; i++) + { + var arg = arguments[i]; + if (arg.Value.Syntax is not ExpressionSyntax expr) + { + continue; + } + + // Check if this is an Expression> parameter + var parameterType = arg.Parameter!.Type; + + if (!NativeTypeIdentity.Matches(parameterType, ExpressionTypeName)) + { + continue; + } + + // Must be an inline lambda + if (!AnalyzerHelpers.IsInlineLambda(expr)) + { + context.ReportDiagnostic( + Diagnostic.Create(DiagnosticWarnings.NonInlineLambda, expr.GetLocation())); + } + } + } + + /// Checks for RXUIBIND003: Lambda expressions that access private or protected members. + /// The operation analysis context. + /// The invocation arguments to inspect. + internal static void CheckPrivateMember( + in OperationAnalysisContext context, + ImmutableArray arguments) + { + for (var i = 0; i < arguments.Length; i++) + { + var arg = arguments[i]; + if (arg.Value.Syntax is not LambdaExpressionSyntax lambda) + { + continue; + } + + // Walk the lambda body looking for member accesses + var body = GetLambdaBody(lambda); + if (body is null) + { + continue; + } + + var current = AnalyzerHelpers.SkipNullForgivingAndParentheses(body); + while (current is MemberAccessExpressionSyntax memberAccess) + { + var memberSymbol = context.Operation.SemanticModel!.GetSymbolInfo(memberAccess, context.CancellationToken).Symbol; + if (memberSymbol is { DeclaredAccessibility: Accessibility.Private or Accessibility.Protected }) + { + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.PrivateMember, + memberAccess.Name.GetLocation(), + memberSymbol.Name)); + break; + } + + current = AnalyzerHelpers.SkipNullForgivingAndParentheses(memberAccess.Expression); + } + } + } + + /// Checks for RXUIBIND004: WhenChanging invocations on types that do not support before-change notifications. + /// The operation analysis context. + /// The invocation operation being analyzed. + /// The method symbol of the invocation target. + internal static void CheckBeforeChangeSupport( + in OperationAnalysisContext context, + IInvocationOperation invocationOp, + IMethodSymbol methodSymbol) + { + if (!AnalyzerHelpers.LacksBeforeChangeSupport( + methodSymbol, + context.Compilation, + out var receiverType, + out var mechanism)) + { + return; + } + + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.NoBeforeChangeSupport, + invocationOp.Syntax.GetLocation(), + receiverType!.Name, + mechanism)); + } + + /// + /// Checks for RXUIBIND005: Binding invocations where the source type implements + /// , which requires the runtime engine for validation binding. + /// + /// The operation analysis context. + /// The invocation operation being analyzed. + internal static void CheckValidationSupport( + in OperationAnalysisContext context, + IInvocationOperation invocationOp) + { + if (!AnalyzerHelpers.ImplementsDataErrorInfo( + invocationOp.TargetMethod, + context.Compilation, + out var sourceType)) + { + return; + } + + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.ValidationNotGenerated, + invocationOp.Syntax.GetLocation(), + sourceType!.Name)); + } + + /// + /// Checks for RXUIBIND008: BindInteraction invocations where the property type does not implement + /// the IInteraction<TInput, TOutput> interface. + /// + /// The operation analysis context. + /// The invocation operation being analyzed. + internal static void CheckInteractionType( + in OperationAnalysisContext context, + IInvocationOperation invocationOp) + { + // Find the propertyName argument (the Expression>> parameter) + var arguments = invocationOp.Arguments; + for (var i = 0; i < arguments.Length; i++) + { + var arg = arguments[i]; + if (arg.Parameter!.Name != "propertyName") + { + continue; + } + + if (arg.Value.Syntax is not LambdaExpressionSyntax lambda) + { + break; + } + + // Get the lambda body return type + var body = GetLambdaBody(lambda); + + if (body is null) + { + break; + } + + var typeInfo = context.Operation.SemanticModel!.GetTypeInfo(body, context.CancellationToken); + if (typeInfo.Type is null) + { + break; + } + + var interactionType = context.Compilation.GetTypeByMetadataName(Constants.IInteractionMetadataName); + if (interactionType is null) + { + break; + } + + // Check if the type implements IInteraction<,> + var propertyType = typeInfo.Type; + if (!ImplementsOpenGenericInterface(propertyType, interactionType)) + { + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.InvalidInteractionType, + body.GetLocation(), + propertyType.ToDisplayString())); + } + + break; + } + } + + /// + /// Checks for RXUIBIND007: BindCommand invocations where the target control type + /// does not expose a default bindable event (Click, TouchUpInside, MouseUp, or Pressed). + /// + /// The operation analysis context. + /// The invocation operation being analyzed. + internal static void CheckBindableEvent( + in OperationAnalysisContext context, + IInvocationOperation invocationOp) + { + _ = invocationOp.TargetMethod; + var arguments = invocationOp.Arguments; + + // If toEvent is explicitly specified, skip this check + if (IsToEventSpecified(arguments)) + { + return; + } + + // Find the controlName argument to get the control type + for (var i = 0; i < arguments.Length; i++) + { + var arg = arguments[i]; + if (arg.Parameter!.Name != "controlName") + { + continue; + } + + if (arg.Value.Syntax is not LambdaExpressionSyntax lambda) + { + break; + } + + var body = GetLambdaBody(lambda); + if (body is null) + { + break; + } + + var typeInfo = context.Operation.SemanticModel!.GetTypeInfo(body, context.CancellationToken); + if (typeInfo.Type is not INamedTypeSymbol controlType) + { + break; + } + + if (!HasDefaultBindableEvent(controlType)) + { + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.NoBindableEvent, + body.GetLocation(), + controlType.Name)); + } + + break; + } + } + + /// Determines whether a type implements a specific open generic interface. + /// The type symbol to check. + /// The open generic interface to look for (e.g., IInteraction<,>). + /// true if the type implements the specified open generic interface; otherwise, false. + internal static bool ImplementsOpenGenericInterface(ITypeSymbol type, INamedTypeSymbol openGenericInterface) + { + if (type is INamedTypeSymbol { IsGenericType: true } named + && SymbolEqualityComparer.Default.Equals(named.ConstructedFrom, openGenericInterface)) + { + return true; + } + + var allInterfaces = type.AllInterfaces; + for (var i = 0; i < allInterfaces.Length; i++) + { + if (allInterfaces[i].IsGenericType + && SymbolEqualityComparer.Default.Equals(allInterfaces[i].ConstructedFrom, openGenericInterface)) + { + return true; + } + } + + return false; + } + + /// + /// Checks for RXUIBIND006: Lambda expressions containing unsupported path segments + /// such as indexers, field accesses, or method calls. + /// + /// The operation analysis context. + /// The invocation arguments to inspect. + internal static void CheckUnsupportedPathSegment( + in OperationAnalysisContext context, + ImmutableArray arguments) + { + for (var i = 0; i < arguments.Length; i++) + { + var arg = arguments[i]; + + // Only check Expression> parameters + var parameterType = arg.Parameter!.Type; + + if (!NativeTypeIdentity.Matches(parameterType, ExpressionTypeName)) + { + continue; + } + + if (arg.Value.Syntax is not LambdaExpressionSyntax lambda) + { + continue; + } + + var body = GetLambdaBody(lambda); + + if (body is null) + { + continue; + } + + WalkForUnsupportedSegments(context, body); + } + } + + /// Checks for RXUIBIND010: an observed path passing through a type that raises no notification. + /// The operation analysis context. + /// The invocation arguments to inspect. + /// + /// Only links past the first are reported. The type the call site is made on is already answered for by the + /// warning on the type itself, whereas a type reached part way along a path is never named at the call site + /// and is where an observation silently stops following. + /// + internal static void CheckSilentPathLink( + in OperationAnalysisContext context, + ImmutableArray arguments) + { + for (var i = 0; i < arguments.Length; i++) + { + if (!IsExpressionArgument(arguments[i], out var lambda)) + { + continue; + } + + var body = GetLambdaBody(lambda!); + if (body is null) + { + continue; + } + + ReportSilentLinks(context, body); + } + } + + /// Walks a member access chain looking for unsupported path segments (method calls, indexers, static fields, or a read-only field at the leaf). + /// The operation analysis context. + /// The expression to walk. + internal static void WalkForUnsupportedSegments( + in OperationAnalysisContext context, + ExpressionSyntax expression) + { + var current = AnalyzerHelpers.SkipNullForgivingAndParentheses(expression); + var isLeaf = true; + while (current is not null) + { + if (current is InvocationExpressionSyntax invocation) + { + // Method call in path: x => x.GetValue().Name + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.UnsupportedPathSegment, + invocation.GetLocation(), + invocation.ToString())); + return; + } + + if (current is ElementAccessExpressionSyntax elementAccess) + { + // Indexer in path: x => x.Items[0].Name + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.UnsupportedPathSegment, + elementAccess.GetLocation(), + elementAccess.ToString())); + return; + } + + if (current is MemberAccessExpressionSyntax memberAccess) + { + // Check if the member is a field + var memberSymbol = context.Operation.SemanticModel!.GetSymbolInfo(memberAccess, context.CancellationToken).Symbol; + + // An instance field is read once, like any link that raises no notification. The leaf may be + // assigned, so a read-only one there is not generated. + if (memberSymbol is IFieldSymbol { IsConst: false } field && (field.IsStatic || (isLeaf && field.IsReadOnly))) + { + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.UnsupportedPathSegment, + memberAccess.Name.GetLocation(), + memberSymbol.Name)); + return; + } + + isLeaf = false; + current = AnalyzerHelpers.SkipNullForgivingAndParentheses(memberAccess.Expression); + continue; + } + + // Lambda parameter or other terminal — stop walking + break; + } + } + + /// Extracts the body expression from a lambda expression syntax node. + /// The lambda expression syntax node to extract the body from. + /// + /// The body as an , or null if the lambda body is a block statement. + /// + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + internal static ExpressionSyntax? GetLambdaBody(LambdaExpressionSyntax lambda) => + lambda.Body as ExpressionSyntax; + + /// Reports every link past the first whose declaring type raises no notification. + /// The operation analysis context. + /// The lambda body naming the observed path. + private static void ReportSilentLinks(in OperationAnalysisContext context, ExpressionSyntax body) + { + var model = context.Operation.SemanticModel!; + + // The path is written outermost-first, so walking down it reaches the root last. Every access whose + // own receiver is itself an access is a link past the first. + var current = AnalyzerHelpers.SkipNullForgivingAndParentheses(body) as MemberAccessExpressionSyntax; + while (current is not null) + { + var parent = AnalyzerHelpers.SkipNullForgivingAndParentheses(current.Expression) as MemberAccessExpressionSyntax; + if (parent is not null) + { + ReportIfSilent(context, model, parent); + } + + current = parent; + } + } + + /// Reports a link when the type it yields raises no notification. + /// The operation analysis context. + /// The semantic model the link is read through. + /// The member access naming the link. + private static void ReportIfSilent( + in OperationAnalysisContext context, + SemanticModel model, + MemberAccessExpressionSyntax link) + { + if (model.GetSymbolInfo(link, context.CancellationToken).Symbol + is not IPropertySymbol { Type: INamedTypeSymbol linkType }) + { + return; + } + + if (AnalyzerHelpers.HasObservableMechanism(linkType, context.Compilation)) + { + return; + } + + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.SilentPathLink, + link.GetLocation(), + linkType.Name, + link.ToString())); + } + + /// Determines whether an argument is an inline lambda passed as an expression tree. + /// The argument to inspect. + /// The lambda, when the argument is one. + /// when the argument is an expression-tree lambda. + private static bool IsExpressionArgument(IArgumentOperation argument, out LambdaExpressionSyntax? lambda) + { + lambda = null; + + return NativeTypeIdentity.Matches(argument.Parameter!.Type, ExpressionTypeName) + && (lambda = argument.Value.Syntax as LambdaExpressionSyntax) is not null; + } + + /// Determines whether a non-empty constant toEvent argument was explicitly supplied. + /// The invocation arguments to inspect. + /// true if a non-empty toEvent string was specified; otherwise, false. + private static bool IsToEventSpecified(ImmutableArray arguments) + { + for (var i = 0; i < arguments.Length; i++) + { + var toEventArg = arguments[i]; + if (toEventArg.Parameter!.Name != "toEvent") + { + continue; + } + + if (!toEventArg.IsImplicit + && toEventArg.Value.ConstantValue.HasValue + && toEventArg.Value.ConstantValue.Value is string { Length: > 0 }) + { + return true; + } + } + + return false; + } + + /// + /// Determines whether a control type exposes one of the default bindable events + /// (Click, TouchUpInside, MouseUp, or Pressed). + /// + /// The control type to inspect. + /// true if a default bindable event is found; otherwise, false. + private static bool HasDefaultBindableEvent(INamedTypeSymbol controlType) + { + if (AppKitCommandSymbols.CanBind(controlType) || UIKitCommandSymbols.CanBindTouch(controlType) + || UIKitCommandSymbols.ControlEvent(controlType) is not null) + { + return true; + } + + string[] defaultEvents = ["Click", "TouchUpInside", "MouseUp", "Pressed"]; + for (var j = 0; j < defaultEvents.Length; j++) + { + if (NativeCommandMembers.HasEvent(controlType, defaultEvents[j])) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/DispatchReachAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/DispatchReachAnalyzer.cs new file mode 100644 index 00000000..937b6690 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/DispatchReachAnalyzer.cs @@ -0,0 +1,156 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; +using ReactiveUI.Binding.SourceGenerators.Helpers; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports binding calls that the generated dispatch cannot reach, so the fallback to runtime observation is a +/// build warning rather than something noticed in a profiler. +/// +/// +/// Compile-time dispatch is chosen by extension-method lookup, which only reaches an overload declared in a +/// namespace enclosing the call site. Before C# 10 there is no global using to widen that, and an assembly +/// exposing its internals cannot leave the overloads in the shared namespace without risking an ambiguous call +/// against the assembly it exposes them to. That combination - old language version, exposed internals, a file +/// outside the root namespace - is the one case where a call silently gets the runtime path instead. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class DispatchReachAnalyzer : DiagnosticAnalyzer +{ + /// The analyzer config key a build exposes the root namespace under. + private const string RootNamespaceKey = "build_property.RootNamespace"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.DispatchOutOfReach }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + + // The three conditions are properties of the whole compilation, so settle them once and register + // nothing at all when they do not hold - which is the overwhelmingly common case. + context.RegisterCompilationStartAction(static startContext => + { + if (!AppliesTo(startContext.Compilation, startContext.Options, out var rootNamespace)) + { + return; + } + + startContext.RegisterOperationAction( + operationContext => AnalyzeInvocation(in operationContext, rootNamespace), + OperationKind.Invocation); + }); + } + + /// Reports a binding call in a file the generated dispatch will not be found from. + /// The operation analysis context. + /// The root namespace the dispatch is emitted into. + internal static void AnalyzeInvocation(in OperationAnalysisContext context, string rootNamespace) + { + var invocation = (IInvocationOperation)context.Operation; + if (!AnalyzerHelpers.IsBindingExtensionMethod(invocation.TargetMethod)) + { + return; + } + + // Read the language version from the tree rather than the compilation: it is a parse option, so a + // compilation can hold trees that differ, and the reach of a generated overload follows the file. + if (invocation.Syntax.SyntaxTree.Options is not CSharpParseOptions { LanguageVersion: < LanguageVersion.CSharp10 } parseOptions) + { + return; + } + + // An interceptor replaces the call the compiler already bound, so nothing about it goes through + // extension-method lookup and no namespace has to be in reach. Where this build emits interceptors + // instead of overloads, the file's namespace stops deciding anything. + if (InterceptableLocationReader.IsInterceptionEnabled(parseOptions)) + { + return; + } + + // The symbol enclosing an invocation is always declared in a namespace, the global one at worst, + // so this never has to account for there being none. + var containingNamespace = context.ContainingSymbol.ContainingNamespace; + var callSiteNamespace = containingNamespace.IsGlobalNamespace + ? string.Empty + : containingNamespace.ToDisplayString(); + + if (IsWithin(callSiteNamespace, rootNamespace)) + { + return; + } + + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.DispatchOutOfReach, + invocation.Syntax.GetLocation(), + rootNamespace, + callSiteNamespace.Length == 0 ? "" : callSiteNamespace)); + } + + /// Determines whether a namespace is the root namespace or nested inside it. + /// The namespace the call site is declared in. + /// The root namespace. + /// when the call site can reach the root namespace by lookup. + private static bool IsWithin(string callSiteNamespace, string rootNamespace) => + string.Equals(callSiteNamespace, rootNamespace, StringComparison.Ordinal) + || (callSiteNamespace.Length > rootNamespace.Length + && callSiteNamespace[rootNamespace.Length] == '.' + && callSiteNamespace.StartsWith(rootNamespace, StringComparison.Ordinal)); + + /// Determines whether this compilation is the one where dispatch can fall out of reach. + /// The compilation being analyzed. + /// The analyzer options, which carry the root namespace. + /// The root namespace, when one applies. + /// when every condition for the gap holds. + private static bool AppliesTo(Compilation compilation, AnalyzerOptions options, out string rootNamespace) + { + rootNamespace = string.Empty; + + if (!GrantsInternalsVisibleTo(compilation)) + { + return false; + } + + if (!options.AnalyzerConfigOptionsProvider.GlobalOptions.TryGetValue(RootNamespaceKey, out var value) + || string.IsNullOrWhiteSpace(value)) + { + return false; + } + + rootNamespace = value; + return true; + } + + /// Determines whether the compilation exposes its internals to another assembly. + /// The compilation to inspect. + /// when the assembly grants InternalsVisibleTo to anyone. + private static bool GrantsInternalsVisibleTo(Compilation compilation) + { + foreach (var attribute in compilation.Assembly.GetAttributes()) + { + if (NativeTypeIdentity.Matches(attribute.AttributeClass, Constants.InternalsVisibleToAttributeName)) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/MixinShadowAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/MixinShadowAnalyzer.cs new file mode 100644 index 00000000..466d23cc --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/MixinShadowAnalyzer.cs @@ -0,0 +1,151 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; +using ReactiveUI.Binding.SourceGenerators.Helpers; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports a binding call that reached ReactiveUI's own mixin instead of a generated overload, so losing +/// compile-time binding is a build warning rather than something found in a profiler. +/// +/// +/// Which method the call reaches is decided by extension-method lookup. A file that imports ReactiveUI and +/// not this package binds to ReactiveUI's mixin, and every extractor recognises a call by its declaring type, +/// so that call is simply not one of ours: no dispatch is generated and none of the other diagnostics have +/// anything to say about it. Two ordinary things put a file in that state - importing ReactiveUI for +/// ReactiveCommand alongside this package, and an editor's import cleanup removing the binding import +/// once calls resolve to the generated overloads that made it look unused. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class MixinShadowAnalyzer : DiagnosticAnalyzer +{ + /// The namespace ReactiveUI declares its own observation and binding mixins in. + private const string ReactiveUiNamespace = "ReactiveUI"; + + /// The stub class the lean runtime package declares, used to detect that it is referenced. + private const string StubMetadataName = + $"{Constants.SharedGeneratedNamespace}.{Constants.StubExtensionClassName}"; + + /// The same stub class in the System.Reactive flavour of the runtime package. + private const string ReactiveStubMetadataName = + $"{Constants.ReactiveRuntimeNamespace}.{Constants.StubExtensionClassName}"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.MixinShadowsGeneratedBinding }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + + // Only a compilation that references this package can have lost a binding to ReactiveUI's mixin, and + // that is a property of the whole compilation, so settle it once rather than per call site. + context.RegisterCompilationStartAction(static startContext => + { + if (!ReferencesBindingPackage(startContext.Compilation)) + { + return; + } + + startContext.RegisterOperationAction( + static operationContext => AnalyzeInvocation(in operationContext), + OperationKind.Invocation); + }); + } + + /// Reports a call that ReactiveUI's mixin answered in place of a generated overload. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var method = ((IInvocationOperation)context.Operation).TargetMethod; + + if (!AnalyzerHelpers.IsGeneratedApiName(method.Name) + || AnalyzerHelpers.IsBindingExtensionMethod(method) + || !TakesAnExpression(method)) + { + return; + } + + // An extension declared in an extension block belongs to a synthesized type nested in the class the + // consumer wrote, so the namespace is only correct once the walk reaches the outermost type. + var declaringType = OutermostContainingType(method.ContainingType); + if (!IsReactiveUiNamespace(declaringType.ContainingNamespace)) + { + return; + } + + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.MixinShadowsGeneratedBinding, + context.Operation.Syntax.GetLocation(), + method.Name, + declaringType.Name)); + } + + /// Determines whether a method takes an expression, as a binding selector is written. + /// The invoked method. + /// when any parameter is a System.Linq.Expressions.Expression<T>. + /// + /// ReactiveUI's binding mixins name their properties with expression selectors. A ReactiveUI method that only + /// shares a binding API's name - binding a collection source to a table view, say - takes none, and is a + /// different API rather than a binding the generator could have claimed. + /// + private static bool TakesAnExpression(IMethodSymbol method) + { + var parameters = method.Parameters; + for (var i = 0; i < parameters.Length; i++) + { + if (NativeTypeIdentity.Matches(parameters[i].Type, "System.Linq.Expressions.Expression`1")) + { + return true; + } + } + + return false; + } + + /// Walks out of any nested or synthesized type to the type the consumer wrote. + /// The type the invoked method belongs to. + /// The outermost containing type. + private static INamedTypeSymbol OutermostContainingType(INamedTypeSymbol type) + { + while (type.ContainingType is not null) + { + type = type.ContainingType; + } + + return type; + } + + /// Determines whether a namespace is ReactiveUI's own, rather than one nested under it. + /// The namespace the declaring type sits in. + /// for exactly ReactiveUI. + /// + /// Nested namespaces are excluded deliberately: this package declares its surface under + /// ReactiveUI.Binding, which is the case this diagnostic exists to tell apart. + /// + private static bool IsReactiveUiNamespace(INamespaceSymbol namespaceSymbol) => + !namespaceSymbol.IsGlobalNamespace + && string.Equals(namespaceSymbol.Name, ReactiveUiNamespace, StringComparison.Ordinal) + && namespaceSymbol.ContainingNamespace.IsGlobalNamespace; + + /// Determines whether the compilation references this package at all. + /// The compilation being analyzed. + /// when either runtime flavour's stub class is in reach. + private static bool ReferencesBindingPackage(Compilation compilation) => + compilation.GetTypeByMetadataName(StubMetadataName) is not null + || compilation.GetTypeByMetadataName(ReactiveStubMetadataName) is not null; +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/NoGeneratedBindingAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/NoGeneratedBindingAnalyzer.cs new file mode 100644 index 00000000..43050e39 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/NoGeneratedBindingAnalyzer.cs @@ -0,0 +1,190 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports RXUIBIND021 on a binding call that has no generated binding, so the runtime method it names throws when it +/// runs. +/// +/// +/// +/// Analyzers read the compilation with every generator's output in it, so a call that the generator bound either resolves +/// to a generated overload or is claimed by a generated interceptor. A call that still resolves to the runtime stub, and +/// that no interceptor claims, got nothing. That covers every cause at once, including a member another source generator +/// adds, which the generator cannot see. +/// +/// +/// The call would throw, so it is an error. The one exception is a member that only generated code declares: no generator +/// sees another's output, and only that generator could change it, so that call stays a warning. A call another error +/// already reports, because it names a type generated code cannot name, is not reported twice. +/// +/// +/// Interceptors exist only on Roslyn 4.13 and newer, so the analyzer built against an older Roslyn has no interceptor to +/// ask about. The generator that loads beside it cannot write one either, so the stub is always the whole answer there. +/// +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class NoGeneratedBindingAnalyzer : DiagnosticAnalyzer +{ + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.NoGeneratedBinding }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// Reports a call to a runtime stub that no generated binding replaces. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocation = (IInvocationOperation)context.Operation; + var method = invocation.TargetMethod; + if (!AnalyzerHelpers.IsGeneratedApiName(method.Name) + || !IsRuntimeStub(method.ContainingType) + || !Throws(method) + || AnalyzerHelpers.IsIntercepted(invocation, context.CancellationToken) + || IsReportedAsUnreachable(invocation, in context)) + { + return; + } + + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.NoGeneratedBinding, + invocation.Syntax.GetLocation(), + NamesAnotherGeneratorsMember(invocation, context.CancellationToken) ? DiagnosticSeverity.Warning : DiagnosticSeverity.Error, + null, + null, + method.Name)); + } + + /// Determines whether a call's lambdas name a member that only generated code declares. + /// The call. + /// The cancellation token. + /// when some member the call names is declared only in generated files. + /// + /// No generator sees another generator's output, so such a member is invisible to this one. The caller cannot change + /// that, so this one cause stays a warning. Every other cause is something the caller can fix, and fails the build. + /// + internal static bool NamesAnotherGeneratorsMember(IInvocationOperation invocation, CancellationToken cancellationToken) + { + var model = invocation.SemanticModel!; + foreach (var argument in invocation.Arguments) + { + if (argument.Value.Syntax is not LambdaExpressionSyntax { Body: ExpressionSyntax body }) + { + continue; + } + + for (var current = AnalyzerHelpers.SkipNullForgivingAndParentheses(body); + current is MemberAccessExpressionSyntax access; + current = AnalyzerHelpers.SkipNullForgivingAndParentheses(access.Expression)) + { + if (model.GetSymbolInfo(access, cancellationToken).Symbol is { } member && IsDeclaredOnlyInGeneratedCode(member)) + { + return true; + } + } + } + + return false; + } + + /// Determines whether every declaration of a member sits in a generated file. + /// The member. + /// when the member has declarations and all of them are generated. + internal static bool IsDeclaredOnlyInGeneratedCode(ISymbol member) + { + var references = member.DeclaringSyntaxReferences; + if (references.IsEmpty) + { + return false; + } + + foreach (var reference in references) + { + if (!IsGeneratedFile(reference.SyntaxTree)) + { + return false; + } + } + + return true; + } + + /// Determines whether a method is declared by a runtime stub class, whose binding methods throw. + /// The type declaring the method. + /// for the stub classes, directly or through an extension block's grouping type. + /// + /// An extension block declares its members in a grouping type nested in the static class. Its name is empty when read + /// from source and starts with < when read from metadata. + /// + internal static bool IsRuntimeStub(INamedTypeSymbol containingType) => + IsStubName(containingType.Name) + || ((containingType.Name.Length == 0 || containingType.Name[0] == '<') && IsStubName(containingType.ContainingType!.Name)); + + /// Determines whether a stub class's method throws, rather than doing the work itself. + /// The method. + /// for ToProperty and for every method that takes an expression tree. + /// + /// Every method that takes an expression tree throws, and so does every ToProperty overload, which names its + /// property by a delegate or a string. InvokeCommand with a command object runs the command itself. + /// + private static bool Throws(IMethodSymbol method) + { + if (method.Name == Constants.ToPropertyMethodName) + { + return true; + } + + foreach (var parameter in method.Parameters) + { + if (parameter.Type is INamedTypeSymbol { Name: "Expression", Arity: 1 }) + { + return true; + } + } + + return false; + } + + /// Determines whether a type name is one of the runtime stub classes. + /// The type name. + /// for the stub classes. + private static bool IsStubName(string name) => + name is Constants.StubExtensionClassName or Constants.SchedulerExtensionClassName; + + /// Determines whether RXUIBIND015 or RXUIBIND016 already reports the call, which names a type generated code cannot name. + /// The call. + /// The operation analysis context. + /// when the call names an anonymous, private, protected or type-parameter type. + /// That error already fails the build at the call, so a second report of the same call adds nothing. + private static bool IsReportedAsUnreachable(IInvocationOperation invocation, in OperationAnalysisContext context) => + UnreachableTypeAnalyzer.FindUnreachable(invocation, in context) is not null; + + /// Determines whether a file is generated, by its name or its auto-generated marker. + /// The file. + /// for a generated file. + private static bool IsGeneratedFile(SyntaxTree tree) => + tree.FilePath.EndsWith(".g.cs", StringComparison.OrdinalIgnoreCase) + || tree.FilePath.EndsWith(".generated.cs", StringComparison.OrdinalIgnoreCase) + || tree.GetRoot().GetLeadingTrivia().ToString().IndexOf("= 0; +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/ObservableAsPropertyAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/ObservableAsPropertyAnalyzer.cs new file mode 100644 index 00000000..cf11f43a --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/ObservableAsPropertyAnalyzer.cs @@ -0,0 +1,184 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports an [ObservableAsProperty] the generator writes nothing for (RXUIBIND018), and a method marked with it +/// that takes parameters (RXUIBIND019). +/// +/// +/// The generator only writes the body of a partial get-only instance property. ReactiveUI's older source generator also +/// accepted a field, a method and an observable property; the diagnostic for each of those carries the form in its +/// properties, so the code fix knows how to rewrite it. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class ObservableAsPropertyAnalyzer : DiagnosticAnalyzer +{ + /// The diagnostic property naming the form the code fix rewrites. + internal const string FormProperty = "Form"; + + /// The form of a field, whose value the property takes over. + internal const string FieldForm = "Field"; + + /// The form of a method returning the observable the property is built from. + internal const string MethodForm = "Method"; + + /// The form of a property returning the observable the property is built from. + internal const string ObservablePropertyForm = "ObservableProperty"; + + /// The attribute's metadata name in the lean runtime. + internal const string LeanAttributeName = "ReactiveUI.Binding.ObservableAsPropertyAttribute"; + + /// The attribute's metadata name in the System.Reactive runtime. + internal const string ReactiveAttributeName = "ReactiveUI.Binding.Reactive.ObservableAsPropertyAttribute"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.ObservableAsPropertyNeedsPartialProperty, DiagnosticWarnings.ObservableAsPropertyMethodHasParameters }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterCompilationStartAction(static start => + { + var lean = start.Compilation.GetTypeByMetadataName(LeanAttributeName); + var reactive = start.Compilation.GetTypeByMetadataName(ReactiveAttributeName); + if (lean is null && reactive is null) + { + return; + } + + var observable = start.Compilation.GetTypeByMetadataName("System.IObservable`1"); + start.RegisterSymbolAction( + symbolContext => AnalyzeSymbol(in symbolContext, lean, reactive, observable), + SymbolKind.Field, + SymbolKind.Method, + SymbolKind.Property); + }); + } + + /// Finds the [ObservableAsProperty] on a member, in either runtime flavour. + /// The member. + /// The lean runtime's attribute type, or null when it is not referenced. + /// The System.Reactive runtime's attribute type, or null when it is not referenced. + /// The attribute, or null when the member has none. + internal static AttributeData? FindAttribute(ISymbol symbol, INamedTypeSymbol? lean, INamedTypeSymbol? reactive) + { + var attributes = symbol.GetAttributes(); + for (var i = 0; i < attributes.Length; i++) + { + var type = attributes[i].AttributeClass; + if (SymbolEqualityComparer.Default.Equals(type, lean) || SymbolEqualityComparer.Default.Equals(type, reactive)) + { + return attributes[i]; + } + } + + return null; + } + + /// Returns the value type of an IObservable<T>. + /// The type to check. + /// The open IObservable<T>, or null when it does not resolve. + /// The type argument, or null when the type is not an IObservable<T>. + internal static ITypeSymbol? ObservedType(ITypeSymbol type, INamedTypeSymbol? observable) => + type is INamedTypeSymbol { TypeArguments: [var argument] } named + && SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, observable) + ? argument + : null; + + /// Checks whether a property is declared the way the generator implements: a partial get-only instance property. + /// The property. + /// when the generator writes its body. + internal static bool IsGeneratedForm(IPropertySymbol property) + { + if (property.IsStatic) + { + return false; + } + + var references = property.DeclaringSyntaxReferences; + for (var i = 0; i < references.Length; i++) + { + if (references[i].GetSyntax() is PropertyDeclarationSyntax + { + ExpressionBody: null, + AccessorList.Accessors: [{ RawKind: (int)SyntaxKind.GetAccessorDeclaration, Body: null, ExpressionBody: null }], + } declaration + && declaration.Modifiers.Any(SyntaxKind.PartialKeyword)) + { + return true; + } + } + + return false; + } + + /// Reports a marked member the generator writes nothing for. + /// The symbol analysis context. + /// The lean runtime's attribute type, or null when it is not referenced. + /// The System.Reactive runtime's attribute type, or null when it is not referenced. + /// The open IObservable<T>, or null when it does not resolve. + private static void AnalyzeSymbol(in SymbolAnalysisContext context, INamedTypeSymbol? lean, INamedTypeSymbol? reactive, INamedTypeSymbol? observable) + { + var symbol = context.Symbol; + if (FindAttribute(symbol, lean, reactive) is null) + { + return; + } + + string? form; + switch (symbol) + { + case IPropertySymbol property when IsGeneratedForm(property): + { + return; + } + + case IPropertySymbol property: + { + form = !property.IsStatic && ObservedType(property.Type, observable) is not null ? ObservablePropertyForm : null; + break; + } + + case IMethodSymbol { Parameters.Length: > 0 }: + { + context.ReportDiagnostic(Diagnostic.Create(DiagnosticWarnings.ObservableAsPropertyMethodHasParameters, symbol.Locations[0], symbol.Name)); + return; + } + + case IMethodSymbol method: + { + form = !method.IsStatic && ObservedType(method.ReturnType, observable) is not null ? MethodForm : null; + break; + } + + default: + { + form = symbol.IsStatic ? null : FieldForm; + break; + } + } + + var properties = form is null + ? ImmutableDictionary.Empty + : ImmutableDictionary.Empty.Add(FormProperty, form); + context.ReportDiagnostic(Diagnostic.Create(DiagnosticWarnings.ObservableAsPropertyNeedsPartialProperty, symbol.Locations[0], properties, symbol.Name)); + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/ServiceLocatorViewAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/ServiceLocatorViewAnalyzer.cs new file mode 100644 index 00000000..5c05ab82 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/ServiceLocatorViewAnalyzer.cs @@ -0,0 +1,203 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// Reports a view registered only in the service locator, which ResolveView(object) does not ask (RXUIBIND020). +/// +/// +/// ResolveView with a view model held as an object asks the generated view lookup, then the Map +/// registrations. A view model with a generated view is still found through the service locator, because its generated +/// resolver asks the service locator first. So a registration is reported only when this project has no generated view +/// and no Map for the view model. +/// +/// +/// Registrations, views and mappings can each be in any file, so they are collected as the compilation is analysed and +/// compared when it ends. A registration or mapping made in another assembly, or through a container, is not seen, so +/// the diagnostic is information rather than a warning. +/// +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class ServiceLocatorViewAnalyzer : DiagnosticAnalyzer +{ + /// The metadata name of ReactiveUI.SourceGenerators' generic [IViewFor<T>], which also generates a view. + private const string SourceGeneratorsViewAttribute = "ReactiveUI.SourceGenerators.IViewForAttribute`1"; + + /// The short name of the attribute that leaves a view out of the generated lookup. + private const string ExcludeAttributeName = "ExcludeFromViewRegistrationAttribute"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.ServiceLocatorOnlyView }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterCompilationStartAction(static start => + { + var lean = start.Compilation.GetTypeByMetadataName(Constants.IViewForGenericMetadataName); + var reactive = start.Compilation.GetTypeByMetadataName(Constants.ReactiveIViewForGenericMetadataName); + if (lean is null && reactive is null) + { + return; + } + + var state = new ViewRegistrations(lean, reactive, start.Compilation.GetTypeByMetadataName(SourceGeneratorsViewAttribute)) + { + LeanExclude = start.Compilation.GetTypeByMetadataName(Constants.LeanViewNamespacePrefix + ExcludeAttributeName), + ReactiveExclude = start.Compilation.GetTypeByMetadataName(Constants.ReactiveViewNamespacePrefix + ExcludeAttributeName), + }; + start.RegisterSymbolAction(symbolContext => state.CollectView((INamedTypeSymbol)symbolContext.Symbol), SymbolKind.NamedType); + start.RegisterOperationAction(operationContext => state.CollectInvocation((IInvocationOperation)operationContext.Operation), OperationKind.Invocation); + start.RegisterCompilationEndAction(state.Report); + }); + } + + /// What one compilation registers, generates and maps, collected from every file. + /// The lean runtime's IViewFor<T>, or null when it is not referenced. + /// The System.Reactive runtime's IViewFor<T>, or null when it is not referenced. + /// ReactiveUI.SourceGenerators' [IViewFor<T>], or null when it is not declared. + private sealed class ViewRegistrations(INamedTypeSymbol? lean, INamedTypeSymbol? reactive, INamedTypeSymbol? viewAttribute) + { + /// The service locator methods that register a service by its type argument or a typeof argument. + private static readonly string[] RegistrationMethods = ["Register", "RegisterLazySingleton", "RegisterConstant"]; + + /// The view models that have a generated view or a mapping. + private readonly ConcurrentDictionary _covered = new(SymbolEqualityComparer.Default); + + /// The service locator registrations of a view, with the view model each is for. + private readonly ConcurrentQueue<(ITypeSymbol ViewModel, Location Location)> _registrations = new(); + + /// Gets the lean runtime's [ExcludeFromViewRegistration], or null when it is not referenced. + public INamedTypeSymbol? LeanExclude { get; init; } + + /// Gets the System.Reactive runtime's [ExcludeFromViewRegistration], or null when it is not referenced. + public INamedTypeSymbol? ReactiveExclude { get; init; } + + /// Records the view model of a class the generator registers a view for. + /// The declared type. + /// A class marked [ExcludeFromViewRegistration] gets no generated view, so it is skipped. + public void CollectView(INamedTypeSymbol type) + { + if (type is not { TypeKind: TypeKind.Class, IsAbstract: false } || IsExcluded(type)) + { + return; + } + + foreach (var iface in type.AllInterfaces) + { + if (ViewModelOf(iface) is { } viewModel) + { + _covered[viewModel] = true; + } + } + + foreach (var attribute in type.GetAttributes()) + { + if (attribute.AttributeClass is { TypeArguments: [var viewModel] } attributeClass + && SymbolEqualityComparer.Default.Equals(attributeClass.OriginalDefinition, viewAttribute)) + { + _covered[viewModel] = true; + } + } + } + + /// Records a Map of a view model, or a service locator registration of a view. + /// The invocation. + public void CollectInvocation(IInvocationOperation invocation) + { + var method = invocation.TargetMethod; + if (method.Name.StartsWith("Map", StringComparison.Ordinal) && method.TypeArguments is [var mapped, ..] && IsViewLocatorType(method.ContainingType)) + { + _covered[mapped] = true; + } + else if (Array.IndexOf(RegistrationMethods, method.Name) >= 0 && method.ContainingNamespace.ToDisplayString() == "Splat") + { + CollectRegistration(invocation); + } + } + + /// Reports each registration whose view model this project neither generates a view for nor maps. + /// The compilation end context. + public void Report(CompilationAnalysisContext context) + { + foreach (var (viewModel, location) in _registrations) + { + if (!_covered.ContainsKey(viewModel)) + { + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.ServiceLocatorOnlyView, + location, + viewModel.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat))); + } + } + } + + /// Checks whether a type is the view locator or its mapping builder, which both add mappings. + /// The method's containing type. + /// for DefaultViewLocator or ViewMappingBuilder in either flavour. + private static bool IsViewLocatorType(INamedTypeSymbol type) => + type.Name is "DefaultViewLocator" or "ViewMappingBuilder" + && type.ContainingNamespace.ToDisplayString() is "ReactiveUI.Binding" or "ReactiveUI.Binding.Reactive"; + + /// Records a service locator registration of a view, named by type argument or by a typeof argument. + /// The registration call. + private void CollectRegistration(IInvocationOperation invocation) + { + if (invocation.TargetMethod.TypeArguments is [var service] && ViewModelOf(service) is { } viewModel) + { + _registrations.Enqueue((viewModel, invocation.Syntax.GetLocation())); + return; + } + + foreach (var argument in invocation.Arguments) + { + if (argument.Value is ITypeOfOperation { TypeOperand: var operand } && ViewModelOf(operand) is { } registered) + { + _registrations.Enqueue((registered, invocation.Syntax.GetLocation())); + } + } + } + + /// Checks whether a view is marked [ExcludeFromViewRegistration] in either flavour. + /// The view. + /// when the generator leaves it out. + private bool IsExcluded(INamedTypeSymbol type) + { + foreach (var attribute in type.GetAttributes()) + { + if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, LeanExclude) + || SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, ReactiveExclude)) + { + return true; + } + } + + return false; + } + + /// Returns the view model of an IViewFor<T> in either flavour. + /// The type to check. + /// The type argument, or null when the type is not an IViewFor<T>. + private ITypeSymbol? ViewModelOf(ITypeSymbol type) => + type is INamedTypeSymbol { TypeArguments: [var viewModel] } named + && (SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, lean) || SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, reactive)) + ? viewModel + : null; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyAnalyzer.cs new file mode 100644 index 00000000..a822a9ba --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyAnalyzer.cs @@ -0,0 +1,131 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports ToProperty calls the generator cannot claim: a source whose change notifications generated code +/// cannot raise (RXUIBIND012), and a property named in a form the generator cannot read (RXUIBIND013). +/// +/// +/// Both leave the call on the runtime stub, which throws when it runs. The raise check asks the same plugins the +/// generator asks, so the warning appears exactly when the generator declines the call. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class ToPropertyAnalyzer : DiagnosticAnalyzer +{ + /// The stub parameter naming the property. + private const string PropertyParameterName = "property"; + + /// The stub parameter carrying the object that declares the property. + private const string SourceParameterName = "source"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.UnraisableToPropertySource, DiagnosticWarnings.UnreadableToPropertyName }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// Reports a ToProperty call the generator cannot claim. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocation = (IInvocationOperation)context.Operation; + var method = invocation.TargetMethod; + + // The name test comes first: it is one string comparison, and it turns away every other invocation. + if (method.Name != Constants.ToPropertyMethodName + || !AnalyzerHelpers.IsBindingExtensionMethod(method) + || AnalyzerHelpers.IsIntercepted(invocation, context.CancellationToken)) + { + return; + } + + var property = FindArgument(invocation.Arguments, PropertyParameterName); + var source = FindArgument(invocation.Arguments, SourceParameterName); + + if (!NamesPropertyReadably(property)) + { + context.ReportDiagnostic(Diagnostic.Create(DiagnosticWarnings.UnreadableToPropertyName, property.Value.Syntax.GetLocation())); + } + + // A source typed by a type parameter is not generated for either, and names no type the warning could fix. + if (source.Parameter!.Type is not INamedTypeSymbol sourceType + || PropertyRaisePluginRegistry.Select(sourceType, context.Compilation) is not null) + { + return; + } + + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.UnraisableToPropertySource, + source.Value.Syntax.GetLocation(), + sourceType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat))); + } + + /// Determines whether the property argument names a property the generator can read. + /// The property argument. + /// for x => x.Property or a constant, non-blank string. + internal static bool NamesPropertyReadably(IArgumentOperation property) => + property.Parameter!.Type.SpecialType == SpecialType.System_String + ? property.Value.ConstantValue is { HasValue: true, Value: string name } && !string.IsNullOrWhiteSpace(name) + : IsDirectMemberSelector(property.Value.Syntax); + + /// Determines whether a selector reads one member straight off its own parameter. + /// The selector syntax. + /// for x => x.Property. + internal static bool IsDirectMemberSelector(SyntaxNode syntax) + { + var (parameterName, body) = syntax switch + { + SimpleLambdaExpressionSyntax simple => (simple.Parameter.Identifier.ValueText, simple.Body as ExpressionSyntax), + ParenthesizedLambdaExpressionSyntax { ParameterList.Parameters.Count: 1 } parenthesized => + (parenthesized.ParameterList.Parameters[0].Identifier.ValueText, parenthesized.Body as ExpressionSyntax), + _ => (null, null), + }; + + return body is not null + && AnalyzerHelpers.SkipNullForgivingAndParentheses(body) is MemberAccessExpressionSyntax + { + RawKind: (int)SyntaxKind.SimpleMemberAccessExpression, + Expression: IdentifierNameSyntax receiver, + } + && receiver.Identifier.ValueText == parameterName; + } + + /// Finds the argument passed for a parameter, whatever position or name it was passed by. + /// The invocation's arguments. + /// The parameter name. + /// The argument. + /// Every ToProperty overload takes both the source and the property, so the argument is always there. + private static IArgumentOperation FindArgument(ImmutableArray arguments, string parameterName) + { + var i = 0; + while (arguments[i].Parameter!.Name != parameterName) + { + i++; + } + + return arguments[i]; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyInitialValueAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyInitialValueAnalyzer.cs new file mode 100644 index 00000000..76b8968f --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/ToPropertyInitialValueAnalyzer.cs @@ -0,0 +1,132 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// Reports a ToProperty call below C# 13 made ambiguous by a positional initial value (RXUIBIND014). +/// +/// For a string property, a positional initial value fits the initial-value overload and the optional +/// caller-information string parameter of the overload without one. The initial-value overloads carry +/// [OverloadResolutionPriority(1)], which only C# 13 and later honour. The compiler's own CS0121 names neither +/// cause nor fix, so this error names the argument to write. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class ToPropertyInitialValueAnalyzer : DiagnosticAnalyzer +{ + /// The stub parameter carrying a plain initial value. + private const string InitialValueParameterName = "initialValue"; + + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.UnnamedToPropertyInitialValue }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterSyntaxNodeAction(static nodeContext => AnalyzeInvocation(in nodeContext), SyntaxKind.InvocationExpression); + } + + /// Reports an ambiguous ToProperty call whose initial value is passed by position. + /// The syntax node analysis context. + internal static void AnalyzeInvocation(in SyntaxNodeAnalysisContext context) + { + var invocation = (InvocationExpressionSyntax)context.Node; + + // The name and the language version come from syntax, so every other invocation leaves before the model is asked. + if (invocation.Expression is not MemberAccessExpressionSyntax { Name.Identifier.ValueText: Constants.ToPropertyMethodName } + || invocation.SyntaxTree.Options is not CSharpParseOptions { LanguageVersion: <= LanguageVersion.CSharp12 }) + { + return; + } + + // The compiler reports CS0121 with the candidates as an overload resolution failure. + var symbolInfo = context.SemanticModel.GetSymbolInfo(invocation, context.CancellationToken); + if (symbolInfo.CandidateReason is not (CandidateReason.OverloadResolutionFailure or CandidateReason.Ambiguous)) + { + return; + } + + var arguments = invocation.ArgumentList.Arguments; + var index = FindPositionalInitialValue(arguments, symbolInfo.CandidateSymbols); + if (index < 0) + { + return; + } + + var argument = arguments[index]; + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.UnnamedToPropertyInitialValue, + argument.GetLocation(), + argument.Expression.ToString())); + } + + /// + /// Finds the positional argument that one candidate stub takes as its initial value and another takes as an optional + /// string parameter. + /// + /// The call's arguments. + /// The overloads the compiler could not choose between. + /// The argument's index, or -1 when no positional argument is contested that way. + internal static int FindPositionalInitialValue(SeparatedSyntaxList arguments, ImmutableArray candidates) + { + for (var i = 0; i < arguments.Count && arguments[i].NameColon is null; i++) + { + if (AnyCandidateTakes(candidates, i, static parameter => parameter.Name == InitialValueParameterName) + && AnyCandidateTakes(candidates, i, static parameter => parameter.IsOptional && parameter.Type.SpecialType == SpecialType.System_String)) + { + return i; + } + } + + return -1; + } + + /// Determines whether any candidate stub takes the argument at a position as a matching parameter. + /// The overloads the compiler could not choose between. + /// The positional argument's index. + /// Tests the parameter the candidate takes the argument as. + /// when a candidate stub takes the argument as a matching parameter. + private static bool AnyCandidateTakes(ImmutableArray candidates, int position, Func matches) + { + for (var c = 0; c < candidates.Length; c++) + { + if (PositionalParameter(candidates[c], position) is { } parameter && matches(parameter)) + { + return true; + } + } + + return false; + } + + /// Gets the parameter a candidate stub takes a positional argument as. + /// The candidate. + /// The positional argument's index. + /// The parameter, or null when the candidate is not a stub or has too few parameters. + private static IParameterSymbol? PositionalParameter(ISymbol candidate, int position) + { + if (candidate is not IMethodSymbol method || !AnalyzerHelpers.IsBindingExtensionMethod(method)) + { + return null; + } + + // An extension method called on its receiver is reduced: its parameter list starts after 'this'. + var index = method.MethodKind == MethodKind.ReducedExtension ? position : position + 1; + return index < method.Parameters.Length ? method.Parameters[index] : null; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/TypeAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/TypeAnalyzer.cs new file mode 100644 index 00000000..b92487d9 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/TypeAnalyzer.cs @@ -0,0 +1,72 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// Analyzes types used in binding invocations to detect types with no observable properties. Reports RXUIBIND002. +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class TypeAnalyzer : DiagnosticAnalyzer +{ + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.NoObservableProperties }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// + /// Analyzes a method invocation operation to determine whether the source type + /// has any observable property notification mechanism. + /// + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocationOp = (IInvocationOperation)context.Operation; + + var methodSymbol = invocationOp.TargetMethod; + if (!AnalyzerHelpers.IsBindingExtensionMethod(methodSymbol)) + { + return; + } + + // Which type argument names the observed object differs by API, and some APIs observe none of them. + if (!AnalyzerHelpers.LacksObservableMechanism( + methodSymbol, + context.Compilation, + AnalyzerHelpers.ObservedTypeArgumentIndex(methodSymbol), + out var sourceType)) + { + return; + } + + // An interface may be implemented by a notifying runtime type. Unsafe calls discover its provider + // at runtime, while generated calls must rely on the declared type's mechanism. + if (sourceType?.TypeKind == TypeKind.Interface && AnalyzerHelpers.IsUnsafeBindingMethod(methodSymbol)) + { + return; + } + + context.ReportDiagnostic( + Diagnostic.Create( + DiagnosticWarnings.NoObservableProperties, + invocationOp.Syntax.GetLocation(), + sourceType!.Name)); + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/UnreachableTypeAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/UnreachableTypeAnalyzer.cs new file mode 100644 index 00000000..386457e7 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/UnreachableTypeAnalyzer.cs @@ -0,0 +1,159 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports binding calls that name a type generated code cannot reach (RXUIBIND015): an anonymous type, a private or +/// protected nested type, or a type built from one, in the call's signature or along an observed path. +/// +/// +/// +/// Generated overloads and interceptors are declared in a class of their own. The checks mirror the generator's: the +/// closed type arguments of the resolved method, then the owner of each link of every selector lambda. A link's value +/// type is the next link's owner, or at the leaf one of the type arguments, so it needs no check of its own. +/// +/// +/// On Roslyn 4.13 and newer the generator claims some of these calls with a generic interceptor. A claimed call is +/// not reported. Any other such call would reach the runtime stub and throw, so RXUIBIND015 is an error that fails +/// the build at the call. +/// +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class UnreachableTypeAnalyzer : DiagnosticAnalyzer +{ + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.UnreachableType, DiagnosticWarnings.TypeParameterCall }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// Reports a binding call that names a type generated code cannot reach. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocation = (IInvocationOperation)context.Operation; + var method = invocation.TargetMethod; + + if (!SourceGenerators.Helpers.ExtractorValidation.IsRecognizedExtensionClass(method.ContainingType) + || AnalyzerHelpers.IsUnsafeBindingMethod(method) + || !IsGeneratedMethodName(method.Name)) + { + return; + } + + var unreachable = FindUnreachable(invocation, in context); + if (unreachable is null || AnalyzerHelpers.IsIntercepted(invocation, context.CancellationToken)) + { + return; + } + + context.ReportDiagnostic(Diagnostic.Create( + SourceGenerators.Helpers.ExtractorValidation.ContainsTypeParameter(unreachable) + ? DiagnosticWarnings.TypeParameterCall + : DiagnosticWarnings.UnreachableType, + invocation.Syntax.GetLocation(), + unreachable.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat))); + } + + /// Finds the first type a binding call names that generated code cannot name. + /// The binding call. + /// The operation analysis context. + /// The unreachable type, or null when every type is reachable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ITypeSymbol? FindUnreachable(IInvocationOperation invocation, in OperationAnalysisContext context) => + FindUnreachableInSignature(invocation.TargetMethod, context.Compilation) + ?? FindUnreachableInPaths(invocation.Arguments, context); + + /// Finds the first type argument of a resolved method that generated code cannot name. + /// The resolved binding method. + /// The consumer compilation. + /// The unreachable type, or null when every type is reachable. + /// + /// A member of an extension block takes the block's type parameters through its grouping type, so those type + /// arguments are read as well. + /// + internal static ITypeSymbol? FindUnreachableInSignature(IMethodSymbol method, Compilation compilation) => + FindUnreachable(method.TypeArguments, compilation) ?? FindUnreachable(method.ContainingType.TypeArguments, compilation); + + /// Finds the first link of a selector lambda whose owner generated code cannot name. + /// The invocation arguments. + /// The operation analysis context. + /// The unreachable type, or null when every link is reachable. + internal static ITypeSymbol? FindUnreachableInPaths(ImmutableArray arguments, in OperationAnalysisContext context) + { + var semanticModel = context.Operation.SemanticModel!; + for (var i = 0; i < arguments.Length; i++) + { + if (arguments[i].Value.Syntax is not LambdaExpressionSyntax { ExpressionBody: { } body }) + { + continue; + } + + var current = AnalyzerHelpers.SkipNullForgivingAndParentheses(body); + while (current is MemberAccessExpressionSyntax memberAccess) + { + var owner = semanticModel.GetTypeInfo(memberAccess.Expression, context.CancellationToken).Type; + if (owner is not null && !IsReachable(owner, context.Compilation)) + { + return owner; + } + + current = AnalyzerHelpers.SkipNullForgivingAndParentheses(memberAccess.Expression); + } + } + + return null; + } + + /// Finds the first of a list of types that generated code cannot name. + /// The types. + /// The consumer compilation. + /// The unreachable type, or null when every type is reachable. + private static ITypeSymbol? FindUnreachable(ImmutableArray types, Compilation compilation) + { + for (var i = 0; i < types.Length; i++) + { + if (!IsReachable(types[i], compilation)) + { + return types[i]; + } + } + + return null; + } + + /// Determines whether the generator produces code for calls to a binding method of this name. + /// The method name. + /// for a generated entry point; runtime-only APIs such as WhenAnyDynamic are not. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool IsGeneratedMethodName(string name) => AnalyzerHelpers.IsGeneratedApiName(name); + + /// Determines whether generated code in the consumer's assembly can name a type. + /// The type. + /// The consumer compilation. + /// when the type is accessible from outside every type that declares it. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool IsReachable(ITypeSymbol type, Compilation compilation) => + SourceGenerators.Helpers.ExtractorValidation.IsReachableFromGeneratedCode(type, compilation); +} diff --git a/src/ReactiveUI.Binding.Analyzer/Analyzers/ViewThreadInvokerAnalyzer.cs b/src/ReactiveUI.Binding.Analyzer/Analyzers/ViewThreadInvokerAnalyzer.cs new file mode 100644 index 00000000..e7b40ca1 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/Analyzers/ViewThreadInvokerAnalyzer.cs @@ -0,0 +1,85 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using ReactiveUI.Binding.Helpers; +using ReactiveUI.Binding.SourceGenerators; +using ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +namespace ReactiveUI.Binding.Analyzer.Analyzers; + +/// +/// Reports a binding that writes to a WPF, WinForms or MAUI object when the platform package whose invoker marshals +/// the write onto the object's thread is not referenced (RXUIBIND017). +/// +/// +/// Every type a binding call is closed over is checked, which covers the view of a view-first binding, the target of +/// BindOneWay, BindTwoWay and BindTo, and the control of BindCommand. +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public class ViewThreadInvokerAnalyzer : DiagnosticAnalyzer +{ + /// The diagnostics this analyzer reports. + private static readonly ImmutableArray ReportedDiagnostics = + new[] { DiagnosticWarnings.MissingViewThreadInvoker }.ToImmutableArray(); + + /// + public override ImmutableArray SupportedDiagnostics => ReportedDiagnostics; + + /// + public override void Initialize(AnalysisContext context) + { + ArgumentExceptionHelper.ThrowIfNull(context); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(static operationContext => AnalyzeInvocation(in operationContext), OperationKind.Invocation); + } + + /// Reports a binding onto a UI object whose platform package is not referenced. + /// The operation analysis context. + internal static void AnalyzeInvocation(in OperationAnalysisContext context) + { + var invocation = (IInvocationOperation)context.Operation; + var method = invocation.TargetMethod; + if (!AnalyzerHelpers.IsBindingExtensionMethod(method) || !IsWritingApi(method.Name)) + { + return; + } + + var typeArguments = method.TypeArguments; + for (var i = 0; i < typeArguments.Length; i++) + { + if (ViewThreadPluginRegistry.MissingPackageFor(typeArguments[i], context.Compilation) is not { } package) + { + continue; + } + + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticWarnings.MissingViewThreadInvoker, + invocation.Syntax.GetLocation(), + typeArguments[i].ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat), + package)); + return; + } + } + + /// Determines whether a binding method writes to a target, whether generated or Unsafe. + /// The method name. + /// for a binding that writes to a view, target or control. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWritingApi(string name) => + (name.EndsWith(AnalyzerHelpers.UnsafeMethodSuffix, StringComparison.Ordinal) + ? name[..^AnalyzerHelpers.UnsafeMethodSuffix.Length] + : name) + is Constants.BindMethodName + or Constants.OneWayBindMethodName + or Constants.BindOneWayMethodName + or Constants.BindTwoWayMethodName + or Constants.BindToMethodName + or Constants.BindCommandMethodName; +} diff --git a/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyCodeFixProvider.cs b/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyCodeFixProvider.cs new file mode 100644 index 00000000..4120689f --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyCodeFixProvider.cs @@ -0,0 +1,167 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.CodeActions; +using Microsoft.CodeAnalysis.CodeFixes; +using ReactiveUI.Binding.Analyzer.Analyzers; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Analyzer.CodeFixes; + +/// +/// Rewrites the [ObservableAsProperty] forms ReactiveUI's older source generator accepted (a field, a method or an +/// observable property) as partial properties the generator implements (RXUIBIND018). +/// +/// +/// +/// Every marked member of a type is rewritten in one pass, because a method or an observable property adds a statement +/// to the same InitializeOAPH method. That method assigns each helper with ToProperty, and the constructor +/// calls it, as it called the one the older generator wrote. +/// +/// +/// A field becomes a property named after it, without its _ or m_ prefix. Its initializer becomes the +/// attribute's InitialValue, and its Inheritance a modifier. A method or an observable property keeps its +/// declaration, and gains a property named by PropertyName, or by its own name followed by Property. +/// Partial properties need C# 13, so the fix is offered from C# 13. +/// +/// +[ExportCodeFixProvider(LanguageNames.CSharp)] +public sealed class ObservableAsPropertyCodeFixProvider : CodeFixProvider +{ + /// The title of the code action, which also identifies it for fix-all. + internal const string Title = "Convert [ObservableAsProperty] members to partial properties"; + + /// The LanguageVersion value of C# 13, which Roslyn 4.8 does not name. + private const int CSharp13 = 1300; + + /// + public override ImmutableArray FixableDiagnosticIds { get; } = + new[] { DiagnosticWarnings.ObservableAsPropertyNeedsPartialProperty.Id }.ToImmutableArray(); + + /// + public override FixAllProvider GetFixAllProvider() => FixAllProvider.Create(FixAllInDocumentAsync); + + /// + public override async Task RegisterCodeFixesAsync(CodeFixContext context) + { + var diagnostic = context.Diagnostics[0]; + if (!IsFixable(diagnostic, context.Document)) + { + return; + } + + var root = await context.Document.GetSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false); + var type = root!.FindNode(diagnostic.Location.SourceSpan).FirstAncestorOrSelf()!; + context.RegisterCodeFix( + CodeAction.Create(Title, ct => RewriteTypesAsync(context.Document, [type], ct), Title), + diagnostic); + } + + /// Checks whether a diagnostic names a form the fix rewrites, in a project that has partial properties. + /// The diagnostic. + /// The document it is in. + /// when the fix applies. + internal static bool IsFixable(Diagnostic diagnostic, Document document) => + diagnostic.Properties.ContainsKey(ObservableAsPropertyAnalyzer.FormProperty) + && document.Project.ParseOptions is CSharpParseOptions { LanguageVersion: var version } + && (int)version >= CSharp13; + + /// Rewrites every type in a document that holds a diagnosed member. + /// The fix-all context. + /// The document. + /// The diagnostics in the document. + /// The rewritten document, or null when nothing applies. + private static async Task FixAllInDocumentAsync(FixAllContext context, Document document, ImmutableArray diagnostics) + { + var root = await document.GetSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false); + var types = new List(); + for (var i = 0; i < diagnostics.Length; i++) + { + if (IsFixable(diagnostics[i], document) + && root!.FindNode(diagnostics[i].Location.SourceSpan).FirstAncestorOrSelf() is { } type + && !types.Contains(type)) + { + types.Add(type); + } + } + + return types.Count == 0 ? null : await RewriteTypesAsync(document, types, context.CancellationToken).ConfigureAwait(false); + } + + /// Rewrites the marked members of each type, and makes each type and every type around it partial. + /// The document. + /// The type declarations to rewrite. + /// Cancellation token. + /// The rewritten document. + private static async Task RewriteTypesAsync(Document document, List types, CancellationToken ct) + { + var root = (await document.GetSyntaxRootAsync(ct).ConfigureAwait(false))!; + var model = (await document.GetSemanticModelAsync(ct).ConfigureAwait(false))!; + var newLine = LineEnding(root); + var rewritten = new Dictionary(types.Count); + for (var i = 0; i < types.Count; i++) + { + rewritten[types[i]] = ObservableAsPropertyRewriter.RewriteType(types[i], model, newLine, ct); + } + + root = root.ReplaceNodes(rewritten.Keys, (original, _) => rewritten[original]); + return document.WithSyntaxRoot(MakeContainersPartial(root)); + } + + /// Reads the line ending a document uses. + /// The document root. + /// The first line ending in the document, or \n when it has none. + private static string LineEnding(SyntaxNode root) + { + foreach (var trivia in root.DescendantTrivia()) + { + if (trivia.IsKind(SyntaxKind.EndOfLineTrivia)) + { + return trivia.ToString(); + } + } + + return "\n"; + } + + /// Adds partial to every type that holds a written property, or holds a type that does. + /// The document root. + /// The root with the modifiers added. + private static SyntaxNode MakeContainersPartial(SyntaxNode root) + { + var needed = new HashSet(); + foreach (var annotated in root.GetAnnotatedNodes(ObservableAsPropertyRewriter.ConvertedKind)) + { + foreach (var ancestor in annotated.Ancestors()) + { + if (ancestor is TypeDeclarationSyntax type && !type.Modifiers.Any(SyntaxKind.PartialKeyword)) + { + _ = needed.Add(type); + } + } + } + + return needed.Count == 0 ? root : root.ReplaceNodes(needed, static (_, type) => AddPartial(type)); + } + + /// Adds the partial modifier just before a type's keyword. + /// The type declaration. + /// The declaration with the modifier. + private static TypeDeclarationSyntax AddPartial(TypeDeclarationSyntax type) + { + if (type.Modifiers.Count != 0) + { + return type.AddModifiers(SyntaxFactory.Token(SyntaxKind.PartialKeyword).WithTrailingTrivia(SyntaxFactory.Space)); + } + + var leading = type.Keyword.LeadingTrivia; + return type + .WithKeyword(type.Keyword.WithLeadingTrivia()) + .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(leading, SyntaxKind.PartialKeyword, SyntaxFactory.TriviaList(SyntaxFactory.Space)))); + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyRewriter.cs b/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyRewriter.cs new file mode 100644 index 00000000..188ee4c4 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/CodeFixes/ObservableAsPropertyRewriter.cs @@ -0,0 +1,460 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.Analyzer.Analyzers; + +namespace ReactiveUI.Binding.Analyzer.CodeFixes; + +/// Rewrites the marked fields, methods and observable properties of one type as partial properties. +internal static class ObservableAsPropertyRewriter +{ + /// The annotation marking a property the rewrite wrote, so its containing types can be made partial. + internal const string ConvertedKind = "ReactiveUI.Binding.ObservableAsPropertyConverted"; + + /// The name of the method that assigns the helpers of methods and observable properties. + internal const string InitializeMethodName = "InitializeOAPH"; + + /// The prefix some field names start with, which the property name drops. + private const string MemberPrefix = "m_"; + + /// One level of indentation inside a method body. + private const string BodyIndent = " "; + + /// The attribute arguments a field keeps; its initializer replaces InitialValue, and Inheritance becomes a modifier. + private static readonly string[] FieldArguments = ["ReadOnly", "UseProtected"]; + + /// The attribute arguments a method or observable property keeps; its helper was never readonly. + private static readonly string[] SourceArguments = ["UseProtected", "InitialValue"]; + + /// The type format a written property repeats, nullable annotation included. + private static readonly SymbolDisplayFormat TypeFormat = SymbolDisplayFormat.MinimallyQualifiedFormat + .AddMiscellaneousOptions(SymbolDisplayMiscellaneousOptions.IncludeNullableReferenceTypeModifier); + + /// Rewrites every marked field, method and observable property of a type. + /// The type declaration. + /// The semantic model of the document. + /// The line ending the document uses. + /// Cancellation token. + /// The rewritten declaration. + internal static TypeDeclarationSyntax RewriteType(TypeDeclarationSyntax type, SemanticModel model, string newLine, CancellationToken ct) + { + var context = new RewriteContext(model, newLine, IndentOf(type), ct); + var members = new List(type.Members.Count + 1); + for (var i = 0; i < type.Members.Count; i++) + { + var member = type.Members[i]; + var converted = member switch + { + FieldDeclarationSyntax field => ConvertField(field, context), + MethodDeclarationSyntax or PropertyDeclarationSyntax => ConvertSource(member, context), + _ => null, + }; + + if (converted is null) + { + members.Add(member); + continue; + } + + members.AddRange(converted); + } + + if (context.Statements.Count != 0) + { + AddInitializeStatements(members, context); + } + + var rewritten = type.WithMembers(SyntaxFactory.List(members)); + return context.Renames.Count == 0 ? rewritten : (TypeDeclarationSyntax)new IdentifierRenamer(context.Renames).Visit(rewritten); + } + + /// Names the property a field becomes: without its _ or m_ prefix, and starting upper case. + /// The field name. + /// The property name, or an empty string when nothing is left of the name. + internal static string PropertyNameFromField(string fieldName) + { + var name = fieldName.StartsWith(MemberPrefix, StringComparison.Ordinal) ? fieldName[MemberPrefix.Length..] : fieldName.TrimStart('_'); + return name.Length == 0 ? name : $"{char.ToUpperInvariant(name[0])}{name[1..]}"; + } + + /// Names the helper field the generator writes for a property. + /// The property name. + /// _{name}Helper, with the first letter lowered. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string HelperName(string propertyName) => + $"_{char.ToLowerInvariant(propertyName[0])}{propertyName[1..]}Helper"; + + /// Rewrites a marked field as the partial property it backs. + /// The field declaration. + /// The rewrite's shared state. + /// The property, or null when the field is not marked or cannot be rewritten. + private static MemberDeclarationSyntax[]? ConvertField(FieldDeclarationSyntax field, RewriteContext context) + { + if (field.Declaration.Variables is not [var variable] + || context.Model.GetDeclaredSymbol(variable, context.Ct) is not IFieldSymbol { IsStatic: false } symbol + || context.FindAttribute(symbol) is not { } attribute) + { + return null; + } + + var name = variable.Identifier.ValueText; + var propertyName = PropertyNameFromField(name); + if (propertyName.Length == 0 || propertyName == name + || InitialValueArgument(variable.Initializer?.Value, symbol.Type) is not { } initialValue) + { + return null; + } + + var arguments = KeptArguments(attribute, FieldArguments); + if (initialValue.Length != 0) + { + arguments.Add($"InitialValue = {initialValue}"); + } + + var lines = new List { AttributeText(attribute, arguments) }; + AddMovedAttributes(lines, field.AttributeLists, attribute, includeUntargeted: true); + var declaration = $"public {InheritanceModifier(attribute)}partial {field.Declaration.Type.ToString().Trim()}"; + var property = BuildProperty(lines, declaration, propertyName, context) + .WithLeadingTrivia(field.GetLeadingTrivia()) + .WithTrailingTrivia(field.GetTrailingTrivia()); + + context.Renames[name] = propertyName; + var oldHelper = $"{name}Helper"; + var newHelper = HelperName(propertyName); + if (oldHelper != newHelper) + { + context.Renames[oldHelper] = newHelper; + } + + return [property]; + } + + /// Keeps a marked method or observable property, and adds the partial property its values back. + /// The method or property declaration. + /// The rewrite's shared state. + /// The member without the attribute and the new property, or null when it is not a form to rewrite. + private static MemberDeclarationSyntax[]? ConvertSource(MemberDeclarationSyntax member, RewriteContext context) + { + var (symbol, returnType, call) = context.Model.GetDeclaredSymbol(member, context.Ct) switch + { + IMethodSymbol { IsStatic: false, Parameters.Length: 0 } method => ((ISymbol?)method, method.ReturnType, $"{method.Name}()"), + IPropertySymbol { IsStatic: false } candidate when !ObservableAsPropertyAnalyzer.IsGeneratedForm(candidate) => (candidate, candidate.Type, candidate.Name), + _ => (null, null, null), + }; + + if (symbol is null + || context.FindAttribute(symbol) is not { } attribute + || ObservableAsPropertyAnalyzer.ObservedType(returnType!, context.Observable) is not { } valueType) + { + return null; + } + + var propertyName = NamedString(attribute, "PropertyName") ?? $"{symbol.Name}Property"; + var lines = new List { AttributeText(attribute, KeptArguments(attribute, SourceArguments)) }; + AddMovedAttributes(lines, member.AttributeLists, attribute, includeUntargeted: false); + var typeText = valueType.ToMinimalDisplayString(context.Model, member.SpanStart, TypeFormat); + var property = BuildProperty(lines, $"public partial {typeText}", propertyName, context) + .WithLeadingTrivia(SyntaxFactory.EndOfLine(context.NewLine), SyntaxFactory.Whitespace(context.Indent)) + .WithTrailingTrivia(SyntaxFactory.EndOfLine(context.NewLine)); + + context.Statements.Add($"{HelperName(propertyName)} = {call}.ToProperty(this, nameof({propertyName}));"); + return [WithoutMovedAttributes(member, attribute), property]; + } + + /// Writes a property declaration below its attribute lines. + /// The attribute lists, one per line. + /// The modifiers and the property type. + /// The property name. + /// The rewrite's shared state. + /// The parsed declaration, marked as converted. + private static MemberDeclarationSyntax BuildProperty(List attributeLines, string modifiersAndType, string name, RewriteContext context) + { + var separator = context.NewLine + context.Indent; + var text = $"{string.Join(separator, attributeLines)}{separator}{modifiersAndType} {name} {{ get; }}"; + return SyntaxFactory.ParseMemberDeclaration(text)!.WithAdditionalAnnotations(new SyntaxAnnotation(ConvertedKind)); + } + + /// Adds the helper assignments to the type's InitializeOAPH, writing the method when the type has none. + /// The type's members so far. + /// The rewrite's shared state. + private static void AddInitializeStatements(List members, RewriteContext context) + { + for (var i = 0; i < members.Count; i++) + { + if (members[i] is not MethodDeclarationSyntax { Identifier.ValueText: InitializeMethodName, ParameterList.Parameters.Count: 0, Body: { } body } existing) + { + continue; + } + + var statements = body.Statements; + for (var s = 0; s < context.Statements.Count; s++) + { + statements = statements.Add(SyntaxFactory.ParseStatement(context.Statements[s]) + .WithLeadingTrivia(SyntaxFactory.Whitespace(context.Indent + BodyIndent)) + .WithTrailingTrivia(SyntaxFactory.EndOfLine(context.NewLine))); + } + + members[i] = existing.WithBody(body.WithStatements(statements)); + return; + } + + var separator = context.NewLine + context.Indent; + var text = new System.Text.StringBuilder() + .Append("/// Assigns the helpers of the properties built from observables. Call it from the constructor.") + .Append(separator).Append("protected void ").Append(InitializeMethodName).Append("()") + .Append(separator).Append('{'); + for (var s = 0; s < context.Statements.Count; s++) + { + _ = text.Append(separator).Append(BodyIndent).Append(context.Statements[s]); + } + + _ = text.Append(separator).Append('}').Append(context.NewLine); + + // The doc comment parses as the method's leading trivia; a blank line and the indentation go in front of it. + var method = SyntaxFactory.ParseMemberDeclaration(text.ToString())!; + var leading = SyntaxFactory.TriviaList(SyntaxFactory.EndOfLine(context.NewLine), SyntaxFactory.Whitespace(context.Indent)) + .AddRange(method.GetLeadingTrivia()); + members.Add(method.WithLeadingTrivia(leading)); + } + + /// Writes the value of the InitialValue argument a field's initializer becomes. + /// The initializer, or null. + /// The field type. + /// + /// The argument's expression, an empty string for no initializer, or null when a string field is initialised with + /// something other than a literal, which InitialValue cannot hold. + /// + private static string? InitialValueArgument(ExpressionSyntax? initializer, ITypeSymbol type) + { + if (initializer is null) + { + return string.Empty; + } + + if (type.SpecialType != SpecialType.System_String) + { + return SymbolDisplay.FormatLiteral(initializer.ToString(), true); + } + + return initializer is LiteralExpressionSyntax { RawKind: (int)SyntaxKind.StringLiteralExpression } literal + ? SymbolDisplay.FormatLiteral(literal.Token.ValueText, true) + : null; + } + + /// Returns the modifier a field's Inheritance argument names, read from its syntax so either enum works. + /// The attribute. + /// virtual , override , new , or an empty string. + private static string InheritanceModifier(AttributeData attribute) => + FindArgument(attribute, "Inheritance")?.Expression switch + { + MemberAccessExpressionSyntax { Name.Identifier.ValueText: "Virtual" } => "virtual ", + MemberAccessExpressionSyntax { Name.Identifier.ValueText: "Override" } => "override ", + MemberAccessExpressionSyntax { Name.Identifier.ValueText: "New" } => "new ", + _ => string.Empty, + }; + + /// Reads a named string argument of the attribute. + /// The attribute. + /// The argument name. + /// The value, or null when the argument is absent. + private static string? NamedString(AttributeData attribute, string name) + { + var arguments = attribute.NamedArguments; + for (var i = 0; i < arguments.Length; i++) + { + if (arguments[i].Key == name && arguments[i].Value.Value is string value) + { + return value; + } + } + + return null; + } + + /// Finds a named argument's syntax on the attribute. + /// The attribute. + /// The argument name. + /// The argument, or null when it is absent. + private static AttributeArgumentSyntax? FindArgument(AttributeData attribute, string name) + { + var arguments = SyntaxOf(attribute).ArgumentList?.Arguments ?? default; + for (var i = 0; i < arguments.Count; i++) + { + if (arguments[i].NameEquals?.Name.Identifier.ValueText == name) + { + return arguments[i]; + } + } + + return null; + } + + /// Copies the named arguments the new attribute keeps, as written. + /// The attribute. + /// The names of the arguments to keep. + /// The arguments' text. + private static List KeptArguments(AttributeData attribute, string[] kept) + { + var result = new List(); + var arguments = SyntaxOf(attribute).ArgumentList?.Arguments ?? default; + for (var i = 0; i < arguments.Count; i++) + { + if (arguments[i].NameEquals is { } name && Array.IndexOf(kept, name.Name.Identifier.ValueText) >= 0) + { + result.Add(arguments[i].ToString().Trim()); + } + } + + return result; + } + + /// Writes the attribute as it is spelled, with the given arguments. + /// The attribute. + /// The arguments. + /// The attribute list's text. + private static string AttributeText(AttributeData attribute, List arguments) + { + var name = SyntaxOf(attribute).Name.ToString(); + return arguments.Count == 0 ? $"[{name}]" : $"[{name}({string.Join(", ", arguments)})]"; + } + + /// + /// Adds the attributes that move onto the new property: those targeted at property: or field:, and for a + /// field, the untargeted ones too, since the field is gone. + /// + /// The attribute lines of the new property. + /// The member's attribute lists. + /// The [ObservableAsProperty], which is rewritten separately. + /// Whether untargeted attributes move as well. + private static void AddMovedAttributes(List lines, SyntaxList lists, AttributeData attribute, bool includeUntargeted) + { + var own = SyntaxOf(attribute); + foreach (var list in lists) + { + if (list.Target is null && !includeUntargeted) + { + continue; + } + + var moved = new List(list.Attributes.Count); + foreach (var candidate in list.Attributes) + { + if (candidate != own) + { + moved.Add(candidate.ToString()); + } + } + + if (moved.Count != 0) + { + lines.Add($"[{string.Join(", ", moved)}]"); + } + } + } + + /// Removes the [ObservableAsProperty] and the targeted attributes that moved from a member. + /// The member. + /// The [ObservableAsProperty]. + /// The member without them, keeping its leading trivia. + private static MemberDeclarationSyntax WithoutMovedAttributes(MemberDeclarationSyntax member, AttributeData attribute) + { + var own = SyntaxOf(attribute); + var kept = new List(); + foreach (var list in member.AttributeLists) + { + if (list.Target is not null) + { + continue; + } + + var remaining = new List(list.Attributes.Count); + foreach (var candidate in list.Attributes) + { + if (candidate != own) + { + remaining.Add(candidate); + } + } + + if (remaining.Count != 0) + { + kept.Add(list.WithAttributes(SyntaxFactory.SeparatedList(remaining))); + } + } + + return member.WithAttributeLists(SyntaxFactory.List(kept)).WithLeadingTrivia(member.GetLeadingTrivia()); + } + + /// Returns the syntax an attribute was written with. + /// The attribute, which is always applied in source here. + /// The attribute syntax. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static AttributeSyntax SyntaxOf(AttributeData attribute) => + (AttributeSyntax)attribute.ApplicationSyntaxReference!.GetSyntax(); + + /// Reads the indentation of a type's members. + /// The type declaration, which holds at least the marked member. + /// The whitespace before its first member. + private static string IndentOf(TypeDeclarationSyntax type) + { + var leading = type.Members[0].GetLeadingTrivia(); + return leading.Count != 0 && leading[leading.Count - 1].IsKind(SyntaxKind.WhitespaceTrivia) ? leading[leading.Count - 1].ToString() : string.Empty; + } + + /// The state one rewrite of a type shares between its members. + /// The semantic model of the document. + /// The line ending the document uses. + /// The indentation of the type's members. + /// Cancellation token. + private sealed class RewriteContext(SemanticModel model, string newLine, string indent, CancellationToken ct) + { + /// Gets the semantic model of the document. + public SemanticModel Model { get; } = model; + + /// Gets the line ending the document uses. + public string NewLine { get; } = newLine; + + /// Gets the indentation of the type's members. + public string Indent { get; } = indent; + + /// Gets the cancellation token. + public CancellationToken Ct { get; } = ct; + + /// Gets the open IObservable<T>. + public INamedTypeSymbol? Observable { get; } = model.Compilation.GetTypeByMetadataName("System.IObservable`1"); + + /// Gets the helper assignments InitializeOAPH makes. + public List Statements { get; } = []; + + /// Gets the identifiers to rename: a field to its property, and its old helper name to the new one. + public Dictionary Renames { get; } = [with(StringComparer.Ordinal)]; + + /// Gets the lean runtime's attribute type, or null when it is not referenced. + private INamedTypeSymbol? Lean { get; } = model.Compilation.GetTypeByMetadataName(ObservableAsPropertyAnalyzer.LeanAttributeName); + + /// Gets the System.Reactive runtime's attribute type, or null when it is not referenced. + private INamedTypeSymbol? Reactive { get; } = model.Compilation.GetTypeByMetadataName(ObservableAsPropertyAnalyzer.ReactiveAttributeName); + + /// Finds the [ObservableAsProperty] on a member. + /// The member. + /// The attribute, or null when the member has none. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public AttributeData? FindAttribute(ISymbol symbol) => ObservableAsPropertyAnalyzer.FindAttribute(symbol, Lean, Reactive); + } + + /// Renames identifiers that named a removed field or its helper. + /// The old names and the names that replace them. + private sealed class IdentifierRenamer(Dictionary renames) : CSharpSyntaxRewriter + { + /// + public override SyntaxNode? VisitIdentifierName(IdentifierNameSyntax node) => + renames.TryGetValue(node.Identifier.ValueText, out var name) + ? node.WithIdentifier(SyntaxFactory.Identifier(name).WithTriviaFrom(node.Identifier)) + : node; + } +} diff --git a/src/ReactiveUI.Binding.Analyzer/ReactiveUI.Binding.Analyzer.csproj b/src/ReactiveUI.Binding.Analyzer/ReactiveUI.Binding.Analyzer.csproj new file mode 100644 index 00000000..41bd2d73 --- /dev/null +++ b/src/ReactiveUI.Binding.Analyzer/ReactiveUI.Binding.Analyzer.csproj @@ -0,0 +1,64 @@ + + + netstandard2.0 + true + true + false + Diagnostic analyzers and code fix providers for ReactiveUI binding source generator. + + $(NoWarn);RS1038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..99098706 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,46 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.Reactive.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..99098706 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,46 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.Reactive.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net8.0/PublicAPI.txt new file mode 100644 index 00000000..99098706 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net8.0/PublicAPI.txt @@ -0,0 +1,46 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.Reactive.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net9.0/PublicAPI.txt new file mode 100644 index 00000000..99098706 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Reactive/PublicAPI/net9.0/PublicAPI.txt @@ -0,0 +1,46 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.Reactive.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Reactive/ReactiveUI.Binding.Avalonia.Reactive.csproj b/src/ReactiveUI.Binding.Avalonia.Reactive/ReactiveUI.Binding.Avalonia.Reactive.csproj new file mode 100644 index 00000000..88314c1c --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Reactive/ReactiveUI.Binding.Avalonia.Reactive.csproj @@ -0,0 +1,53 @@ + + + + $(BindingCoreTargets) + ReactiveUI.Binding.Reactive.Avalonia + Avalonia platform support for ReactiveUI.Binding.Reactive, for consumers on System.Reactive. + reactiveui;binding;avalonia;system.reactive + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaBindingModule.cs b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaBindingModule.cs new file mode 100644 index 00000000..6e6e0d7c --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaBindingModule.cs @@ -0,0 +1,27 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia; +#else +namespace ReactiveUI.Binding.Avalonia; +#endif + +/// Registers the Avalonia property observer, command binder and view thread invoker with the dependency resolver. +public sealed class AvaloniaBindingModule : IModule +{ + /// + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + resolver.RegisterLazySingleton(static () => new AvaloniaObjectObservableForProperty()); + + resolver.RegisterLazySingleton(static () => new AvaloniaCreatesCommandBinding()); + + resolver.RegisterLazySingleton(static () => AvaloniaViewThreadInvoker.Instance); + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaCreatesCommandBinding.cs b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaCreatesCommandBinding.cs new file mode 100644 index 00000000..b6a8d195 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaCreatesCommandBinding.cs @@ -0,0 +1,338 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows.Input; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; +using Avalonia.Interactivity; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia; +#else +namespace ReactiveUI.Binding.Avalonia; +#endif + +/// Binds commands to Avalonia input elements, through a command source's Command property or through a routed event. +/// +/// A control that implements ICommandSource, such as a button or a menu item, is bound through its +/// Command and CommandParameter properties. Any other input element is bound through a routed event +/// that executes the command and keeps IsEnabled in step with CanExecute. +/// +public sealed class AvaloniaCreatesCommandBinding : ICreatesCommandBinding +{ + /// The affinity of a binding through a named routed event. + private const int EventTargetAffinity = 6; + + /// The affinity of a binding through an ICommandSource's Command property. + private const int CommandSourceAffinity = 10; + + /// Returns how well this binder handles controls of type . + /// The control type. + /// when the binding names an event. + /// + /// Zero for a type that is not an InputElement; 6 for an input element bound through an event; 10 for an + /// input element that implements ICommandSource and is bound without an event; otherwise zero. + /// + public int GetAffinityForObject(bool hasEventTarget) + { + if (!typeof(InputElement).IsAssignableFrom(typeof(T))) + { + return 0; + } + + if (hasEventTarget) + { + return EventTargetAffinity; + } + + return typeof(ICommandSource).IsAssignableFrom(typeof(T)) ? CommandSourceAffinity : 0; + } + + /// Sets as the control's Command and binds its CommandParameter to . + /// The control type. + /// The command, or null to clear the control's command. + /// The control, or null when there is nothing to bind. + /// The values the control's CommandParameter follows. + /// + /// A binding that clears the command and parameter when disposed; an empty disposable after clearing the command; + /// or null when is null, or when the command is null and the target is not a command source. + /// + /// is not an InputElement that implements ICommandSource. + public IDisposable? BindCommandToObject(ICommand? command, T? target, IObservable commandParameter) + where T : class + { + if (target is null) + { + return null; + } + + if (target is not (InputElement element and ICommandSource)) + { + if (command is null) + { + return null; + } + + throw new InvalidOperationException("Target must be an InputElement and implement ICommandSource."); + } + + if (command is null) + { + element.SetCurrentValue(Button.CommandProperty, null); + return EmptyDisposable.Instance; + } + + // Button.CommandProperty is the property every button-like control and menu item shares. + element.SetCurrentValue(Button.CommandProperty, command); + var parameterBinding = element.Bind(Button.CommandParameterProperty, commandParameter); + return Scope.Create( + new(element, command, parameterBinding), + static state => + { + state.ParameterBinding.Dispose(); + if (!ReferenceEquals(state.Element.GetValue(Button.CommandProperty), state.Command)) + { + return; + } + + state.Element.ClearValue(Button.CommandProperty); + }); + } + + /// Executes whenever the routed event named is raised on the control. + /// The control type. + /// The event's argument type; the routed event's arguments must be assignable to it. + /// The command, or null when there is nothing to bind. + /// The control, or null when there is nothing to bind. + /// The values passed to the command. + /// The name of a routed event the control or one of its base types registers. + /// A binding that removes the handler when disposed, or null when the command or target is null. + /// + /// is not an InputElement, or registers no routed event named + /// whose arguments are a . + /// + public IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter, + string eventName) + where T : class + { + if (command is null || target is null) + { + return null; + } + + if (target is not InputElement element) + { + throw new InvalidOperationException("Target must be an InputElement."); + } + + var routedEvent = FindRoutedEvent(element.GetType(), eventName, typeof(TEventArgs)) + ?? throw new InvalidOperationException($"Routed Event {eventName} not found on {element.GetType().Name} element."); + return new RoutedEventCommandBinding(element, routedEvent, command, commandParameter); + } + + /// Executes whenever the event attached through is raised. + /// The control type. + /// The event's argument type. + /// The command, or null when there is nothing to bind. + /// The control, or null when there is nothing to bind. + /// The values passed to the command. + /// Attaches a handler to the event. + /// Detaches the handler from the event. + /// A binding that detaches the handler when disposed, or null when the command or target is null. + /// or is null. + public IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter, + Action> addHandler, + Action> removeHandler) + where T : class + where TEventArgs : EventArgs + { + ArgumentExceptionHelper.ThrowIfNull(addHandler); + ArgumentExceptionHelper.ThrowIfNull(removeHandler); + + return command is null || target is null + ? null + : new HandlerCommandBinding(command, commandParameter, addHandler, removeHandler); + } + + /// Finds a routed event by name and argument type on or one of its base types. + /// The input element type to start from. + /// The event name; the comparison is case-sensitive. + /// The type the event's arguments must be assignable to. + /// The routed event, or null when no type in the hierarchy registers a matching one. + private static RoutedEvent? FindRoutedEvent(Type type, string eventName, Type argumentsType) + { + for (Type? current = type; typeof(InputElement).IsAssignableFrom(current); current = current.BaseType) + { + var registered = RoutedEventRegistry.Instance.GetRegistered(current); + for (var i = 0; i < registered.Count; i++) + { + if (string.Equals(registered[i].Name, eventName, StringComparison.Ordinal) + && argumentsType.IsAssignableFrom(registered[i].EventArgsType)) + { + return registered[i]; + } + } + } + + return null; + } + + /// The control, command and parameter binding a command-property binding releases when disposed. + /// The control whose Command was set. + /// The command that was set. + /// The binding of the control's CommandParameter. + private readonly record struct CommandPropertyBinding(AvaloniaObject Element, ICommand Command, IDisposable ParameterBinding); + + /// Executes a command when a routed event is raised and keeps the element's IsEnabled in step with CanExecute. + private sealed class RoutedEventCommandBinding : IDisposable, IObserver + { + /// The element the handler is attached to. + private readonly InputElement _element; + + /// The routed event the handler is attached to. + private readonly RoutedEvent _routedEvent; + + /// The command to execute. + private readonly ICommand _command; + + /// The handler attached to the routed event. + private readonly EventHandler _handler; + + /// The subscription to the command parameter. + private readonly IDisposable _parameterSubscription; + + /// The latest command parameter. + private object? _parameter; + + /// Initializes a new instance of the class and attaches its handler. + /// The element to attach the handler to. + /// The routed event to handle. + /// The command to execute. + /// The values passed to the command. + public RoutedEventCommandBinding(InputElement element, RoutedEvent routedEvent, ICommand command, IObservable commandParameter) + { + _element = element; + _routedEvent = routedEvent; + _command = command; + _handler = OnEvent; + _parameterSubscription = commandParameter.Subscribe(this); + element.AddHandler(routedEvent, _handler, RoutingStrategies.Bubble); + } + + /// + public void Dispose() + { + _parameterSubscription.Dispose(); + _element.RemoveHandler(_routedEvent, _handler); + _element.ClearValue(InputElement.IsEnabledProperty); + } + + /// + public void OnNext(object? value) + { + _parameter = value; + _element.SetCurrentValue(InputElement.IsEnabledProperty, _command.CanExecute(value)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => ExceptionDispatchInfo.Capture(error).Throw(); + + /// + public void OnCompleted() + { + } + + /// Executes the command with the latest parameter when it can execute. + /// The element that raised the event. + /// The event arguments. + private void OnEvent(object? sender, RoutedEventArgs args) + { + if (!_command.CanExecute(_parameter)) + { + return; + } + + _command.Execute(_parameter); + } + } + + /// Executes a command when a CLR event is raised. + /// The event's argument type. + private sealed class HandlerCommandBinding : IDisposable, IObserver + where TEventArgs : EventArgs + { + /// The command to execute. + private readonly ICommand _command; + + /// Detaches the handler from the event. + private readonly Action> _removeHandler; + + /// The handler attached to the event. + private readonly EventHandler _handler; + + /// The subscription to the command parameter. + private readonly IDisposable _parameterSubscription; + + /// The latest command parameter. + private object? _parameter; + + /// Initializes a new instance of the class and attaches its handler. + /// The command to execute. + /// The values passed to the command. + /// Attaches the handler to the event. + /// Detaches the handler from the event. + public HandlerCommandBinding( + ICommand command, + IObservable commandParameter, + Action> addHandler, + Action> removeHandler) + { + _command = command; + _removeHandler = removeHandler; + _handler = OnEvent; + _parameterSubscription = commandParameter.Subscribe(this); + addHandler(_handler); + } + + /// + public void Dispose() + { + _parameterSubscription.Dispose(); + _removeHandler(_handler); + } + + /// + public void OnNext(object? value) => _parameter = value; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => ExceptionDispatchInfo.Capture(error).Throw(); + + /// + public void OnCompleted() + { + } + + /// Executes the command with the latest parameter when it can execute. + /// The object that raised the event. + /// The event arguments. + private void OnEvent(object? sender, TEventArgs args) + { + if (!_command.CanExecute(_parameter)) + { + return; + } + + _command.Execute(_parameter); + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaObjectObservableForProperty.cs b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaObjectObservableForProperty.cs new file mode 100644 index 00000000..1393298b --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaObjectObservableForProperty.cs @@ -0,0 +1,110 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Avalonia; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia; +#else +namespace ReactiveUI.Binding.Avalonia; +#endif + +/// Observes a property of an AvaloniaObject through the AvaloniaProperty registered under its name. +/// +/// The observable raises after the value changes, and each notification carries the new value. Avalonia raises no +/// before-change notification, so a before-change request receives the same after-change observable. +/// +public sealed class AvaloniaObjectObservableForProperty : ICreatesObservableForProperty +{ + /// The affinity of a registered Avalonia property, the same as a WPF dependency property's. + private static readonly int AvaloniaPropertyAffinity = BindingAffinity.WpfDependencyObject; + + /// Returns the Avalonia property affinity when the type registers an Avalonia property with the given name. + /// The type that owns the property. + /// The property name. + /// Ignored. + /// The Avalonia property affinity for an AvaloniaObject type that registers the property; otherwise zero. + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) + { + if (!typeof(AvaloniaObject).IsAssignableFrom(type)) + { + return 0; + } + + return FindProperty(type, propertyName) is not null ? AvaloniaPropertyAffinity : 0; + } + + /// Returns an observable that raises whenever the Avalonia property changes on . + /// The AvaloniaObject to observe. + /// The expression carried on each notification. + /// The property name. + /// Ignored; notifications are always after the change. + /// to skip the debug message written when no property is found. + /// An observable that attaches to the object's property-changed event and detaches on disposal. + /// is null. + /// is not an AvaloniaObject. + /// The type registers no Avalonia property named . + public IObservable> GetNotificationForProperty( + object sender, + System.Linq.Expressions.Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + + if (sender is not AvaloniaObject avaloniaObject) + { + throw new ArgumentException("The sender is not an AvaloniaObject.", nameof(sender)); + } + + var type = sender.GetType(); + var property = FindProperty(type, propertyName); + if (property is null) + { + if (!suppressWarnings) + { + Debug.WriteLine($"[ReactiveUI.Binding.Avalonia] Error: Couldn't find Avalonia property {propertyName} on {type.Name}"); + } + + throw new MissingMemberException(type.FullName, propertyName); + } + + return new AnonymousObservable>(observer => + { + EventHandler handler = (_, args) => + { + if (args.Property != property) + { + return; + } + + observer.OnNext(new ObservedChange(sender, expression, args.NewValue)); + }; + + avaloniaObject.PropertyChanged += handler; + return Scope.Create( + new(avaloniaObject, handler), + static state => state.Sender.PropertyChanged -= state.Handler); + }); + } + + /// Finds the Avalonia property registered on under . + /// The type to search. + /// The property name; the comparison is case-sensitive. + /// The registered property, or null when the type registers none by that name. + private static AvaloniaProperty? FindProperty(Type type, string propertyName) + { + var registered = AvaloniaPropertyRegistry.Instance.GetRegistered(type); + for (var i = 0; i < registered.Count; i++) + { + if (string.Equals(registered[i].Name, propertyName, StringComparison.Ordinal)) + { + return registered[i]; + } + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaPropertySubscription.cs b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaPropertySubscription.cs new file mode 100644 index 00000000..e5d41c55 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaPropertySubscription.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Avalonia; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia; +#else +namespace ReactiveUI.Binding.Avalonia; +#endif + +/// The object and handler an Avalonia property observation detaches when it is disposed. +/// The observed object. +/// The property-changed handler attached to . +[DebuggerDisplay("AvaloniaPropertySubscription: {Sender}")] +internal readonly record struct AvaloniaPropertySubscription( + AvaloniaObject Sender, + EventHandler Handler); diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaViewThreadInvoker.cs b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaViewThreadInvoker.cs new file mode 100644 index 00000000..0227c829 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/AvaloniaViewThreadInvoker.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Avalonia; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia; +#else +namespace ReactiveUI.Binding.Avalonia; +#endif + +/// Routes writes to an AvaloniaObject onto the AvaloniaScheduler of the dispatcher that owns it. +public sealed class AvaloniaViewThreadInvoker : SequencerViewThreadInvoker +{ + /// Gets the shared instance, which generated bindings route their Avalonia writes through. + public static AvaloniaViewThreadInvoker Instance { get; } = new(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected override AvaloniaScheduler SequencerFor(AvaloniaObject target) => AvaloniaScheduler.For(target.Dispatcher); +} diff --git a/src/ReactiveUI.Binding.Avalonia.Shared/Builder/AvaloniaBindingBuilderExtensions.cs b/src/ReactiveUI.Binding.Avalonia.Shared/Builder/AvaloniaBindingBuilderExtensions.cs new file mode 100644 index 00000000..05405d8b --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia.Shared/Builder/AvaloniaBindingBuilderExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Avalonia.Builder; +#else +namespace ReactiveUI.Binding.Avalonia.Builder; +#endif + +/// Avalonia-specific extensions for the ReactiveUI.Binding builder. +public static class AvaloniaBindingBuilderExtensions +{ + /// Provides WithAvalonia extension members for . + /// The builder instance; it must be an . + extension(IAppBuilder builder) + { + /// Registers the Avalonia module, which adds Avalonia property observation, command binding and the view thread invoker. + /// The builder instance for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IReactiveUIBindingBuilder WithAvalonia() => + ((IReactiveUIBindingBuilder)builder).WithAvalonia(); + } + + /// Provides WithAvalonia extension members for . + /// The builder instance. + extension(IReactiveUIBindingBuilder builder) + { + /// Registers the Avalonia module, which adds Avalonia property observation, command binding and the view thread invoker. + /// The builder instance for chaining. + /// The builder is null. + public IReactiveUIBindingBuilder WithAvalonia() + { + ArgumentExceptionHelper.ThrowIfNull(builder); + + return builder.WithPlatformModule(new AvaloniaBindingModule()); + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..98282441 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,45 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests")] +namespace ReactiveUI.Binding.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..98282441 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,45 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests")] +namespace ReactiveUI.Binding.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net8.0/PublicAPI.txt new file mode 100644 index 00000000..98282441 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net8.0/PublicAPI.txt @@ -0,0 +1,45 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests")] +namespace ReactiveUI.Binding.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net9.0/PublicAPI.txt new file mode 100644 index 00000000..98282441 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia/PublicAPI/net9.0/PublicAPI.txt @@ -0,0 +1,45 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Tests")] +namespace ReactiveUI.Binding.Avalonia +{ + public sealed class AvaloniaBindingModule : Splat.Builder.IModule + { + public AvaloniaBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class AvaloniaCreatesCommandBinding : ReactiveUI.Binding.ICreatesCommandBinding + { + public AvaloniaCreatesCommandBinding() { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + public int GetAffinityForObject(bool hasEventTarget) { } + } + public sealed class AvaloniaObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public AvaloniaObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class AvaloniaViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public AvaloniaViewThreadInvoker() { } + public static ReactiveUI.Binding.Avalonia.AvaloniaViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.AvaloniaScheduler SequencerFor(Avalonia.AvaloniaObject target) { } + } +} +namespace ReactiveUI.Binding.Avalonia.Builder +{ + public static class AvaloniaBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithAvalonia() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Avalonia/ReactiveUI.Binding.Avalonia.csproj b/src/ReactiveUI.Binding.Avalonia/ReactiveUI.Binding.Avalonia.csproj new file mode 100644 index 00000000..e9340b87 --- /dev/null +++ b/src/ReactiveUI.Binding.Avalonia/ReactiveUI.Binding.Avalonia.csproj @@ -0,0 +1,44 @@ + + + $(BindingCoreTargets) + Avalonia platform support for ReactiveUI.Binding. Provides Avalonia property observation, command binding and view thread routing. + reactiveui;binding;avalonia + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Maui.Reactive/Directory.Build.targets b/src/ReactiveUI.Binding.Maui.Reactive/Directory.Build.targets new file mode 100644 index 00000000..cb3abce3 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-android36.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-android36.0/PublicAPI.txt new file mode 100644 index 00000000..a301fa4b --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-android36.0/PublicAPI.txt @@ -0,0 +1,61 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Android24.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class Resource : _Microsoft.Android.Resource.Designer.Resource + { + public Resource() { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..b0e70ac5 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..c71e7b98 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt new file mode 100644 index 00000000..18bc3f1e --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS26.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..2c5f648f --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS26.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..77597285 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,66 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.UI.Xaml.Visibility result) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.UI.Xaml.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..f89133bc --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-android37/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-android37/PublicAPI.txt new file mode 100644 index 00000000..a301fa4b --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-android37/PublicAPI.txt @@ -0,0 +1,61 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Android24.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class Resource : _Microsoft.Android.Resource.Designer.Resource + { + public Resource() { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..b0e70ac5 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..c71e7b98 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt new file mode 100644 index 00000000..b6906a21 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS27.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..876cb5be --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS27.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..77597285 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,66 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.UI.Xaml.Visibility result) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.UI.Xaml.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..f89133bc --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Reactive.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Reactive.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Reactive/ReactiveUI.Binding.Maui.Reactive.csproj b/src/ReactiveUI.Binding.Maui.Reactive/ReactiveUI.Binding.Maui.Reactive.csproj new file mode 100644 index 00000000..c8015901 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Reactive/ReactiveUI.Binding.Maui.Reactive.csproj @@ -0,0 +1,72 @@ + + + + $(BindingMauiTargets) + ReactiveUI.Binding.Reactive.Maui + true + $(DefineConstants);IS_MAUI + 15.0 + 15.0 + 24.0 + 10.0.19041.0 + 10.0.19041.0 + MAUI platform support for ReactiveUI.Binding.Reactive, for consumers on System.Reactive. + reactiveui;binding;maui;winui;system.reactive + false + false + false + + + + $(DefineConstants);WINUI_TARGET + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityHints.cs b/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityHints.cs new file mode 100644 index 00000000..32444b24 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityHints.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Conversion hints, passed as the conversion hint, that change how a boolean maps to a Visibility. +[Flags] +public enum BooleanToVisibilityHints +{ + /// True is Visible and false is Collapsed. + None = 0, + + /// Swaps the mapping, so true is not visible and false is Visible. + Inverse = 1 << 1, + + /// Uses Hidden rather than Collapsed as the value that is not visible; ignored on WinUI, which has no Hidden. + UseHidden = 1 << 2, +} diff --git a/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityTypeConverter.cs b/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityTypeConverter.cs new file mode 100644 index 00000000..eaca8b39 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/BooleanToVisibilityTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if WINUI_TARGET +using Visibility = Microsoft.UI.Xaml.Visibility; +#else +using Visibility = Microsoft.Maui.Visibility; +#endif + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Converts a to or ; the conversion always succeeds. +/// +/// A conversion hint inverts the mapping or, in the MAUI build, selects +/// Hidden for the value that is not visible. Any other hint is treated as +/// . +/// +public sealed class BooleanToVisibilityTypeConverter : BindingTypeConverter +{ + /// + public override int GetAffinityForObjects() => BindingAffinity.DefaultInternalTypeConverter; + + /// + public override bool TryConvert(bool from, object? conversionHint, [NotNullWhen(true)] out Visibility result) + { + var hint = conversionHint is BooleanToVisibilityHints visibilityHint + ? visibilityHint + : BooleanToVisibilityHints.None; + + var value = (hint & BooleanToVisibilityHints.Inverse) != 0 ? !from : from; + +#if !WINUI_TARGET + var notVisible = (hint & BooleanToVisibilityHints.UseHidden) != 0 + ? Visibility.Hidden + : Visibility.Collapsed; +#else + const Visibility notVisible = Visibility.Collapsed; +#endif + + result = value ? Visibility.Visible : notVisible; + return true; + } +} diff --git a/src/ReactiveUI.Binding.Maui.Shared/Builder/MauiBindingBuilderExtensions.cs b/src/ReactiveUI.Binding.Maui.Shared/Builder/MauiBindingBuilderExtensions.cs new file mode 100644 index 00000000..4e7e96d0 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/Builder/MauiBindingBuilderExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui.Builder; +#else +namespace ReactiveUI.Binding.Maui.Builder; +#endif + +/// MAUI-specific extensions for the ReactiveUI.Binding builder. +public static class MauiBindingBuilderExtensions +{ + /// Provides WithMaui extension members for . + /// The builder instance; it must be an . + extension(IAppBuilder builder) + { + /// Registers the MAUI module, which adds the view thread invoker, the Visibility converters and, in the WinUI build, dependency-property observation. + /// The builder instance for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IReactiveUIBindingBuilder WithMaui() => + ((IReactiveUIBindingBuilder)builder).WithMaui(); + } + + /// Provides WithMaui extension members for . + /// The builder instance. + extension(IReactiveUIBindingBuilder builder) + { + /// Registers the MAUI module, which adds the view thread invoker, the Visibility converters and, in the WinUI build, dependency-property observation. + /// The builder instance for chaining. + /// The builder is null. + public IReactiveUIBindingBuilder WithMaui() + { + ArgumentExceptionHelper.ThrowIfNull(builder); + + return builder.WithPlatformModule(new MauiBindingModule()); + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Shared/DependencyObjectObservableForProperty.cs b/src/ReactiveUI.Binding.Maui.Shared/DependencyObjectObservableForProperty.cs new file mode 100644 index 00000000..150647b6 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/DependencyObjectObservableForProperty.cs @@ -0,0 +1,190 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if WINUI_TARGET +using System.Globalization; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; + +using Microsoft.UI.Xaml; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Observes a WinUI DependencyObject property through its {PropertyName}Property static field or property. +/// +/// A before-change request, or a property with no dependency property, is observed as a plain object property instead. +/// Each notification carries no value; the observer reads the property. +/// +[RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] +public class DependencyObjectObservableForProperty : ICreatesObservableForProperty +{ + /// Message logged when a caller asks for before-change notifications a DependencyProperty cannot provide. + private static readonly CompositeFormat BeforeChangedUnsupportedFormat = CompositeFormat.Parse( + "[ReactiveUI.Binding.Maui] Tried to bind DO {0}.{1}, but DPs can't do beforeChanged. Binding as POCO object"); + + /// Message logged when the requested property is not backed by a DependencyProperty. + private static readonly CompositeFormat DependencyPropertyMissingFormat = CompositeFormat.Parse( + "[ReactiveUI.Binding.Maui] Tried to bind DO {0}.{1}, but DP doesn't exist. Binding as POCO object"); + + /// Returns the WinUI dependency-object affinity when the type declares a {propertyName}Property static member. + /// The type that owns the property. + /// The property name, without the Property suffix. + /// Ignored. + /// for a DependencyObject type with such a member; otherwise zero. + [RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) + { + if (!typeof(DependencyObject).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) + { + return 0; + } + + return GetDependencyPropertyFetcher(type, propertyName) is null ? 0 : BindingAffinity.WinUiDependencyObject; + } + + /// Returns an observable that raises whenever the dependency property changes on . + /// The DependencyObject to observe. + /// The expression carried on each notification. + /// The property name, without the Property suffix. + /// observes the property as a plain object property, since a dependency property has no before-change notification. + /// Passed through to the plain-object observer when it is used. + /// An observable that registers a property-changed callback and unregisters it on disposal. + /// is null. + /// is not a DependencyObject. + [RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + + if (sender is not DependencyObject depSender) + { + throw new ArgumentException("The sender must be a DependencyObject", nameof(sender)); + } + + var type = sender.GetType(); + + if (beforeChanged) + { + Debug.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + BeforeChangedUnsupportedFormat, + type.FullName, + propertyName)); + + var ret = new POCOObservableForProperty(); + return ret.GetNotificationForProperty(sender, expression, propertyName, beforeChanged, suppressWarnings); + } + + var dependencyPropertyFetcher = GetDependencyPropertyFetcher(type, propertyName); + if (dependencyPropertyFetcher is null) + { + Debug.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + DependencyPropertyMissingFormat, + type.FullName, + propertyName)); + + var ret = new POCOObservableForProperty(); + return ret.GetNotificationForProperty(sender, expression, propertyName, beforeChanged, suppressWarnings); + } + + return new AnonymousObservable>(subj => + { + var handler = new DependencyPropertyChangedCallback((_, _) => + subj.OnNext(new ObservedChange(sender, expression, default))); + + var dependencyProperty = dependencyPropertyFetcher(); + var token = depSender.RegisterPropertyChangedCallback(dependencyProperty, handler); + return Scope.Create( + new(depSender, dependencyProperty, token), + static state => state.Sender.UnregisterPropertyChangedCallback(state.Property, state.Token)); + }); + } + + /// Walks the type hierarchy to find a static property with the given name. + /// The type info to search. + /// The property name to find. + /// The property info if found; otherwise, null. + [RequiresUnreferencedCode("Uses reflection to walk type hierarchy.")] + internal static PropertyInfo? ActuallyGetProperty(TypeInfo typeInfo, string propertyName) + { + var current = typeInfo; + while (current is not null) + { + var ret = current.GetDeclaredProperty(propertyName); + if (ret is not null && ret.GetMethod?.IsStatic == true) + { + return ret; + } + + current = current.BaseType?.GetTypeInfo(); + } + + return null; + } + + /// Walks the type hierarchy to find a static field with the given name. + /// The type info to search. + /// The field name to find. + /// The field info if found; otherwise, null. + [RequiresUnreferencedCode("Uses reflection to walk type hierarchy.")] + internal static FieldInfo? ActuallyGetField(TypeInfo typeInfo, string propertyName) + { + var current = typeInfo; + while (current is not null) + { + var ret = current.GetDeclaredField(propertyName); + if (ret?.IsStatic == true) + { + return ret; + } + + current = current.BaseType?.GetTypeInfo(); + } + + return null; + } + + /// Gets a function that returns the DependencyProperty for the given property name. + /// The type to search for the DependencyProperty. + /// The property name whose DependencyProperty to find. + /// A function returning the DependencyProperty, or null if not found. + [RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] + internal static Func? GetDependencyPropertyFetcher(Type type, string propertyName) + { + var typeInfo = type.GetTypeInfo(); + + // Look for the DependencyProperty attached to this property name + var pi = ActuallyGetProperty(typeInfo, $"{propertyName}Property"); + if (pi is not null) + { + var value = pi.GetValue(null); + + return value is null ? null : () => (DependencyProperty)value; + } + + var fi = ActuallyGetField(typeInfo, $"{propertyName}Property"); + if (fi is not null) + { + var value = fi.GetValue(null); + + return value is null ? null : () => (DependencyProperty)value; + } + + return null; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Maui.Shared/DependencyPropertyRegistration.cs b/src/ReactiveUI.Binding.Maui.Shared/DependencyPropertyRegistration.cs new file mode 100644 index 00000000..2abfab01 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/DependencyPropertyRegistration.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if WINUI_TARGET +using Microsoft.UI.Xaml; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// The registration a dependency-property observation has to undo when it is disposed. +/// The object the callback was registered on. +/// The property being watched. +/// The token the registration returned. +[DebuggerDisplay("DependencyPropertyRegistration: {Property} on {Sender}")] +internal readonly record struct DependencyPropertyRegistration( + DependencyObject Sender, + DependencyProperty Property, + long Token); +#endif diff --git a/src/ReactiveUI.Binding.Maui.Shared/DispatcherViewThreadInvoker.cs b/src/ReactiveUI.Binding.Maui.Shared/DispatcherViewThreadInvoker.cs new file mode 100644 index 00000000..c4db45c7 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/DispatcherViewThreadInvoker.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using Microsoft.Maui.Dispatching; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Routes writes to a MAUI BindableObject onto the MauiDispatcherSequencer of the dispatcher it carries. +/// An object with no dispatcher, as in a view's unit test, is written inline. +public sealed class DispatcherViewThreadInvoker : SequencerViewThreadInvoker +{ + /// Gets the shared instance, which generated bindings route their MAUI writes through. + public static DispatcherViewThreadInvoker Instance { get; } = new(); + + /// + protected override MauiDispatcherSequencer? SequencerFor(BindableObject target) => + FindDispatcher(target) is { } dispatcher ? MauiDispatcherSequencer.For(dispatcher) : null; + + /// Reads the dispatcher an object carries. + /// The object to read. + /// The dispatcher, or null when neither the object, its thread nor the application has one. + private static IDispatcher? FindDispatcher(BindableObject owner) + { + try + { + return owner.Dispatcher; + } + catch (InvalidOperationException) + { + // MAUI throws rather than answering null when it finds no dispatcher, as in a view's unit test. + return null; + } + } +} diff --git a/src/ReactiveUI.Binding.Maui.Shared/MauiBindingModule.cs b/src/ReactiveUI.Binding.Maui.Shared/MauiBindingModule.cs new file mode 100644 index 00000000..ff686de2 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/MauiBindingModule.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Registers the MAUI view thread invoker, the Visibility converters and, in the WinUI build, the dependency-property observer with the dependency resolver. +/// +/// The converters are registered with the dependency resolver only; +/// imports them into a . +/// +public sealed class MauiBindingModule : IModule +{ + /// + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + +#if WINUI_TARGET + resolver.RegisterLazySingleton(static () => new DependencyObjectObservableForProperty()); +#endif + resolver.RegisterLazySingleton(static () => new BooleanToVisibilityTypeConverter()); + resolver.RegisterLazySingleton(static () => new VisibilityToBooleanTypeConverter()); + + resolver.RegisterLazySingleton(static () => new DispatcherViewThreadInvoker()); + } +} diff --git a/src/ReactiveUI.Binding.Maui.Shared/VisibilityToBooleanTypeConverter.cs b/src/ReactiveUI.Binding.Maui.Shared/VisibilityToBooleanTypeConverter.cs new file mode 100644 index 00000000..dc9a6f4e --- /dev/null +++ b/src/ReactiveUI.Binding.Maui.Shared/VisibilityToBooleanTypeConverter.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if WINUI_TARGET +using Visibility = Microsoft.UI.Xaml.Visibility; +#else +using Visibility = Microsoft.Maui.Visibility; +#endif + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Maui; +#else +namespace ReactiveUI.Binding.Maui; +#endif + +/// Converts a to a , true for Visible and false for any other value; the conversion always succeeds. +/// +/// A conversion hint inverts the result. Any other hint is treated as +/// . +/// +public sealed class VisibilityToBooleanTypeConverter : BindingTypeConverter +{ + /// + public override int GetAffinityForObjects() => BindingAffinity.DefaultInternalTypeConverter; + + /// + public override bool TryConvert(Visibility from, object? conversionHint, [NotNullWhen(true)] out bool result) + { + var hint = conversionHint is BooleanToVisibilityHints visibilityHint + ? visibilityHint + : BooleanToVisibilityHints.None; + + var isVisible = from == Visibility.Visible; + result = (hint & BooleanToVisibilityHints.Inverse) != 0 ? !isVisible : isVisible; + return true; + } +} diff --git a/src/ReactiveUI.Binding.Maui/Directory.Build.targets b/src/ReactiveUI.Binding.Maui/Directory.Build.targets new file mode 100644 index 00000000..cb3abce3 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-android36.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-android36.0/PublicAPI.txt new file mode 100644 index 00000000..14048444 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-android36.0/PublicAPI.txt @@ -0,0 +1,61 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Android24.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class Resource : _Microsoft.Android.Resource.Designer.Resource + { + public Resource() { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..8aa729d3 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..b1a9c643 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-macos/PublicAPI.txt new file mode 100644 index 00000000..1e80c8a9 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-macos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS26.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..c1efb92e --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-tvos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS26.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..74a9f216 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,66 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.UI.Xaml.Visibility result) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.UI.Xaml.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..1189b063 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-android37/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-android37/PublicAPI.txt new file mode 100644 index 00000000..14048444 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-android37/PublicAPI.txt @@ -0,0 +1,61 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Android24.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class Resource : _Microsoft.Android.Resource.Designer.Resource + { + public Resource() { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..8aa729d3 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..b1a9c643 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-macos/PublicAPI.txt new file mode 100644 index 00000000..3abf9baf --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-macos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS27.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..1c478675 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-tvos/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS27.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..74a9f216 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,66 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.UI.Xaml.Visibility result) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty static fields/properties.")] + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find DependencyProperty.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.UI.Xaml.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..1189b063 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui", AssemblyName="Microsoft.Maui")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Shapes", AssemblyName="Microsoft.Maui.Controls")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Controls.Xaml", AssemblyName="Microsoft.Maui.Controls.Xaml")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "Microsoft.Maui.Graphics", AssemblyName="Microsoft.Maui.Graphics")] +[assembly: Microsoft.Maui.Controls.XmlnsDefinition("http://schemas.microsoft.com/dotnet/maui/global", "http://schemas.microsoft.com/dotnet/2021/maui")] +[assembly: Microsoft.Maui.Controls.XmlnsPrefix("http://schemas.microsoft.com/dotnet/maui/global", "global")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Tests")] +namespace ReactiveUI.Binding.Maui +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out Microsoft.Maui.Visibility result) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker Instance { get; } + protected override ReactiveUI.Primitives.Concurrency.MauiDispatcherSequencer? SequencerFor(Microsoft.Maui.Controls.BindableObject target) { } + } + public sealed class MauiBindingModule : Splat.Builder.IModule + { + public MauiBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(Microsoft.Maui.Visibility from, object? conversionHint, out bool result) { } + } +} +namespace ReactiveUI.Binding.Maui.Builder +{ + public static class MauiBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithMaui() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Maui/ReactiveUI.Binding.Maui.csproj b/src/ReactiveUI.Binding.Maui/ReactiveUI.Binding.Maui.csproj new file mode 100644 index 00000000..fde4c002 --- /dev/null +++ b/src/ReactiveUI.Binding.Maui/ReactiveUI.Binding.Maui.csproj @@ -0,0 +1,69 @@ + + + $(BindingMauiTargets) + true + $(DefineConstants);IS_MAUI + 15.0 + 15.0 + 24.0 + 10.0.19041.0 + 10.0.19041.0 + MAUI platform support for ReactiveUI.Binding. Provides DependencyProperty observation for WinUI and Visibility converters. + reactiveui;binding;maui;winui + false + false + false + + + + $(DefineConstants);WINUI_TARGET + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Platform.Shared/AnonymousObservable.cs b/src/ReactiveUI.Binding.Platform.Shared/AnonymousObservable.cs new file mode 100644 index 00000000..33211ab9 --- /dev/null +++ b/src/ReactiveUI.Binding.Platform.Shared/AnonymousObservable.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// An observable whose subscription logic is supplied as a delegate, for the platform observers that +/// hook an event on subscribe and hand back the unhook as the subscription. +/// +/// The type of the elements in the sequence. +/// +/// Each platform assembly compiles its own internal copy, so this stays off the public surface of every +/// package and out of the seam: it names no scheduler and no notification type. +/// +internal sealed class AnonymousObservable : IObservable +{ + /// Produces the subscription for an observer, returning the resource that tears it down. + private readonly Func, IDisposable> _subscribe; + + /// Initializes a new instance of the class. + /// Subscribes an observer and returns the resource that tears the subscription down. + public AnonymousObservable(Func, IDisposable> subscribe) + { + ArgumentExceptionHelper.ThrowIfNull(subscribe); + _subscribe = subscribe; + } + + /// + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + return _subscribe(observer); + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..7e485cbd --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..7dbb184d --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt new file mode 100644 index 00000000..07fde1ac --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-macos/PublicAPI.txt @@ -0,0 +1,2432 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS26.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("AppKitCommandTarget: IsEnabled = {IsEnabled}")] + public sealed class AppKitCommandTarget : Foundation.NSObject + { + public AppKitCommandTarget(System.Windows.Input.ICommand command, System.Func parameter) { } + public bool IsEnabled { get; set; } + [Foundation.Export("theAction:")] + public void Execute(Foundation.NSObject sender) { } + [Foundation.Export("validateMenuItem:")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool ValidateMenuItem(AppKit.NSMenuItem item) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..bf95e63f --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0-tvos/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS26.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..9c9e908f --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,2411 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..7e485cbd --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..7dbb184d --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt new file mode 100644 index 00000000..a1592729 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-macos/PublicAPI.txt @@ -0,0 +1,2432 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS27.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("AppKitCommandTarget: IsEnabled = {IsEnabled}")] + public sealed class AppKitCommandTarget : Foundation.NSObject + { + public AppKitCommandTarget(System.Windows.Input.ICommand command, System.Func parameter) { } + public bool IsEnabled { get; set; } + [Foundation.Export("theAction:")] + public void Execute(Foundation.NSObject sender) { } + [Foundation.Export("validateMenuItem:")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool ValidateMenuItem(AppKit.NSMenuItem item) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..64f2096d --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0-tvos/PublicAPI.txt @@ -0,0 +1,2420 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS27.0")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..9c9e908f --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,2411 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..1e1e6f82 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net8.0/PublicAPI.txt new file mode 100644 index 00000000..7f307fd8 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net8.0/PublicAPI.txt @@ -0,0 +1,2404 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.Binding.Reactive/PublicAPI/net9.0/PublicAPI.txt new file mode 100644 index 00000000..9c9e908f --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/PublicAPI/net9.0/PublicAPI.txt @@ -0,0 +1,2411 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Reactive")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Reactive")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding.Reactive +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.Reactive.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static System.Reactive.Concurrency.IScheduler? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, System.Reactive.Concurrency.IScheduler scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.Reactive.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.Reactive.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.Reactive.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.Reactive.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.Reactive.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.Reactive.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.Reactive.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.Reactive.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.Reactive.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.Reactive.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.Reactive.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.Reactive.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.Reactive.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.Reactive.IInteraction + { + public Interaction() { } + public Interaction(System.Reactive.Concurrency.IScheduler? handlerScheduler) { } + protected virtual ReactiveUI.Binding.Reactive.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.Reactive.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.Reactive.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.Reactive.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.Reactive.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper Default(T? initialValue, System.Reactive.Concurrency.IScheduler? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.Reactive.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.Reactive.ObservablePropertyTarget left, ReactiveUI.Binding.Reactive.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.Reactive.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.Reactive.IReactiveBinding where TView : ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.Reactive.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.Reactive.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, System.Reactive.Concurrency.IScheduler? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, System.Reactive.Concurrency.IScheduler? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.Reactive.IViewFor + { + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.Reactive.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter, object? conversionHint = null, System.Reactive.Concurrency.IScheduler? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, System.Reactive.Concurrency.IScheduler? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.Reactive.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.Reactive.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, System.Reactive.Concurrency.IScheduler? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, ReactiveUI.Binding.Reactive.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.Reactive.IViewThreadInvoker where TTarget : class where TSequencer : class, System.Reactive.Concurrency.IScheduler, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.Reactive.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.Reactive.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Reactive.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Reactive.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.Reactive.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.Reactive.IViewLocator locator) + { + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.Reactive.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + public ReactiveUI.Binding.Reactive.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.Reactive.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Reactive.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.Reactive.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.Reactive.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Reactive.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.Reactive.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.Reactive.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Reactive.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.Reactive.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Reactive.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.Reactive.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.Reactive.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.Reactive.IBindingTypeConverter? converterOverride, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair converters, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.Reactive.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, System.Reactive.Concurrency.IScheduler? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.Reactive.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Reactive.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Reactive.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.Reactive.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.Reactive.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.Reactive.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Reactive.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.Reactive.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.Reactive.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding.Reactive/ReactiveUI.Binding.Reactive.csproj b/src/ReactiveUI.Binding.Reactive/ReactiveUI.Binding.Reactive.csproj new file mode 100644 index 00000000..89f70029 --- /dev/null +++ b/src/ReactiveUI.Binding.Reactive/ReactiveUI.Binding.Reactive.csproj @@ -0,0 +1,132 @@ + + + + $(BindingCoreRuntimeTargets) + 15.0 + 15.0 + ReactiveUI.Binding recompiled against System.Reactive's IScheduler for seamless interop with System.Reactive consumers. + reactiveui;binding;system.reactive;scheduler + + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingAffinity.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingAffinity.cs new file mode 100644 index 00000000..55b9c918 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingAffinity.cs @@ -0,0 +1,52 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Common affinity scores shared by binding type converters, property observation factories, +/// command binders, and the source generator's observation/command plugins. A higher value +/// indicates a stronger match; zero means the candidate does not apply. +/// +/// , , and +/// carry the same values as ReactiveUI's scores of those names; the platform-specific +/// scores are this library's own. +/// +/// +public static class BindingAffinity +{ + /// The fallback affinity for the reflection-based POCO observer (lowest non-zero match). + public static readonly int Fallback = 1; + + /// The affinity returned by the built-in value and string type converters. + public static readonly int DefaultInternalTypeConverter = 2; + + /// The affinity for binding to a type's conventional default event. + public static readonly int DefaultEvent = 3; + + /// The affinity for a WPF DependencyObject dependency-property match. + public static readonly int WpfDependencyObject = 4; + + /// The affinity for an event-enabled control command binding. + public static readonly int EventEnabledControl = 4; + + /// The affinity for an explicit or interface-based match, such as INotifyPropertyChanged or a named event. + public static readonly int Explicit = 5; + + /// The affinity for a WinUI DependencyObject dependency-property match. + public static readonly int WinUiDependencyObject = 6; + + /// The affinity for a WinForms event-based property observation match. + public static readonly int WinFormsEvent = 8; + + /// The affinity for a strong, exact-type match, such as IReactiveObject. + public static readonly int ExactType = 10; + + /// The affinity for an Apple KVO (NSObject) match. + public static readonly int Kvo = 15; +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingChange.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingChange.cs new file mode 100644 index 00000000..3a92a302 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingChange.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// A value a two-way binding moved, and which side of the binding produced it. +/// The value that was written. +/// Whether the view model produced the value, rather than the view. +/// +/// A two-way binding's change stream carries both directions, so a subscriber that acted on every value +/// without knowing where it came from would act twice on its own write. The flag is what separates an edit +/// from the echo of one. +/// +[DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] +public readonly record struct BindingChange(object? Value, bool FromViewModel); diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingErrors.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingErrors.cs new file mode 100644 index 00000000..58f689a8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingErrors.cs @@ -0,0 +1,72 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Reflection; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// How a binding reacts when the sequence feeding its write faults. +/// +/// A faulted write has no caller stack to surface on: it arrives on whichever thread raised the change +/// notification. Every fault is logged against the bound expression. A fault that carries an inner exception, +/// a setter that threw, is rethrown as a . A fault with none is the +/// sequence itself ending in error, and is only logged. Completion is ignored. +/// +public static class BindingErrors +{ + /// Subscribes a binding's write to its source, applying the binding fault contract. + /// The type of the value written. + /// The sequence feeding the write. + /// The write itself. + /// The bound expression, named in the log entry and the rethrown exception. + /// A disposable that, when disposed, disconnects the write. + /// or is null. + [EditorBrowsable(EditorBrowsableState.Never)] + public static IDisposable Subscribe(IObservable source, Action onNext, string bindingExpression) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(onNext); + + return source.Subscribe(new BindingObserver(onNext, bindingExpression)); + } + + /// Applies the write, and the fault contract when the sequence errors. + /// The type of the value written. + /// The write itself. + /// The bound expression, named when a fault is reported. + private sealed class BindingObserver(Action onNext, string bindingExpression) : IObserver + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() + { + } + + /// + /// The fault carried an inner exception. + public void OnError(Exception error) + { + LogHost.Default.Error(error, $"{bindingExpression} Binding received an Exception!"); + + if (error.InnerException is null) + { + return; + } + + throw new TargetInvocationException( + $"{bindingExpression} Binding received an Exception!", + error.InnerException); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnNext(T value) => onNext(value); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingHooks.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingHooks.cs new file mode 100644 index 00000000..1a25c3de --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingHooks.cs @@ -0,0 +1,103 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Lets a registered inspect, or refuse, a binding as it is created. +/// +/// +/// A hook is consulted once per binding, before anything is wired, and a hook that returns false cancels the +/// binding outright. Hooks are registered with the service locator, so the set is only known at run time. +/// +/// +/// The locator is read on first use and the hooks are cached until is called. +/// is the guard a caller tests first, so a binding builds the property-chain closures +/// needs only when a hook exists. +/// +/// +public static class BindingHooks +{ + /// Guards while it is (re)resolved. + /// + /// Only the first resolve after a refresh takes it. Holding it while the locator is read stops a resolve + /// that races from publishing the set that refresh dropped. + /// + private static readonly Lock Gate = new(); + + /// The resolved hooks, or null while none has been resolved yet. + private static IPropertyBindingHook[]? _hooks; + + /// Gets a value indicating whether any hook was registered when the hooks were last read. + /// + /// Test this before building the arguments to : the closures they need cost more + /// than the check, and are wasted whenever the answer is false. + /// + public static bool Any => Resolve().Length > 0; + + /// Discards the cached hooks so the next use reads them from the service locator again. + public static void Refresh() + { + lock (Gate) + { + _hooks = null; + } + } + + /// Asks the registered hooks in turn whether this binding may be created, stopping at the first refusal. + /// The source object, typically the view model; may be null. + /// The target object, typically the view. + /// Reads the current source-side values. + /// Reads the current target-side values. + /// Which way the binding runs. + /// when the binding may proceed, including when no hook is registered; when a hook refused it. + /// , or is null. + [EditorBrowsable(EditorBrowsableState.Never)] + public static bool ShouldBind( + object? source, + object target, + Func[]> getSourceProperties, + Func[]> getTargetProperties, + BindingDirection direction) + { + ArgumentExceptionHelper.ThrowIfNull(target); + ArgumentExceptionHelper.ThrowIfNull(getSourceProperties); + ArgumentExceptionHelper.ThrowIfNull(getTargetProperties); + + var hooks = Resolve(); + for (var i = 0; i < hooks.Length; i++) + { + if (!hooks[i].ExecuteHook(source, target, getSourceProperties, getTargetProperties, direction)) + { + return false; + } + } + + return true; + } + + /// Resolves the registered hooks once and keeps them. + /// The registered hooks, empty when none is registered. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IPropertyBindingHook[] Resolve() + { + var resolved = Volatile.Read(ref _hooks); + if (resolved is not null) + { + return resolved; + } + + lock (Gate) + { + _hooks ??= [.. AppLocator.Current.GetServices()]; + return _hooks; + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingSchedulers.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingSchedulers.cs new file mode 100644 index 00000000..e9569444 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingSchedulers.cs @@ -0,0 +1,93 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; +#if REACTIVE_SHIM +using System.Reactive.Concurrency; +#endif + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Where a binding delivers its writes to the view. +public static class BindingSchedulers +{ + /// Gets or sets the sequencer a write from another thread is delivered on, or null to use the view's own dispatcher. + public static ISequencer? MainThread { get; set; } + + /// Delivers writes from another thread through a synchronization context. + /// The context owning the view, or null to use the view's own dispatcher. + public static void UseSynchronizationContext(SynchronizationContext? context) + { + if (context is null) + { + MainThread = null; + return; + } + +#if REACTIVE_SHIM + MainThread = new SynchronizationContextScheduler(context); +#else + MainThread = new SynchronizationContextSequencer(context); +#endif + } + + /// Routes an observable onto the thread that owns the object being written to. + /// The type of the observed values. + /// The observable feeding a write. + /// The object the write lands on. + /// The source itself when is null or no registered invoker claims it; otherwise the source routed onto its thread. + /// is null. + [EditorBrowsable(EditorBrowsableState.Never)] + public static IObservable ObserveOnViewThread(IObservable source, object? target) + { + ArgumentExceptionHelper.ThrowIfNull(source); + + return Route(source, target, ViewThreadInvokers.ForTarget(target)); + } + + /// Routes an observable onto the thread that owns the object being written to, falling back to a known invoker. + /// The type of the observed values. + /// The observable feeding a write. + /// The object the write lands on. + /// The invoker for the object's platform, used when no registered invoker claims it. + /// The source itself when is null; otherwise the source routed onto its thread. + /// or is null. + [EditorBrowsable(EditorBrowsableState.Never)] + public static IObservable ObserveOnViewThread(IObservable source, object? target, IViewThreadInvoker fallback) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(fallback); + + return target is null ? source : Route(source, target, ViewThreadInvokers.ForTarget(target) ?? fallback); + } + + /// Routes an observable onto a sequencer, delivering only the latest value that is waiting on it. + /// The type of the observed values. + /// The observable feeding a write. + /// The sequencer every delivery waits on. + /// The source, observed on the sequencer with a newer value replacing one that has not been delivered. + [EditorBrowsable(EditorBrowsableState.Never)] + public static IObservable ObserveOnSequencer(IObservable source, ISequencer scheduler) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(scheduler); + + return new ViewThreadObservable(source, scheduler); + } + + /// Wraps an observable in the stage that writes on the invoker's thread. + /// The type of the observed values. + /// The observable feeding a write. + /// The object the write lands on. + /// The invoker that owns the object, or null when nothing does. + /// The source itself when no invoker owns the object; otherwise the routed source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IObservable Route(IObservable source, object? target, IViewThreadInvoker? invoker) => + invoker is null ? source : new ViewThreadObservable(source, target!, invoker); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverter.cs new file mode 100644 index 00000000..d5724f9d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverter.cs @@ -0,0 +1,80 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Base class for a converter between one type pair; it supplies , and +/// an object-based over the typed TryConvert. +/// +/// The source type to convert from. +/// The target type to convert to. +[DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] +public abstract class BindingTypeConverter : IBindingTypeConverter +{ + /// + public Type FromType => typeof(TFrom); + + /// + public Type ToType => typeof(TTo); + + /// Returns this converter's priority among the converters registered for the same type pair. + /// + /// A positive value when the converter applies; zero or less excludes it. The highest value wins and the + /// earliest registered converter wins a tie. The built-in converters return 2, and + /// returns 1, so a larger value outranks them. + /// + public abstract int GetAffinityForObjects(); + + /// + public abstract bool TryConvert(TFrom? from, object? conversionHint, [MaybeNullWhen(true)] out TTo? result); + + /// Converts a boxed value by casting it to and calling TryConvert. + /// The source value. A null is passed on as default when can hold null, and fails when it cannot. + /// Implementation-defined hint, passed to TryConvert unchanged. + /// The converted value, or null when the conversion fails or produces a null. + /// when is not a or TryConvert fails; otherwise . + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) + { + // Allow null inputs for converters whose source type can represent null, and + // permit null outputs when the target type is nullable/reference. + TTo? typedResult; + if (from is null) + { + if (default(TFrom) is not null) + { + result = null; + return false; + } + + if (!TryConvert(default, conversionHint, out typedResult)) + { + result = null; + return false; + } + + result = typedResult; + return true; + } + + if (from is not TFrom castFrom) + { + result = null; + return false; + } + + if (!TryConvert(castFrom, conversionHint, out typedResult)) + { + result = null; + return false; + } + + result = typedResult; + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverterDispatch.cs b/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverterDispatch.cs new file mode 100644 index 00000000..53b08977 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/BindingTypeConverterDispatch.cs @@ -0,0 +1,158 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Dispatches conversions using a type-only fast-path, avoiding reflection. +public static class BindingTypeConverterDispatch +{ + /// Attempts conversion via the converter's type-only metadata and its object shim. + /// The converter. + /// The source value. + /// The target type requested by the caller. + /// Implementation-defined hint. + /// The converted result. + /// if conversion succeeded; otherwise . + public static bool TryConvert( + IBindingTypeConverter converter, + object? from, + Type toType, + object? conversionHint, + out object? result) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + ArgumentExceptionHelper.ThrowIfNull(toType); + + if (converter.ToType != toType) + { + result = null; + return false; + } + + if (from is null) + { + var fromType = converter.FromType; + if (fromType.IsValueType && Nullable.GetUnderlyingType(fromType) is null) + { + result = null; + return false; + } + + return converter.TryConvertTyped(null, conversionHint, out result); + } + + var runtimeType = from.GetType(); + var converterFromType = converter.FromType; + + // Exact pair match keeps dispatch predictable and avoids assignability ambiguity, + // but allow nullable converters to accept boxed T values. + if (converterFromType != runtimeType + && Nullable.GetUnderlyingType(converterFromType) != runtimeType) + { + result = null; + return false; + } + + return converter.TryConvertTyped(from, conversionHint, out result); + } + + /// Attempts conversion using a fallback converter. + /// The fallback converter. + /// The source runtime type. + /// The source value (guaranteed non-null by caller). + /// The target type. + /// Implementation-defined hint. + /// The converted result. + /// if conversion succeeded; otherwise, . + public static bool TryConvertFallback( + IBindingFallbackConverter converter, + Type fromType, + object from, + Type toType, + object? conversionHint, + out object? result) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + ArgumentExceptionHelper.ThrowIfNull(from); + ArgumentExceptionHelper.ThrowIfNull(toType); + + // A converter that reports success without producing a value has broken its contract. + // Treat that as a failed conversion rather than pushing the null on into a binding. + if (converter.TryConvert(fromType, from, toType, conversionHint, out result) && result is not null) + { + return true; + } + + result = null; + return false; + } + + /// Unified dispatch method that handles both typed and fallback converters. + /// The converter (either or ). + /// The source runtime type. + /// The source value. + /// The target type. + /// Implementation-defined hint. + /// The converted result. + /// if conversion succeeded; otherwise, . + /// + /// This method automatically dispatches to the appropriate converter type: + /// + /// - uses exact pair matching + /// - requires non-null input + /// + /// + public static bool TryConvertAny( + object? converter, + Type fromType, + object? from, + Type toType, + object? conversionHint, + out object? result) + { + ArgumentExceptionHelper.ThrowIfNull(toType); + + switch (converter) + { + case null: + { + result = null; + return false; + } + + // Dispatch to typed converter + case IBindingTypeConverter typedConverter: + return TryConvert(typedConverter, from, toType, conversionHint, out result); + + // Dispatch to fallback converter (requires non-null input) + case IBindingFallbackConverter fallbackConverter: + { + if (from is not null) + { + return TryConvertFallback( + fallbackConverter, + fromType, + from, + toType, + conversionHint, + out result); + } + + result = null; + return false; + } + + default: + { + // Unknown converter type + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/BooleanToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/BooleanToStringTypeConverter.cs new file mode 100644 index 00000000..1c393146 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/BooleanToStringTypeConverter.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a as "True" or "False". +public sealed class BooleanToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(bool from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToNullableByteTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToNullableByteTypeConverter.cs new file mode 100644 index 00000000..390b499a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToNullableByteTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] +public sealed class ByteToNullableByteTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(byte); + + /// + public Type ToType => typeof(byte?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(byte from, object? conversionHint, out byte? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is byte value) + { + result = (byte?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToStringTypeConverter.cs new file mode 100644 index 00000000..d08697a3 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ByteToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An hint gives the +/// minimum digit count (the D format) and a hint gives the format string; a malformed format +/// throws . +/// +public sealed class ByteToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(byte from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int width: + { + result = from.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateOnlyToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateOnlyToStringTypeConverter.cs new file mode 100644 index 00000000..35b8a438 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateOnlyToStringTypeConverter.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the short date format of the current culture. +public sealed class DateOnlyToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(DateOnly from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(); + return true; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeOffsetToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeOffsetToStringTypeConverter.cs new file mode 100644 index 00000000..9b5d69e5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeOffsetToStringTypeConverter.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the general date and time format of the current culture, including the offset. +public sealed class DateTimeOffsetToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(DateTimeOffset from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeToStringTypeConverter.cs new file mode 100644 index 00000000..8eca3100 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DateTimeToStringTypeConverter.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the general date and time format of the current culture. +public sealed class DateTimeToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(DateTime from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToNullableDecimalTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToNullableDecimalTypeConverter.cs new file mode 100644 index 00000000..f751fb8f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToNullableDecimalTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] +public sealed class DecimalToNullableDecimalTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(decimal); + + /// + public Type ToType => typeof(decimal?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is decimal value) + { + result = (decimal?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToStringTypeConverter.cs new file mode 100644 index 00000000..a426e682 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DecimalToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An hint gives +/// the number of decimal places (the F format) and a hint gives the format string; a malformed +/// format throws . +/// +public sealed class DecimalToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(decimal from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToNullableDoubleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToNullableDoubleTypeConverter.cs new file mode 100644 index 00000000..2f3b94e5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToNullableDoubleTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] +public sealed class DoubleToNullableDoubleTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(double); + + /// + public Type ToType => typeof(double?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(double from, object? conversionHint, out double? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is double value) + { + result = (double?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToStringTypeConverter.cs new file mode 100644 index 00000000..8a4ac76a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/DoubleToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An hint gives the +/// number of decimal places (the F format) and a hint gives the format string; a malformed +/// format throws . +/// +public sealed class DoubleToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(double from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/EqualityTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/EqualityTypeConverter.cs new file mode 100644 index 00000000..7066786a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/EqualityTypeConverter.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts any value to a that says whether it equals the conversion hint, using . +/// +/// The conversion always succeeds, and two nulls are equal. The converter is registered for the +/// (, ) pair, so a registry lookup finds it only for that pair. +/// +[DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] +public sealed class EqualityTypeConverter : IBindingTypeConverter +{ + /// + public Type FromType => typeof(object); + + /// + public Type ToType => typeof(bool); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => 1; + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + // Always return a bool result + result = Equals(from, conversionHint); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/GuidToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/GuidToStringTypeConverter.cs new file mode 100644 index 00000000..e70efc3e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/GuidToStringTypeConverter.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the hyphenated D format. +public sealed class GuidToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(Guid from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString("D"); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToNullableIntegerTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToNullableIntegerTypeConverter.cs new file mode 100644 index 00000000..05d1b069 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToNullableIntegerTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts an to a nullable ; the conversion always succeeds. +[DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] +public sealed class IntegerToNullableIntegerTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(int); + + /// + public Type ToType => typeof(int?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(int from, object? conversionHint, out int? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is int value) + { + result = (int?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToStringTypeConverter.cs new file mode 100644 index 00000000..a5344add --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/IntegerToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts an to a using the current culture. An hint gives the +/// minimum digit count (the D format) and a hint gives the format string; a malformed format +/// throws . +/// +public sealed class IntegerToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(int from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int width: + { + result = from.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToNullableLongTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToNullableLongTypeConverter.cs new file mode 100644 index 00000000..b8056244 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToNullableLongTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] +public sealed class LongToNullableLongTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(long); + + /// + public Type ToType => typeof(long?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(long from, object? conversionHint, out long? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is long value) + { + result = (long?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToStringTypeConverter.cs new file mode 100644 index 00000000..aec2e63a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/LongToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An hint gives the +/// minimum digit count (the D format) and a hint gives the format string; a malformed format +/// throws . +/// +public sealed class LongToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(long from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int width: + { + result = from.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableBooleanToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableBooleanToStringTypeConverter.cs new file mode 100644 index 00000000..6e5e916d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableBooleanToStringTypeConverter.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a as "True" or "False". A null value succeeds with a null string. +public sealed class NullableBooleanToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(bool? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToByteTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToByteTypeConverter.cs new file mode 100644 index 00000000..0cf0947e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToByteTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] +public sealed class NullableByteToByteTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(byte?); + + /// + public Type ToType => typeof(byte); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(byte? from, object? conversionHint, [NotNullWhen(true)] out byte result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case byte value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToStringTypeConverter.cs new file mode 100644 index 00000000..76f344b7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableByteToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the minimum digit count (the D format) and a hint gives the format string; a malformed +/// format throws . A null value succeeds with a null string. +/// +public sealed class NullableByteToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(byte? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int width: + { + result = from.Value.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateOnlyToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateOnlyToStringTypeConverter.cs new file mode 100644 index 00000000..394c1bfb --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateOnlyToStringTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a in the short date format of the current culture. A null value succeeds with a null string. +public sealed class NullableDateOnlyToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(DateOnly? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(); + return true; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeOffsetToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeOffsetToStringTypeConverter.cs new file mode 100644 index 00000000..7e682c07 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeOffsetToStringTypeConverter.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a in the general date and time format of the +/// current culture, including the offset. A null value succeeds with a null string. +/// +public sealed class NullableDateTimeOffsetToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert( + DateTimeOffset? from, + object? conversionHint, + [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeToStringTypeConverter.cs new file mode 100644 index 00000000..771e101d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDateTimeToStringTypeConverter.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a in the general date and time format of the current culture. A null value succeeds with a null string. +public sealed class NullableDateTimeToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(DateTime? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToDecimalTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToDecimalTypeConverter.cs new file mode 100644 index 00000000..64a4e40e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToDecimalTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] +public sealed class NullableDecimalToDecimalTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(decimal?); + + /// + public Type ToType => typeof(decimal); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(decimal? from, object? conversionHint, [NotNullWhen(true)] out decimal result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case decimal value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToStringTypeConverter.cs new file mode 100644 index 00000000..e05aee37 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDecimalToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the number of decimal places (the F format) and a hint gives the format string; a +/// malformed format throws . A null value succeeds with a null string. +/// +public sealed class NullableDecimalToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(decimal? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.Value.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToDoubleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToDoubleTypeConverter.cs new file mode 100644 index 00000000..b4cf170c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToDoubleTypeConverter.cs @@ -0,0 +1,69 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] +public sealed class NullableDoubleToDoubleTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(double?); + + /// + public Type ToType => typeof(double); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(double? from, object? conversionHint, [NotNullWhen(true)] out double result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + // Handle null by returning false + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + // Handle double by converting through strongly-typed method + case double value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToStringTypeConverter.cs new file mode 100644 index 00000000..9caeff6d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableDoubleToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the number of decimal places (the F format) and a hint gives the format string; a +/// malformed format throws . A null value succeeds with a null string. +/// +public sealed class NullableDoubleToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(double? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.Value.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableGuidToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableGuidToStringTypeConverter.cs new file mode 100644 index 00000000..289aac6a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableGuidToStringTypeConverter.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a in the hyphenated D format. A null value succeeds with a null string. +public sealed class NullableGuidToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(Guid? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString("D"); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToIntegerTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToIntegerTypeConverter.cs new file mode 100644 index 00000000..ba645d84 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToIntegerTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to an ; a null value fails the conversion. +[DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] +public sealed class NullableIntegerToIntegerTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(int?); + + /// + public Type ToType => typeof(int); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(int? from, object? conversionHint, [NotNullWhen(true)] out int result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case int value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToStringTypeConverter.cs new file mode 100644 index 00000000..1ca47e83 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableIntegerToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the minimum digit count (the D format) and a hint gives the format string; a malformed +/// format throws . A null value succeeds with a null string. +/// +public sealed class NullableIntegerToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(int? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int width: + { + result = from.Value.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToLongTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToLongTypeConverter.cs new file mode 100644 index 00000000..7d4ee96b --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToLongTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] +public sealed class NullableLongToLongTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(long?); + + /// + public Type ToType => typeof(long); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(long? from, object? conversionHint, [NotNullWhen(true)] out long result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case long value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToStringTypeConverter.cs new file mode 100644 index 00000000..7c24738f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableLongToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the minimum digit count (the D format) and a hint gives the format string; a malformed +/// format throws . A null value succeeds with a null string. +/// +public sealed class NullableLongToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(long? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int width: + { + result = from.Value.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToShortTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToShortTypeConverter.cs new file mode 100644 index 00000000..afc1238a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToShortTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] +public sealed class NullableShortToShortTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(short?); + + /// + public Type ToType => typeof(short); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(short? from, object? conversionHint, [NotNullWhen(true)] out short result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case short value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToStringTypeConverter.cs new file mode 100644 index 00000000..5a04dc9d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableShortToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the minimum digit count (the D format) and a hint gives the format string; a malformed +/// format throws . A null value succeeds with a null string. +/// +public sealed class NullableShortToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(short? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int width: + { + result = from.Value.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToSingleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToSingleTypeConverter.cs new file mode 100644 index 00000000..524016ac --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToSingleTypeConverter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a ; a null value fails the conversion. +[DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] +public sealed class NullableSingleToSingleTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(float?); + + /// + public Type ToType => typeof(float); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(float? from, object? conversionHint, [NotNullWhen(true)] out float result) + { + if (from is null) + { + result = default; + return false; + } + + result = from.Value; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return TryConvert(null, conversionHint, out _); + } + + case float value: + { + result = value; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToStringTypeConverter.cs new file mode 100644 index 00000000..bcf5b86e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableSingleToStringTypeConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a nullable to a using the current culture. An hint +/// gives the number of decimal places (the F format) and a hint gives the format string; a +/// malformed format throws . A null value succeeds with a null string. +/// +public sealed class NullableSingleToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(float? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.Value.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.Value.ToString(format); + return true; + } + + default: + { + result = from.Value.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeOnlyToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeOnlyToStringTypeConverter.cs new file mode 100644 index 00000000..5c9dc588 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeOnlyToStringTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a in the short time format of the current culture. A null value succeeds with a null string. +public sealed class NullableTimeOnlyToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(TimeOnly? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(); + return true; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeSpanToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeSpanToStringTypeConverter.cs new file mode 100644 index 00000000..82815c59 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/NullableTimeSpanToStringTypeConverter.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a nullable to a in the culture-invariant constant format (c). A null value succeeds with a null string. +public sealed class NullableTimeSpanToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(TimeSpan? from, object? conversionHint, [MaybeNullWhen(true)] out string? result) + { + if (!from.HasValue) + { + result = null; + return true; + } + + result = from.Value.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToNullableShortTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToNullableShortTypeConverter.cs new file mode 100644 index 00000000..e156d1e6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToNullableShortTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] +public sealed class ShortToNullableShortTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(short); + + /// + public Type ToType => typeof(short?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(short from, object? conversionHint, out short? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is short value) + { + result = (short?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToStringTypeConverter.cs new file mode 100644 index 00000000..4a0374a5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/ShortToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An hint gives the +/// minimum digit count (the D format) and a hint gives the format string; a malformed format +/// throws . +/// +public sealed class ShortToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(short from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int width: + { + result = from.ToString($"D{width}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToNullableSingleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToNullableSingleTypeConverter.cs new file mode 100644 index 00000000..52503bb5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToNullableSingleTypeConverter.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a nullable ; the conversion always succeeds. +[DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] +public sealed class SingleToNullableSingleTypeConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(float); + + /// + public Type ToType => typeof(float?); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvert(float from, object? conversionHint, out float? result) + { + result = from; + return true; + } + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + if (from is float value) + { + result = (float?)value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToStringTypeConverter.cs new file mode 100644 index 00000000..16536af7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/SingleToStringTypeConverter.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a using the current culture. An +/// hint gives the number of decimal places (the F format) and a hint gives +/// the format string; a malformed format throws . +/// +public sealed class SingleToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(float from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + switch (conversionHint) + { + case int decimalPlaces: + { + result = from.ToString($"F{decimalPlaces}"); + return true; + } + + case string format: + { + result = from.ToString(format); + return true; + } + + default: + { + result = from.ToString(System.Globalization.CultureInfo.CurrentCulture); + return true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringConverter.cs new file mode 100644 index 00000000..d73beab2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringConverter.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Passes a through unchanged; a null or non-string value fails the conversion. +[DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] +public sealed class StringConverter : IBindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public Type FromType => typeof(string); + + /// + public Type ToType => typeof(string); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() => Affinity; + + /// + public bool TryConvertTyped(object? from, object? conversionHint, [NotNullWhen(true)] out object? result) + { + switch (from) + { + case null: + { + result = null; + return false; + } + + case string s: + { + result = s; + return true; + } + + default: + { + result = null; + return false; + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToBooleanTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToBooleanTypeConverter.cs new file mode 100644 index 00000000..cfca02ed --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToBooleanTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// (case-insensitive true or false); a null or unparseable string fails. +/// +public sealed class StringToBooleanTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out bool result) + { + if (from is null) + { + result = default; + return false; + } + + return bool.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToByteTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToByteTypeConverter.cs new file mode 100644 index 00000000..1155344a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToByteTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with under the current culture; a null or unparseable string fails. +public sealed class StringToByteTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out byte result) + { + if (from is null) + { + result = default; + return false; + } + + return byte.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateOnlyTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateOnlyTypeConverter.cs new file mode 100644 index 00000000..c0986078 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateOnlyTypeConverter.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable string fails. +/// +public sealed class StringToDateOnlyTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out DateOnly result) + { + if (from is null) + { + result = default; + return false; + } + + return DateOnly.TryParse(from, out result); + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeOffsetTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeOffsetTypeConverter.cs new file mode 100644 index 00000000..865ee80c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeOffsetTypeConverter.cs @@ -0,0 +1,35 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable +/// string fails. +/// +public sealed class StringToDateTimeOffsetTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out DateTimeOffset result) + { + if (from is null) + { + result = default; + return false; + } + + return DateTimeOffset.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeTypeConverter.cs new file mode 100644 index 00000000..aba41159 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDateTimeTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable string fails. +/// +public sealed class StringToDateTimeTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out DateTime result) + { + if (from is null) + { + result = default; + return false; + } + + return DateTime.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDecimalTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDecimalTypeConverter.cs new file mode 100644 index 00000000..6a46aa06 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDecimalTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable string fails. +/// +public sealed class StringToDecimalTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out decimal result) + { + if (from is null) + { + result = default; + return false; + } + + return decimal.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDoubleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDoubleTypeConverter.cs new file mode 100644 index 00000000..170ab853 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToDoubleTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with under the current culture; a null or unparseable string fails. +public sealed class StringToDoubleTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out double result) + { + if (from is null) + { + result = default; + return false; + } + + return double.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToGuidTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToGuidTypeConverter.cs new file mode 100644 index 00000000..f4032dfb --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToGuidTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with ; a null or unparseable string fails. +public sealed class StringToGuidTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out Guid result) + { + if (from is null) + { + result = Guid.Empty; + return false; + } + + return Guid.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToIntegerTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToIntegerTypeConverter.cs new file mode 100644 index 00000000..b702d1f6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToIntegerTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to an with under the current culture; a null or unparseable string fails. +public sealed class StringToIntegerTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out int result) + { + if (from is null) + { + result = default; + return false; + } + + return int.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToLongTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToLongTypeConverter.cs new file mode 100644 index 00000000..27539063 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToLongTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with under the current culture; a null or unparseable string fails. +public sealed class StringToLongTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out long result) + { + if (from is null) + { + result = default; + return false; + } + + return long.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableBooleanTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableBooleanTypeConverter.cs new file mode 100644 index 00000000..fde86a7e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableBooleanTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// (case-insensitive true or false); a null or empty string succeeds with a null result and an unparseable +/// string fails. +/// +public sealed class StringToNullableBooleanTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out bool? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (bool.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableByteTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableByteTypeConverter.cs new file mode 100644 index 00000000..b496c249 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableByteTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableByteTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out byte? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (byte.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateOnlyTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateOnlyTypeConverter.cs new file mode 100644 index 00000000..18658eb5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateOnlyTypeConverter.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableDateOnlyTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out DateOnly? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (DateOnly.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeOffsetTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeOffsetTypeConverter.cs new file mode 100644 index 00000000..bdd1912e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeOffsetTypeConverter.cs @@ -0,0 +1,45 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string +/// succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableDateTimeOffsetTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert( + string? from, + object? conversionHint, + [MaybeNullWhen(true)] out DateTimeOffset? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (DateTimeOffset.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeTypeConverter.cs new file mode 100644 index 00000000..52e555e8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDateTimeTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableDateTimeTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out DateTime? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (DateTime.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDecimalTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDecimalTypeConverter.cs new file mode 100644 index 00000000..e1c726e1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDecimalTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableDecimalTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out decimal? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (decimal.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDoubleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDoubleTypeConverter.cs new file mode 100644 index 00000000..5b0a3d41 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableDoubleTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableDoubleTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out double? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (double.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableGuidTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableGuidTypeConverter.cs new file mode 100644 index 00000000..cc0b83eb --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableGuidTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with ; a +/// null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableGuidTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out Guid? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (Guid.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableIntegerTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableIntegerTypeConverter.cs new file mode 100644 index 00000000..3fff0a6f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableIntegerTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with under +/// the current culture; a null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableIntegerTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out int? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (int.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableLongTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableLongTypeConverter.cs new file mode 100644 index 00000000..dd0af503 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableLongTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableLongTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out long? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (long.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableShortTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableShortTypeConverter.cs new file mode 100644 index 00000000..dd4fc99b --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableShortTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableShortTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out short? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (short.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableSingleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableSingleTypeConverter.cs new file mode 100644 index 00000000..028f992c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableSingleTypeConverter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a null result and an unparseable string fails. +/// +public sealed class StringToNullableSingleTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out float? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (float.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeOnlyTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeOnlyTypeConverter.cs new file mode 100644 index 00000000..bae0c87f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeOnlyTypeConverter.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableTimeOnlyTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out TimeOnly? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (TimeOnly.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeSpanTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeSpanTypeConverter.cs new file mode 100644 index 00000000..495d2d85 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToNullableTimeSpanTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a nullable with +/// under the current culture; a null or empty string succeeds with a +/// null result and an unparseable string fails. +/// +public sealed class StringToNullableTimeSpanTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [MaybeNullWhen(true)] out TimeSpan? result) + { + if (string.IsNullOrEmpty(from)) + { + result = null; + return true; + } + + if (TimeSpan.TryParse(from, out var value)) + { + result = value; + return true; + } + + result = null; + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToShortTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToShortTypeConverter.cs new file mode 100644 index 00000000..678dfcbf --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToShortTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with under the current culture; a null or unparseable string fails. +public sealed class StringToShortTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out short result) + { + if (from is null) + { + result = default; + return false; + } + + return short.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToSingleTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToSingleTypeConverter.cs new file mode 100644 index 00000000..a706c732 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToSingleTypeConverter.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with under the current culture; a null or unparseable string fails. +public sealed class StringToSingleTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out float result) + { + if (from is null) + { + result = default; + return false; + } + + return float.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeOnlyTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeOnlyTypeConverter.cs new file mode 100644 index 00000000..3802a530 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeOnlyTypeConverter.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable string fails. +/// +public sealed class StringToTimeOnlyTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out TimeOnly result) + { + if (from is null) + { + result = default; + return false; + } + + return TimeOnly.TryParse(from, out result); + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeSpanTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeSpanTypeConverter.cs new file mode 100644 index 00000000..365db5ab --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToTimeSpanTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with +/// under the current culture; a null or unparseable string fails. +/// +public sealed class StringToTimeSpanTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out TimeSpan result) + { + if (from is null) + { + result = default; + return false; + } + + return TimeSpan.TryParse(from, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToUriTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToUriTypeConverter.cs new file mode 100644 index 00000000..d868765a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/StringToUriTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts a to a with , +/// accepting relative and absolute URIs; a null string or text that cannot form a URI fails. +/// +public sealed class StringToUriTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(string? from, object? conversionHint, [NotNullWhen(true)] out Uri? result) + { + if (from is null) + { + result = null; + return false; + } + + return Uri.TryCreate(from, UriKind.RelativeOrAbsolute, out result); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeOnlyToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeOnlyToStringTypeConverter.cs new file mode 100644 index 00000000..a43ae4d8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeOnlyToStringTypeConverter.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the short time format of the current culture. +public sealed class TimeOnlyToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(TimeOnly from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(); + return true; + } +} +#endif diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeSpanToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeSpanToStringTypeConverter.cs new file mode 100644 index 00000000..2798b55a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/TimeSpanToStringTypeConverter.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a in the culture-invariant constant format (c). +public sealed class TimeSpanToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(TimeSpan from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + result = from.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converter/UriToStringTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converter/UriToStringTypeConverter.cs new file mode 100644 index 00000000..766cfdc1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converter/UriToStringTypeConverter.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Converts a to a with ; a null value fails. +public sealed class UriToStringTypeConverter : BindingTypeConverter +{ + /// The affinity returned by indicating a strong match. + private static readonly int Affinity = BindingAffinity.DefaultInternalTypeConverter; + + /// + public override int GetAffinityForObjects() => Affinity; + + /// + public override bool TryConvert(Uri? from, object? conversionHint, [NotNullWhen(true)] out string? result) + { + if (from is null) + { + result = null; + return false; + } + + result = from.ToString(); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingConverters.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingConverters.cs new file mode 100644 index 00000000..609e1a8e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingConverters.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Provides the process-wide that generated and runtime bindings convert through. +/// +/// starts empty. The builder's BuildApp replaces it with the service it configured, +/// which holds the built-in converters. +/// +public static class BindingConverters +{ + /// The backing field for the current converter service instance. + private static ConverterService _current = new(); + + /// Gets the converter service in use. + public static ConverterService Current => _current; + + /// Replaces the converter service in use. + /// The converter service to use. + /// Thrown if is null. + public static void SetService(ConverterService service) + { + ArgumentExceptionHelper.ThrowIfNull(service); + _current = service; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingFallbackConverterRegistry.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingFallbackConverterRegistry.cs new file mode 100644 index 00000000..b62a8381 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingFallbackConverterRegistry.cs @@ -0,0 +1,101 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Holds fallback binding converters, which are asked about a type pair at lookup time rather than grouped by it. +/// +/// Reads are lock-free against an immutable snapshot; each registration is serialized under a lock and publishes a +/// new snapshot. +/// +[DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] +public sealed class BindingFallbackConverterRegistry +{ + /// Synchronization gate for serializing write operations. + private readonly Lock _gate = new(); + + /// The current immutable snapshot of registered fallback converters, read via volatile access. + private Snapshot? _snapshot; + + /// Registers a fallback binding converter. + /// The converter to register. + /// Thrown if is null. + public void Register(IBindingFallbackConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + + const int InitialRegistryCapacity = 8; + + lock (_gate) + { + var snap = _snapshot ?? new Snapshot([with(InitialRegistryCapacity)]); + + // Copy-on-write update: clone the list + var newList = new List(snap.Converters) { converter }; + + // Publish the new snapshot (atomic via reference assignment) + _snapshot = new(newList); + } + } + + /// Asks each fallback converter for its affinity to the type pair and returns the highest positive one. + /// The source type to convert from. + /// The target type to convert to. + /// + /// The converter with the highest positive affinity, the earliest registered one on a tie; + /// when none reports a positive affinity. + /// + /// + /// Thrown if or is null. + /// + public IBindingFallbackConverter? TryGetConverter( + Type fromType, + Type toType) + { + ArgumentExceptionHelper.ThrowIfNull(fromType); + ArgumentExceptionHelper.ThrowIfNull(toType); + + var snap = Volatile.Read(ref _snapshot); + if (snap is null) + { + return null; + } + + // Find the converter with the highest affinity + IBindingFallbackConverter? best = null; + var bestScore = -1; + + var converters = snap.Converters; + for (var i = 0; i < converters.Count; i++) + { + var converter = converters[i]; + var score = converter.GetAffinityForObjects(fromType, toType); + if (score <= bestScore || score <= 0) + { + continue; + } + + bestScore = score; + best = converter; + } + + return best; + } + + /// Returns a copy of every registered fallback converter, in registration order. + /// The converters registered at the time of the call; empty when none are registered. + public IEnumerable GetAllConverters() + { + var snap = Volatile.Read(ref _snapshot); + return snap is null ? [] : [.. snap.Converters]; + } + + /// Immutable snapshot of the registry state for lock-free reads. + /// The registered fallback converters. + private sealed record Snapshot(List Converters); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingTypeConverterRegistry.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingTypeConverterRegistry.cs new file mode 100644 index 00000000..3564974f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/BindingTypeConverterRegistry.cs @@ -0,0 +1,151 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Holds typed binding converters grouped by their exact source and target type pair. +/// +/// Reads are lock-free against an immutable snapshot; each registration is serialized under a lock and publishes a +/// new snapshot, so registering is expensive and lookups are cheap. +/// +[DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] +public sealed class BindingTypeConverterRegistry +{ + /// Synchronization gate for serializing write operations. + private readonly Lock _gate = new(); + + /// The current immutable snapshot of registered typed converters, read via volatile access. + private Snapshot? _snapshot; + + /// Registers a converter under its and pair. + /// The converter to register. + /// Thrown if is null. + /// + /// Several converters can share a pair; picks the one with the highest affinity. + /// The pair is read once, at registration. + /// + public void Register(IBindingTypeConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + + const int InitialConverterListCapacity = 4; + const int InitialRegistryCapacity = 16; + + var key = new ConverterTypePair(converter.FromType, converter.ToType); + + lock (_gate) + { + var snap = _snapshot ?? new Snapshot([with(InitialRegistryCapacity)]); + + // Copy-on-write update: clone the dictionary shallowly + var newDict = CloneRegistryShallow(snap.ConvertersByTypePair); + + List? list = + !newDict.TryGetValue(key, out list) + ? [with(InitialConverterListCapacity)] + : [.. list]; + + list.Add(converter); + newDict[key] = list; + + // Publish the new snapshot (atomic via reference assignment) + _snapshot = new(newDict); + } + } + + /// Returns the registered converter with the highest positive affinity for the exact type pair. + /// The source type to convert from. + /// The target type to convert to. + /// + /// The best converter, the earliest registered one on a tie in affinity; when none is + /// registered for the pair or every one reports an affinity of zero or less. + /// + /// + /// Thrown if or is null. + /// + public IBindingTypeConverter? TryGetConverter(Type fromType, Type toType) + { + ArgumentExceptionHelper.ThrowIfNull(fromType); + ArgumentExceptionHelper.ThrowIfNull(toType); + + var snap = Volatile.Read(ref _snapshot); + if (snap is null) + { + return null; + } + + if (!snap.ConvertersByTypePair.TryGetValue(new(fromType, toType), out var list)) + { + return null; + } + + // Find the converter with the highest affinity + IBindingTypeConverter? best = null; + var bestScore = -1; + + for (var i = 0; i < list.Count; i++) + { + var converter = list[i]; + var score = converter.GetAffinityForObjects(); + if (score <= bestScore || score <= 0) + { + continue; + } + + bestScore = score; + best = converter; + } + + return best; + } + + /// Returns a copy of every registered converter, in no particular order across type pairs. + /// + /// The converters registered at the time of the call; empty when none are registered. + /// Later registrations do not change the returned sequence. + /// + public IEnumerable GetAllConverters() + { + var snap = Volatile.Read(ref _snapshot); + if (snap is null) + { + return []; + } + + var result = new List(); + foreach (var kvp in snap.ConvertersByTypePair) + { + result.AddRange(kvp.Value); + } + + return result; + } + + /// Creates a shallow clone of the converter dictionary, preserving list references without deep-copying them. + /// The source dictionary to clone. + /// A new dictionary with the same entries as . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static Dictionary> CloneRegistryShallow( + Dictionary> source) + { + ArgumentExceptionHelper.ThrowIfNull(source); + + var clone = new Dictionary>(source.Count); + foreach (var kvp in source) + { + clone[kvp.Key] = kvp.Value; + } + + return clone; + } + + /// Immutable snapshot of the registry state for lock-free reads. + /// The converters indexed by source and target type pair. + private sealed record Snapshot( + Dictionary> ConvertersByTypePair); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelper.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelper.cs new file mode 100644 index 00000000..88cdc872 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelper.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Reads converters that were registered with a Splat dependency resolver. +public static class ConverterMigrationHelper +{ + /// Collects every typed, fallback and set-method converter registered with a Splat resolver, without registering them anywhere. + /// The Splat resolver to read. + /// The converters the resolver holds, in the order it returns them; a null registration is skipped. + /// Thrown if is null. + public static ExtractedConverters ExtractConverters(IReadonlyDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + var typed = new List(); + foreach (var converter in resolver.GetServices()) + { + if (converter is not null) + { + typed.Add(converter); + } + } + + var fallback = new List(); + foreach (var converter in resolver.GetServices()) + { + if (converter is not null) + { + fallback.Add(converter); + } + } + + var setMethod = new List(); + foreach (var converter in resolver.GetServices()) + { + if (converter is not null) + { + setMethod.Add(converter); + } + } + + return new(typed, fallback, setMethod); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelperMixins.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelperMixins.cs new file mode 100644 index 00000000..786d8c97 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterMigrationHelperMixins.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension members that import Splat-registered converters into a . +public static class ConverterMigrationHelperMixins +{ + /// Provides ImportFrom extension members for . + /// The converter service to import into. + extension(ConverterService converterService) + { + /// Registers the converters held by a Splat resolver with this service. + /// The Splat resolver to import converters from. + /// + /// Thrown if or is null. + /// + /// + /// The import is a one-time copy; converters registered with the resolver afterwards are not picked up. + /// + public void ImportFrom( + IReadonlyDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(converterService); + ArgumentExceptionHelper.ThrowIfNull(resolver); + + var (typed, fallback, setMethod) = ConverterMigrationHelper.ExtractConverters(resolver); + + foreach (var converter in typed) + { + converterService.TypedConverters.Register(converter); + } + + foreach (var converter in fallback) + { + converterService.FallbackConverters.Register(converter); + } + + foreach (var converter in setMethod) + { + converterService.SetMethodConverters.Register(converter); + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterService.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterService.cs new file mode 100644 index 00000000..d8bec090 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterService.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Owns the typed, fallback and set-method converter registries and resolves the best converter for a type pair. +/// +/// A new service holds no converters; adds the built-in ones. +/// +[DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] +public sealed class ConverterService +{ + /// Initializes a new instance of the class. + public ConverterService() + { + TypedConverters = new(); + FallbackConverters = new(); + SetMethodConverters = new(); + } + + /// Gets the registry of typed converters, each matched to an exact source and target type pair. + public BindingTypeConverterRegistry TypedConverters { get; } + + /// Gets the registry of fallback converters, consulted when no typed converter applies. + public BindingFallbackConverterRegistry FallbackConverters { get; } + + /// Gets the registry of converters that replace how a binding writes to its target. + public SetMethodBindingConverterRegistry SetMethodConverters { get; } + + /// Returns the best typed converter for the type pair, or else the best fallback converter. + /// The source type to convert from. + /// The target type to convert to. + /// + /// An or an ; a typed converter always + /// wins over a fallback one whatever their affinities. when neither registry has a match. + /// + /// + /// Thrown if or is null. + /// + public object? ResolveConverter( + Type fromType, + Type toType) + { + ArgumentExceptionHelper.ThrowIfNull(fromType); + ArgumentExceptionHelper.ThrowIfNull(toType); + + // Typed converters match the exact pair; fallback converters are asked only when none does. + var typed = TypedConverters.TryGetConverter(fromType, toType); + return typed is not null ? typed : FallbackConverters.TryGetConverter(fromType, toType); + } + + /// Returns the best set-method converter for the type pair. + /// The type of the value being written; may be null. + /// The type of the target being written to; may be null. + /// The converter with the highest positive affinity, or when none applies. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ISetMethodBindingConverter? ResolveSetMethodConverter( + Type? fromType, + Type? toType) => SetMethodConverters.TryGetConverter(fromType, toType); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterTypePair.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterTypePair.cs new file mode 100644 index 00000000..bd4d378d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ConverterTypePair.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The pair of types a registered binding converter moves a value between. +/// The type converted from. +/// The type converted to. +[DebuggerDisplay("ConverterTypePair: {FromType.Name,nq} -> {ToType.Name,nq}")] +internal readonly record struct ConverterTypePair(Type FromType, Type ToType); diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/DefaultConverterRegistration.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/DefaultConverterRegistration.cs new file mode 100644 index 00000000..bf5b59f8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/DefaultConverterRegistration.cs @@ -0,0 +1,156 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Registers the built-in typed converters with a . +public static class DefaultConverterRegistration +{ + /// Registers the string identity, equality, boolean, Guid, Uri, numeric and date and time converters, each with its nullable forms. + /// The converter service to register the converters with. + /// Thrown if is null. + /// + /// Registering twice adds every converter twice. DateOnly and TimeOnly converters are registered + /// on .NET 8 and later only. No fallback or set-method converters are registered. + /// + public static void RegisterDefaults(ConverterService service) + { + ArgumentExceptionHelper.ThrowIfNull(service); + + var registry = service.TypedConverters; + + RegisterCoreConverters(registry); + RegisterNumericConverters(registry); + RegisterTemporalConverters(registry); + } + + /// Registers the identity, equality, boolean, guid and uri converters. + /// The registry to populate. + private static void RegisterCoreConverters(BindingTypeConverterRegistry registry) + { + // String identity converter + registry.Register(new StringConverter()); + + // Equality converter (last resort, affinity 1) + registry.Register(new EqualityTypeConverter()); + + // Boolean converters + registry.Register(new BooleanToStringTypeConverter()); + registry.Register(new StringToBooleanTypeConverter()); + registry.Register(new NullableBooleanToStringTypeConverter()); + registry.Register(new StringToNullableBooleanTypeConverter()); + + // Guid converters + registry.Register(new GuidToStringTypeConverter()); + registry.Register(new StringToGuidTypeConverter()); + registry.Register(new NullableGuidToStringTypeConverter()); + registry.Register(new StringToNullableGuidTypeConverter()); + + // Uri converters + registry.Register(new UriToStringTypeConverter()); + registry.Register(new StringToUriTypeConverter()); + } + + /// Registers the converters for the numeric primitives and their nullable forms. + /// The registry to populate. + private static void RegisterNumericConverters(BindingTypeConverterRegistry registry) + { + // Integer converters + registry.Register(new IntegerToStringTypeConverter()); + registry.Register(new StringToIntegerTypeConverter()); + registry.Register(new NullableIntegerToIntegerTypeConverter()); + registry.Register(new IntegerToNullableIntegerTypeConverter()); + registry.Register(new NullableIntegerToStringTypeConverter()); + registry.Register(new StringToNullableIntegerTypeConverter()); + + // Double converters + registry.Register(new DoubleToStringTypeConverter()); + registry.Register(new StringToDoubleTypeConverter()); + registry.Register(new NullableDoubleToDoubleTypeConverter()); + registry.Register(new DoubleToNullableDoubleTypeConverter()); + registry.Register(new NullableDoubleToStringTypeConverter()); + registry.Register(new StringToNullableDoubleTypeConverter()); + + // Single (float) converters + registry.Register(new SingleToStringTypeConverter()); + registry.Register(new StringToSingleTypeConverter()); + registry.Register(new NullableSingleToSingleTypeConverter()); + registry.Register(new SingleToNullableSingleTypeConverter()); + registry.Register(new NullableSingleToStringTypeConverter()); + registry.Register(new StringToNullableSingleTypeConverter()); + + // Decimal converters + registry.Register(new DecimalToStringTypeConverter()); + registry.Register(new StringToDecimalTypeConverter()); + registry.Register(new NullableDecimalToDecimalTypeConverter()); + registry.Register(new DecimalToNullableDecimalTypeConverter()); + registry.Register(new NullableDecimalToStringTypeConverter()); + registry.Register(new StringToNullableDecimalTypeConverter()); + + // Long converters + registry.Register(new LongToStringTypeConverter()); + registry.Register(new StringToLongTypeConverter()); + registry.Register(new NullableLongToLongTypeConverter()); + registry.Register(new LongToNullableLongTypeConverter()); + registry.Register(new NullableLongToStringTypeConverter()); + registry.Register(new StringToNullableLongTypeConverter()); + + // Short converters + registry.Register(new ShortToStringTypeConverter()); + registry.Register(new StringToShortTypeConverter()); + registry.Register(new NullableShortToShortTypeConverter()); + registry.Register(new ShortToNullableShortTypeConverter()); + registry.Register(new NullableShortToStringTypeConverter()); + registry.Register(new StringToNullableShortTypeConverter()); + + // Byte converters + registry.Register(new ByteToStringTypeConverter()); + registry.Register(new StringToByteTypeConverter()); + registry.Register(new NullableByteToByteTypeConverter()); + registry.Register(new ByteToNullableByteTypeConverter()); + registry.Register(new NullableByteToStringTypeConverter()); + registry.Register(new StringToNullableByteTypeConverter()); + } + + /// Registers the date, time and duration converters. + /// The registry to populate. + private static void RegisterTemporalConverters(BindingTypeConverterRegistry registry) + { + // DateTime converters + registry.Register(new DateTimeToStringTypeConverter()); + registry.Register(new StringToDateTimeTypeConverter()); + registry.Register(new NullableDateTimeToStringTypeConverter()); + registry.Register(new StringToNullableDateTimeTypeConverter()); + + // DateTimeOffset converters + registry.Register(new DateTimeOffsetToStringTypeConverter()); + registry.Register(new StringToDateTimeOffsetTypeConverter()); + registry.Register(new NullableDateTimeOffsetToStringTypeConverter()); + registry.Register(new StringToNullableDateTimeOffsetTypeConverter()); + + // TimeSpan converters + registry.Register(new TimeSpanToStringTypeConverter()); + registry.Register(new StringToTimeSpanTypeConverter()); + registry.Register(new NullableTimeSpanToStringTypeConverter()); + registry.Register(new StringToNullableTimeSpanTypeConverter()); + +#if NET8_0_OR_GREATER + // DateOnly converters (NET8+ only) + registry.Register(new DateOnlyToStringTypeConverter()); + registry.Register(new StringToDateOnlyTypeConverter()); + registry.Register(new NullableDateOnlyToStringTypeConverter()); + registry.Register(new StringToNullableDateOnlyTypeConverter()); + + // TimeOnly converters (NET8+ only) + registry.Register(new TimeOnlyToStringTypeConverter()); + registry.Register(new StringToTimeOnlyTypeConverter()); + registry.Register(new NullableTimeOnlyToStringTypeConverter()); + registry.Register(new StringToNullableTimeOnlyTypeConverter()); +#endif + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/ExtractedConverters.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ExtractedConverters.cs new file mode 100644 index 00000000..8273be35 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/ExtractedConverters.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The converters found in a dependency resolver, grouped by the role each one fills. +/// The converters that move a value between two known types. +/// The converters consulted when no typed converter matches. +/// The converters that write a value to a target rather than return one. +[DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] +public sealed record ExtractedConverters( + IList TypedConverters, + IList FallbackConverters, + IList SetMethodConverters); diff --git a/src/ReactiveUI.Binding.Shared/Bindings/Converters/SetMethodBindingConverterRegistry.cs b/src/ReactiveUI.Binding.Shared/Bindings/Converters/SetMethodBindingConverterRegistry.cs new file mode 100644 index 00000000..5c8117c6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/Converters/SetMethodBindingConverterRegistry.cs @@ -0,0 +1,95 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Holds set-method binding converters, which are asked about a type pair at lookup time rather than grouped by it. +/// +/// Reads are lock-free against an immutable snapshot; each registration is serialized under a lock and publishes a +/// new snapshot. +/// +[DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] +public sealed class SetMethodBindingConverterRegistry +{ + /// Synchronization gate for serializing write operations. + private readonly Lock _gate = new(); + + /// The current immutable snapshot of registered set-method converters, read via volatile access. + private Snapshot? _snapshot; + + /// Registers a set-method binding converter. + /// The converter to register. + /// Thrown if is null. + public void Register(ISetMethodBindingConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + + const int InitialRegistryCapacity = 8; + + lock (_gate) + { + var snap = _snapshot ?? new Snapshot([with(InitialRegistryCapacity)]); + + // Copy-on-write update: clone the list + var newList = new List(snap.Converters) { converter }; + + // Publish the new snapshot (atomic via reference assignment) + _snapshot = new(newList); + } + } + + /// Asks each set-method converter for its affinity to the type pair and returns the highest positive one. + /// The type of the value being written; may be null. + /// The type of the target being written to; may be null. + /// + /// The converter with the highest positive affinity, the earliest registered one on a tie; + /// when none reports a positive affinity. + /// + public ISetMethodBindingConverter? TryGetConverter( + Type? fromType, + Type? toType) + { + var snap = Volatile.Read(ref _snapshot); + if (snap is null) + { + return null; + } + + // Find the converter with the highest affinity + ISetMethodBindingConverter? best = null; + var bestScore = -1; + + var converters = snap.Converters; + for (var i = 0; i < converters.Count; i++) + { + var converter = converters[i]; + var score = converter.GetAffinityForObjects(fromType, toType); + if (score <= bestScore || score <= 0) + { + continue; + } + + bestScore = score; + best = converter; + } + + return best; + } + + /// Returns a copy of every registered set-method converter, in registration order. + /// The converters registered at the time of the call; empty when none are registered. + public IEnumerable GetAllConverters() + { + var snap = Volatile.Read(ref _snapshot); + return snap is null ? [] : [.. snap.Converters]; + } + + /// Immutable snapshot of the registry state for lock-free reads. + /// The registered set-method converters. + private sealed record Snapshot(List Converters); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/IBindingFallbackConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/IBindingFallbackConverter.cs new file mode 100644 index 00000000..01bb268d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/IBindingFallbackConverter.cs @@ -0,0 +1,75 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts runtime type pairs that no typed converter covers. The converter service asks the fallback +/// converters only when no typed converter with a positive affinity is registered for the pair. +/// +/// +/// Affinity only ranks fallback converters against each other, and the earliest registered converter wins a tie. +/// The library registers no fallback converters of its own. +/// +public interface IBindingFallbackConverter : IEnableLogger +{ + /// Calculates affinity for the specified runtime type pair. + /// The runtime source type. + /// The target type. + /// + /// A positive value when the converter handles the pair, where a higher value wins over other fallback converters; + /// zero or less when it does not. + /// + /// + /// + /// This method MUST be: + /// + /// Pure (no side effects) + /// Fast (cache any expensive metadata) + /// Safe (no exceptions, no user code execution) + /// + /// + /// + /// This method is invoked during converter selection and may be called frequently. + /// Results should be cached internally where appropriate. + /// + /// + int GetAffinityForObjects( + Type fromType, + Type toType); + + /// Attempts to convert the value to the target type. + /// The runtime source type (guaranteed non-null). + /// The value to convert (guaranteed non-null). + /// The target type (guaranteed non-null). + /// Implementation-defined conversion hint (e.g., format string, culture). + /// + /// The converted value. Implementations must produce a non-null value when returning + /// . + /// + /// if conversion succeeded; otherwise, . + /// + /// + /// Returning obliges an implementation to produce a non-null + /// , but that obligation is not expressed as a nullability annotation: + /// implementations come from outside the library and nothing enforces it. The dispatch layer + /// therefore checks, and reports a null result as a failed conversion rather than letting it + /// reach a binding. + /// + /// + /// Null input handling is performed by the dispatch layer. This method will never receive + /// null as the parameter. + /// + /// + bool TryConvert( + Type fromType, + object from, + Type toType, + object? conversionHint, + out object? result); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter.cs new file mode 100644 index 00000000..097434fc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Converts values from to for the binding APIs. +/// Register an implementation to teach a binding how to convert between two types. +/// +public interface IBindingTypeConverter : IEnableLogger +{ + /// Gets the source type supported by this converter. + Type FromType { get; } + + /// Gets the target type supported by this converter. + Type ToType { get; } + + /// Returns this converter's priority among the converters registered for the same type pair. + /// + /// A positive value when the converter applies; zero or less excludes it. The registry picks the highest value + /// and, on a tie, the earliest registered converter. + /// + int GetAffinityForObjects(); + + /// Converts a boxed value. + /// The source value; null is accepted only where the converter can convert null. + /// Implementation-defined hint, such as a format string. + /// The converted value; null when the conversion fails or produces a null. + /// if conversion succeeded; otherwise . + bool TryConvertTyped(object? from, object? conversionHint, out object? result); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter{TFrom,TTo}.cs b/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter{TFrom,TTo}.cs new file mode 100644 index 00000000..0e9caa4d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/IBindingTypeConverter{TFrom,TTo}.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extends with a typed TryConvert for one type pair. +/// The source type to convert from. +/// The target type to convert to. +/// +/// +/// This interface provides compile-time type safety for type conversions, +/// enabling AOT-compatible code paths that avoid boxing and reflection. +/// +/// +/// The generic method +/// is preferred over the base interface's object-based method when types +/// are known at compile time. +/// +/// +public interface IBindingTypeConverter : IBindingTypeConverter +{ + /// Converts a value to the target type without boxing. + /// The value to convert. + /// Implementation-defined hint for conversion (e.g., format string, locale). + /// The converted value. May be when conversion succeeds for nullable targets. + /// if conversion succeeded; otherwise, . + /// + /// + /// This method is AOT-safe as all types are known at compile time. + /// No reflection or boxing is required for value types. + /// + /// + /// When this method returns , the parameter + /// may still be for converters that map null inputs or empty values + /// to nullable targets. + /// + /// + bool TryConvert(TFrom? from, object? conversionHint, [MaybeNullWhen(true)] out TTo? result); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ISetMethodBindingConverter.cs b/src/ReactiveUI.Binding.Shared/Bindings/ISetMethodBindingConverter.cs new file mode 100644 index 00000000..2806ca36 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ISetMethodBindingConverter.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Replaces how a binding writes a value to its target, for example to fill a collection instead of assigning a property. +public interface ISetMethodBindingConverter : IEnableLogger +{ + /// Returns this converter's priority for writing a value of one type to a target of another. + /// The type of the value being written; may be null. + /// The type of the target being written to; may be null. + /// + /// A positive value when applies; zero or less excludes the converter. + /// The registry picks the highest value and, on a tie, the earliest registered converter. + /// + int GetAffinityForObjects(Type? fromType, Type? toType); + + /// Writes a value to the target. + /// The object being written to. + /// The value to write. + /// The index arguments for an indexer target; a generated collection write passes null. + /// The result of the write; a generated collection write casts it to the target type and reports it as the new value. + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyAttribute.cs b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyAttribute.cs new file mode 100644 index 00000000..000ed071 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyAttribute.cs @@ -0,0 +1,75 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Marks a partial, get-only property as backed by an . The source +/// generator writes the property's body and a helper field named _{name}Helper, which you assign with +/// ToProperty. +/// +/// +/// +/// The property has to be declared by you, as a partial property, so every generator in the build can see it. A +/// property only another generator writes is invisible to this one, so it could not be observed or bound. +/// +/// +/// The attribute is also accepted on a field, a method or an observable property, the forms ReactiveUI's older source +/// generator supported. Nothing is generated for those. An analyzer reports each one and offers a code fix that +/// rewrites it as a partial property. and exist for that rewrite. +/// +/// +/// +/// +/// names) => +/// _fullNameHelper = names.ToProperty(this, x => x.FullName); +/// +/// public event PropertyChangedEventHandler? PropertyChanged; +/// +/// [ObservableAsProperty] +/// public partial string FullName { get; } +/// } +/// ]]> +/// +/// +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] +public sealed class ObservableAsPropertyAttribute : Attribute +{ + /// + /// Gets or sets the name of the property the code fix writes for a method or an observable property. When it is + /// null, the name is the member's name followed by Property. A partial property keeps its own name. + /// + public string? PropertyName { get; set; } + + /// + /// Gets or sets a value indicating whether the helper field is , so it can only be + /// assigned in a constructor. The default is . + /// + public bool ReadOnly { get; set; } + + /// Gets or sets a value indicating whether the helper field is rather than . + public bool UseProtected { get; set; } + + /// + /// Gets or sets the value the property returns until its helper is assigned, as a C# expression such as + /// "1.5d". For a property the text is the value itself, not an expression. When it is + /// null, a non-nullable property returns and any other property + /// returns its type's default. + /// + public string? InitialValue { get; set; } + + /// + /// Gets or sets the modifier the code fix gives the property it writes for a field. A partial property carries its + /// own modifiers. + /// + public ObservableAsPropertyInheritance Inheritance { get; set; } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyHelper.cs b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyHelper.cs new file mode 100644 index 00000000..a0739377 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyHelper.cs @@ -0,0 +1,854 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.ExceptionServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Backs a read-only "output property" with an observable. The property reports each new value through the +/// change callbacks it was created with, so the owning object can raise its own change notifications. +/// +/// The type of the property value. +/// +/// +/// This helper is normally created by ToProperty, whose generated code supplies callbacks that raise the +/// owning object's change notifications for the named property. It can also be created directly with callbacks +/// of your own. +/// +/// +/// Values equal to the previous value are skipped. With no scheduler, or with the immediate one, each value is +/// delivered on the thread that produced it. A value produced while another is being delivered waits for that +/// delivery to finish, so the callbacks never run concurrently and never nest. +/// +/// +/// +/// +/// x.FirstName, x => x.LastName, (first, last) => $"{first} {last}") +/// .ToProperty(this, x => x.FullName); +/// +/// public string FullName => _fullName.Value; +/// ]]> +/// +/// +[DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] +public sealed class ObservableAsPropertyHelper : IDisposable +{ + /// The helper this thread is starting, so a property read from inside its first notifications can see its value. + [ThreadStatic] + private static Construction _constructing; + + /// The state and source subscription behind this helper. + private readonly Core _core; + + /// The lazily created stream. + private ExceptionStream? _thrownExceptions; + + /// Initializes a new instance of the class. + /// The observable the property follows. + /// The callback run after each new value is stored. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), default, null), false) + { + } + + /// Initializes a new instance of the class with an initial value. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The value the property holds before the source produces one. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, T? initialValue) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), new(initialValue, null), null), false) + { + } + + /// Initializes a new instance of the class with an initial value and a scheduler. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The value the property holds before the source produces one. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, T? initialValue, ISequencer? scheduler) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), new(initialValue, null), scheduler), false) + { + } + + /// Initializes a new instance of the class with an initial value and deferred subscription. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, T? initialValue, bool deferSubscription) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), new(initialValue, null), null), deferSubscription) + { + } + + /// Initializes a new instance of the class with an initial value, deferred subscription and a scheduler. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + public ObservableAsPropertyHelper( + IObservable observable, + Action onChanged, + T? initialValue, + bool deferSubscription, + ISequencer? scheduler) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), new(initialValue, null), scheduler), deferSubscription) + { + } + + /// Initializes a new instance of the class with a changing callback. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, Action? onChanging) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), default, null), false) + { + } + + /// Initializes a new instance of the class with a changing callback and an initial value. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// The value the property holds before the source produces one. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, Action? onChanging, T? initialValue) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(initialValue, null), null), false) + { + } + + /// Initializes a new instance of the class with a changing callback, an initial value and deferred subscription. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + public ObservableAsPropertyHelper( + IObservable observable, + Action onChanged, + Action? onChanging, + T? initialValue, + bool deferSubscription) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(initialValue, null), null), deferSubscription) + { + } + + /// + /// Initializes a new instance of the class with a changing callback, an + /// initial value, deferred subscription and a scheduler. + /// + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + public ObservableAsPropertyHelper( + IObservable observable, + Action onChanged, + Action? onChanging, + T? initialValue, + bool deferSubscription, + ISequencer? scheduler) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(initialValue, null), scheduler), deferSubscription) + { + } + + /// Initializes a new instance of the class with a changing callback and an initial value factory. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// Returns the value the property holds before the source produces one; null returns the default value. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, Action? onChanging, Func? getInitialValue) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(default, getInitialValue), null), false) + { + } + + /// Initializes a new instance of the class with a changing callback, an initial value factory and deferred subscription. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// Returns the value the property holds before the source produces one; null returns the default value. + /// Whether to wait for the first read of before subscribing. + public ObservableAsPropertyHelper( + IObservable observable, + Action onChanged, + Action? onChanging, + Func? getInitialValue, + bool deferSubscription) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(default, getInitialValue), null), deferSubscription) + { + } + + /// Initializes a new instance of the class with an initial value factory and deferred subscription. + /// The observable the property follows. + /// The callback run after each new value is stored. + /// Returns the value the property holds before the source produces one; null returns the default value. + /// Whether to wait for the first read of before subscribing. + public ObservableAsPropertyHelper(IObservable observable, Action onChanged, Func getInitialValue, bool deferSubscription) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, null), new(default, getInitialValue), null), deferSubscription) + { + } + + /// + /// Initializes a new instance of the class with a changing callback, an + /// initial value factory, deferred subscription and a scheduler. + /// + /// The observable the property follows. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// Returns the value the property holds before the source produces one; null returns the default value. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + public ObservableAsPropertyHelper( + IObservable observable, + Action onChanged, + Action? onChanging, + Func? getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + : this(new Core(observable, ChangeCallbacks.ForValues(onChanged, onChanging), new(default, getInitialValue), scheduler), deferSubscription) + { + } + + /// Initializes a new instance of the class around a finished core. + /// The fully constructed state; it is started here unless subscription is deferred. + /// Whether to wait for the first read of before subscribing. + private ObservableAsPropertyHelper(Core core, bool deferSubscription) + { + _core = core; + if (!deferSubscription) + { + core.Start(); + } + } + + /// Gets the current value of the property, subscribing first when subscription was deferred. + public T Value + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _core.ReadValue()!; + } + + /// Gets a value indicating whether the helper has subscribed to its observable. + /// With deferred subscription this stays false until is first read. + public bool IsSubscribed => _core.IsActivated; + + /// Gets an observable that reports each error the source produces. + /// An error that arrives while nothing observes this stream is rethrown on the thread that produced it. + public IObservable ThrownExceptions => _thrownExceptions ??= new(_core); + + /// Creates a helper that raises an owner's change notifications through static callbacks. + /// The observable the property follows. + /// The object passed to both callbacks. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The helper. + /// + /// Generated ToProperty code calls this. The callbacks receive the owner rather than capturing it, so + /// they are cached delegates and the helper allocates no closure. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static ObservableAsPropertyHelper Create( + IObservable observable, + object owner, + Action onChanged, + Action? onChanging, + T? initialValue, + bool deferSubscription, + ISequencer? scheduler) + { + ArgumentExceptionHelper.ThrowIfNull(owner); + ArgumentExceptionHelper.ThrowIfNull(onChanged); + + return new(new Core(observable, new ChangeCallbacks(owner, onChanged, onChanging), new InitialValue(initialValue, null), scheduler), deferSubscription); + } + + /// Creates a helper that raises a named property's change notifications through static callbacks. + /// The observable the property follows. + /// The owner, which is passed to both callbacks, and the property the helper backs. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// The value the property holds before the source produces one. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The helper. + /// Generated ToProperty code calls this, so the property can be read from the notifications the helper raises as it starts. + [EditorBrowsable(EditorBrowsableState.Never)] + public static ObservableAsPropertyHelper Create( + IObservable observable, + ObservablePropertyTarget target, + Action onChanged, + Action? onChanging, + T? initialValue, + bool deferSubscription, + ISequencer? scheduler) + { + ArgumentExceptionHelper.ThrowIfNull(target.Owner); + ArgumentExceptionHelper.ThrowIfNull(onChanged); + + return new(new Core(observable, new ChangeCallbacks(target.Owner, onChanged, onChanging), new InitialValue(initialValue, null), scheduler, target.PropertyName), deferSubscription); + } + + /// Creates a helper that raises a named property's change notifications through static callbacks, reading its initial value from a factory. + /// The observable the property follows. + /// The owner, which is passed to both callbacks, and the property the helper backs. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// Returns the value the property holds before the source produces one; null returns the default value. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The helper. + /// Generated ToProperty code calls this for a call site that passes an initial value factory. + [EditorBrowsable(EditorBrowsableState.Never)] + public static ObservableAsPropertyHelper Create( + IObservable observable, + ObservablePropertyTarget target, + Action onChanged, + Action? onChanging, + Func? getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + { + ArgumentExceptionHelper.ThrowIfNull(target.Owner); + ArgumentExceptionHelper.ThrowIfNull(onChanged); + + return new(new Core(observable, new ChangeCallbacks(target.Owner, onChanged, onChanging), new InitialValue(default, getInitialValue), scheduler, target.PropertyName), deferSubscription); + } + + /// Creates a helper that raises an owner's change notifications through static callbacks, reading its initial value from a factory. + /// The observable the property follows. + /// The object passed to both callbacks. + /// The callback run after each new value is stored. + /// The callback run before each new value is stored, or null for none. + /// Returns the value the property holds before the source produces one; null returns the default value. + /// Whether to wait for the first read of before subscribing. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The helper. + /// Generated ToProperty code calls this for a call site that passes an initial value factory. + [EditorBrowsable(EditorBrowsableState.Never)] + public static ObservableAsPropertyHelper Create( + IObservable observable, + object owner, + Action onChanged, + Action? onChanging, + Func? getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + { + ArgumentExceptionHelper.ThrowIfNull(owner); + ArgumentExceptionHelper.ThrowIfNull(onChanged); + + return new(new Core(observable, new ChangeCallbacks(owner, onChanged, onChanging), new InitialValue(default, getInitialValue), scheduler), deferSubscription); + } + + /// Reads a property whose helper is still being created, for the notifications that helper raises as it starts. + /// The object that owns the property. + /// The property's name. + /// The value to return when no helper for that property is starting on this thread. + /// The starting helper's current value, or . + /// + /// A source that produces a value as it is subscribed raises the property's change notifications before the + /// ToProperty call returns, so before the owner has assigned the helper to its field. A listener reading the + /// property then finds no helper. Generated property getters ask here instead of returning the fallback at once. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) + { + var constructing = _constructing; + return constructing.Core is { } core + && ReferenceEquals(constructing.Owner, owner) + && string.Equals(constructing.PropertyName, propertyName, StringComparison.Ordinal) + ? core.LastValue! + : fallback; + } + + /// Creates a helper that holds the default value and never changes. + /// The helper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper Default() => Default(default, null); + + /// Creates a helper that holds one value and never changes. + /// The value the property holds. + /// The helper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper Default(T? initialValue) => Default(initialValue, null); + + /// Creates a helper that holds one value and never changes. + /// The value the property holds. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The helper. + public static ObservableAsPropertyHelper Default(T? initialValue, ISequencer? scheduler) => + new(new Core(Signal.Never(), ChangeCallbacks.Ignored, new InitialValue(initialValue, null), scheduler), false); + + /// Stops following the observable. The property keeps its last value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _core.Dispose(); + + /// The callbacks run before and after each value is stored, with the state each receives. + /// The state passed to . + /// The callback run after each value is stored. + /// The state passed to . + /// The callback run before each value is stored, or null for none. + private readonly record struct ChangeCallbacks( + object? ChangedState, + Action OnChanged, + object? ChangingState, + Action? OnChanging) + { + /// Invokes a caller-supplied value callback that was stored as the callback state. + private static readonly Action _invokeValueCallback = static (state, value) => ((Action)state!)(value); + + /// Initializes a new instance of the struct with one state for both callbacks. + /// The state passed to both callbacks. + /// The callback run after each value is stored. + /// The callback run before each value is stored, or null for none. + public ChangeCallbacks(object? owner, Action onChanged, Action? onChanging) + : this(owner, onChanged, owner, onChanging) + { + } + + /// Gets callbacks that report a value to nobody. + public static ChangeCallbacks Ignored { get; } = new(null, static (_, _) => { }, null); + + /// Wraps caller-supplied value callbacks without allocating an adapter for each. + /// The callback run after each value is stored. + /// The callback run before each value is stored, or null for none. + /// The callbacks, each invoking the delegate stored as its state. + public static ChangeCallbacks ForValues(Action onChanged, Action? onChanging) + { + ArgumentExceptionHelper.ThrowIfNull(onChanged); + + return new(onChanged, _invokeValueCallback, onChanging, onChanging is null ? null : _invokeValueCallback); + } + } + + /// The helper a thread is starting. + /// The object that owns the property. + /// The property's name. + /// The helper's state. + private readonly record struct Construction(object? Owner, string? PropertyName, Core? Core); + + /// The value the property holds before the source produces one. + /// The value, used when there is no factory. + /// Returns the value; null uses . + private readonly record struct InitialValue(T? Value, Func? Factory) + { + /// Reads the initial value. + /// The factory's result, or the stored value when there is no factory. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public T? Read() => Factory is null ? Value : Factory(); + } + + /// A value on its way to the scheduler. + /// The core delivering it. + /// The value. + private readonly record struct ScheduledDelivery(Core Owner, T? Value); + + /// + /// The helper's state, which also observes the source. It is a separate object so the public constructors can + /// finish building it before handing it to the source. + /// + private sealed class Core : IObserver, IDisposable + { + /// The callbacks run before and after each value is stored. + private readonly ChangeCallbacks _callbacks; + + /// The value the property holds before the source produces one. + private readonly InitialValue _initialValue; + + /// The scheduler deliveries run on, or null to deliver on the producing thread. + private readonly ISequencer? _scheduler; + + /// The observable the property follows. + private readonly IObservable _source; + + /// The property the helper backs, or null when the creator did not name one. + private readonly string? _propertyName; + + /// Guards the distinct gate, the delivery queue and the disposed flag; never held while a callback runs. + /// + /// A flag taken with one compare-exchange rather than a Lock or a : each critical + /// section is a few field reads and writes and no callback runs inside one, so a waiter spins briefly instead of + /// parking, and an int needs no separate lock object. A waiter backs off with , which + /// yields when the holder has been preempted. Nothing re-enters the gate. 1 while held, 0 while free. + /// + private int _gate; + + /// The observers of the helper's exception stream. + private Broadcaster _exceptions; + + /// Values waiting behind the running delivery; created the first time a value has to wait. + private Queue? _pending; + + /// The last value that passed the distinct gate, seeded with the initial value before the source is followed. + private T? _distinctPrevious; + + /// Whether a delivery is running on the producing thread. + private bool _delivering; + + /// The subscription to the source. + private IDisposable? _subscription; + + /// 1 once the helper is disposed; taken with . + private int _disposed; + + /// 1 once the source has been subscribed to, or once subscription was claimed. + private int _activated; + + /// The most recently delivered value. + private T? _lastValue; + + /// Initializes a new instance of the class. + /// The observable the property follows. + /// The callbacks run before and after each value is stored. + /// The value the property holds before the source produces one. + /// The scheduler the callbacks run on, or null to run them on the producing thread. + /// The property the helper backs, or null when the creator did not name one. + public Core(IObservable observable, in ChangeCallbacks callbacks, in InitialValue initialValue, ISequencer? scheduler, string? propertyName = null) + { + ArgumentExceptionHelper.ThrowIfNull(observable); + + _propertyName = propertyName; + _source = observable; + _callbacks = callbacks; + _initialValue = initialValue; + _scheduler = scheduler is null || IsImmediate(scheduler) ? null : scheduler; + } + + /// Gets a value indicating whether the source has been subscribed to, or subscription was claimed. + public bool IsActivated => Volatile.Read(ref _activated) > 0; + + /// Gets the most recently delivered value without activating a deferred subscription. + public T? LastValue => _lastValue; + + /// Delivers the initial value like any other, then follows the source. + public void Start() + { + var initial = _initialValue.Read(); + _lastValue = initial; + _distinctPrevious = initial; + Volatile.Write(ref _activated, 1); + + if (_propertyName is null) + { + Publish(initial); + _subscription = _source.Subscribe(this); + return; + } + + // The owner has not assigned this helper yet, so a listener reading the property from the notifications + // raised below asks for the value through PendingValue. + var previous = _constructing; + _constructing = new(_callbacks.ChangedState, _propertyName, this); + try + { + Publish(initial); + _subscription = _source.Subscribe(this); + } + finally + { + _constructing = previous; + } + } + + /// Reads the current value, subscribing first when subscription was deferred and nothing has claimed it. + /// The most recently delivered value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public T? ReadValue() + { + if (Volatile.Read(ref _activated) == 0 && Interlocked.CompareExchange(ref _activated, 1, 0) == 0) + { + Activate(); + } + + return _lastValue; + } + + /// Stops following the source and drops values waiting for delivery. + public void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + using (EnterGate()) + { + _pending?.Clear(); + } + + _subscription?.Dispose(); + } + + /// Passes a source value through the distinct gate and delivers it. + /// The value the source produced. + public void OnNext(T? value) + { + using (EnterGate()) + { + if (Volatile.Read(ref _disposed) != 0 || EqualityComparer.Default.Equals(value, _distinctPrevious)) + { + return; + } + + _distinctPrevious = value; + + if (_scheduler is null && !TryClaimDelivery(value)) + { + return; + } + } + + if (_scheduler is null) + { + DeliverSerialized(value); + return; + } + + Schedule(value); + } + + /// Reports a source error to the helper's exception observers, or rethrows it when there are none. + /// The error the source produced. + public void OnError(Exception error) + { + if (!_exceptions.HasObservers) + { + ExceptionDispatchInfo.Capture(error).Throw(); + } + + _exceptions.Next(error); + } + + /// + public void OnCompleted() + { + } + + /// Adds an observer of the helper's exception stream. + /// The observer to add. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void AddExceptionObserver(IObserver observer) => _exceptions.Add(observer); + + /// Removes an observer of the helper's exception stream. + /// The observer to remove. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void RemoveExceptionObserver(IObserver observer) => _exceptions.Remove(observer); + + /// Determines whether a sequencer runs work on the calling thread at once. + /// The sequencer to test. + /// for the immediate sequencer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool IsImmediate(ISequencer scheduler) => +#if REACTIVE_SHIM + scheduler == Scheduler.Immediate; +#else + scheduler == Sequencer.Immediate; +#endif + + /// Takes the gate until the returned scope is disposed. + /// The scope that releases the gate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private GateScope EnterGate() + { + if (Interlocked.CompareExchange(ref _gate, 1, 0) != 0) + { + WaitForGate(); + } + + return new(this); + } + + /// Spins, backing off, until the gate is free and this thread takes it. + /// + /// A critical section lasts nanoseconds, so a waiter that sleeps for a millisecond waits far longer than the + /// holder needs. The backoff spins and yields but never calls Thread.Sleep(1) where the runtime offers + /// that; .NET Framework has no such overload. + /// + [MethodImpl(MethodImplOptions.NoInlining)] + private void WaitForGate() + { + // SpinWait is a mutable struct that counts its own spins, so it stays one local across the loop. + var spinner = default(SpinWait); + SpinOnce(ref spinner); + while (Volatile.Read(ref _gate) != 0 || Interlocked.CompareExchange(ref _gate, 1, 0) != 0) + { + SpinOnce(ref spinner); + } + + static void SpinOnce(ref SpinWait spinner) + { +#if NETCOREAPP3_0_OR_GREATER + spinner.SpinOnce(-1); +#else + spinner.SpinOnce(); +#endif + } + } + + /// Reads the initial value and subscribes, the first time the value is read after deferred subscription. + private void Activate() + { + // The helper already holds its initial value without having announced it, so a source that opens by + // repeating it has not changed anything: seeding the distinct gate with it skips that value. A helper + // disposed before its first read still reports the initial value it was given; it just never subscribes. + var initial = _initialValue.Read(); + _lastValue = initial; + if (Volatile.Read(ref _disposed) != 0) + { + return; + } + + using (EnterGate()) + { + _distinctPrevious = initial; + } + + var subscription = _source.Subscribe(this); + + using (EnterGate()) + { + if (Volatile.Read(ref _disposed) == 0) + { + _subscription = subscription; + return; + } + } + + subscription.Dispose(); + } + + /// Delivers a value that bypassed the distinct gate, such as the initial value. + /// The value to deliver. + private void Publish(T? value) + { + if (_scheduler is not null) + { + Schedule(value); + return; + } + + // Nothing else can be delivering yet: the source is subscribed only after the initial value, and the core is + // private. Claiming the delivery is enough for a value produced meanwhile to queue behind this one. + using (EnterGate()) + { + _delivering = true; + } + + DeliverSerialized(value); + } + + /// Claims the delivery for the calling thread, or queues the value behind the running one. + /// The value to deliver. + /// when the caller now delivers; when the value was queued. + /// Called with held. + private bool TryClaimDelivery(T? value) + { + if (!_delivering) + { + _delivering = true; + return true; + } + + (_pending ??= new()).Enqueue(value); + return false; + } + + /// Delivers a value, then every value queued while it ran. + /// The value the calling thread claimed the delivery for. + private void DeliverSerialized(T? value) + { + try + { + while (true) + { + Deliver(value); + + using (EnterGate()) + { + if (Volatile.Read(ref _disposed) != 0 || _pending is not { Count: > 0 } pending) + { + _delivering = false; + return; + } + + value = pending.Dequeue(); + } + } + } + catch + { + // A later value must not be delivered ahead of the ones this failure stranded, so they are dropped. + using (EnterGate()) + { + _delivering = false; + _pending?.Clear(); + } + + throw; + } + } + + /// Delivers a value on the scheduler. + /// The value to deliver. + private void Schedule(T? value) => + _ = _scheduler!.Schedule( + new ScheduledDelivery(this, value), + static (_, delivery) => + { + delivery.Owner.Deliver(delivery.Value); + return EmptyDisposable.Instance; + }); + + /// Runs the changing callback, stores the value, then runs the changed callback. + /// The value being delivered. + private void Deliver(T? value) + { + _callbacks.OnChanging?.Invoke(_callbacks.ChangingState, value); + _lastValue = value; + _callbacks.OnChanged(_callbacks.ChangedState, value); + } + + /// Releases the gate when disposed; a struct, so a using over it allocates nothing. + /// The core whose gate was taken. + private readonly struct GateScope(Core owner) : IDisposable + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => Volatile.Write(ref owner._gate, 0); + } + } + + /// The stream. + /// The helper's state. + private sealed class ExceptionStream(Core core) : IObservable + { + /// + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + core.AddExceptionObserver(observer); + return new ExceptionSubscription(core, observer); + } + } + + /// Removes an observer of when disposed. + /// The helper's state. + /// The observer. + private sealed class ExceptionSubscription(Core core, IObserver observer) : IDisposable + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => core.RemoveExceptionObserver(observer); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyInheritance.cs b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyInheritance.cs new file mode 100644 index 00000000..8cc1bcf8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ObservableAsPropertyInheritance.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The modifier the code fix gives the property it writes for a field. +public enum ObservableAsPropertyInheritance +{ + /// No modifier. + None = 0, + + /// The property is . + Virtual = 1, + + /// The property is an . + Override = 2, + + /// The property hides an inherited member with . + New = 3, +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ObservablePropertyTarget.cs b/src/ReactiveUI.Binding.Shared/Bindings/ObservablePropertyTarget.cs new file mode 100644 index 00000000..166a68f7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ObservablePropertyTarget.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The object and property an backs. +/// The object that owns the property, which the helper passes to its change callbacks. +/// The property's name. +/// Generated ToProperty code builds this to create a helper. +[EditorBrowsable(EditorBrowsableState.Never)] +[DebuggerDisplay("{Owner}.{PropertyName}")] +public readonly struct ObservablePropertyTarget(object owner, string propertyName) : IEquatable +{ + /// Gets the object that owns the property. + public object Owner { get; } = owner; + + /// Gets the property's name. + public string PropertyName { get; } = propertyName; + + /// Determines whether two targets are the same object and property. + /// The first target. + /// The second target. + /// when they are equal. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ObservablePropertyTarget left, ObservablePropertyTarget right) => left.Equals(right); + + /// Determines whether two targets differ. + /// The first target. + /// The second target. + /// when they are not equal. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ObservablePropertyTarget left, ObservablePropertyTarget right) => !left.Equals(right); + + /// + public bool Equals(ObservablePropertyTarget other) => + ReferenceEquals(Owner, other.Owner) && string.Equals(PropertyName, other.PropertyName, StringComparison.Ordinal); + + /// + public override bool Equals(object? obj) => obj is ObservablePropertyTarget other && Equals(other); + + /// + public override int GetHashCode() => System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode(Owner) ^ StringComparer.Ordinal.GetHashCode(PropertyName); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ReactiveBinding.cs b/src/ReactiveUI.Binding.Shared/Bindings/ReactiveBinding.cs new file mode 100644 index 00000000..1929bf48 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ReactiveBinding.cs @@ -0,0 +1,72 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Default implementation of used by generated view-first bindings. +/// The type of the view. +/// The type of the bound value. +[DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] +public sealed class ReactiveBinding : IReactiveBinding + where TView : IViewFor +{ + /// The underlying subscription that is disposed when this binding is disposed. + private readonly IDisposable _subscription; + + /// Tracks whether this instance has been disposed (0 = not disposed, 1 = disposed). + private int _disposed; + + /// Initializes a new instance of the class. + /// The view that is bound. + /// An observable that signals when the binding value changes. + /// The direction of the binding. + /// The underlying subscription to dispose when the binding is disposed. + public ReactiveBinding( + TView view, + IObservable changed, + BindingDirection direction, + IDisposable subscription) + { + View = view; + Changed = changed; + Direction = direction; + _subscription = subscription; + } + + /// Gets the view model expression, which is always null because a generated binding carries no expression. + public Expression? ViewModelExpression => null; + + /// + public TView View { get; } + + /// Gets the view expression, which is always null because a generated binding carries no expression. + public Expression? ViewExpression => null; + + /// + public IObservable Changed { get; } + + /// + public BindingDirection Direction { get; } + + /// Disposes the underlying subscription on the first call; later calls do nothing. + public void Dispose() + { + if (!TrySetDisposed()) + { + return; + } + + _subscription.Dispose(); + } + + /// Atomically marks this instance as disposed. + /// if this is the first disposal; otherwise . + [ExcludeFromCodeCoverage] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal bool TrySetDisposed() => Interlocked.Exchange(ref _disposed, 1) == 0; +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/SequencerViewThreadInvoker.cs b/src/ReactiveUI.Binding.Shared/Bindings/SequencerViewThreadInvoker.cs new file mode 100644 index 00000000..e9c31908 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/SequencerViewThreadInvoker.cs @@ -0,0 +1,69 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Routes writes to a view object through the sequencer that owns the object's thread. +/// The type of view object this invoker claims. +/// The sequencer type that owns those objects' threads. +/// +/// A platform supplies , which names the sequencer that owns an object. The sequencer +/// answers whether the calling thread owns it, and queues work onto that thread. An object with no owning sequencer +/// belongs to no thread, so every thread may write to it. +/// +public abstract class SequencerViewThreadInvoker : IViewThreadInvoker + where TTarget : class + where TSequencer : class, ISequencer, IThreadAffineSequencer +{ + /// Returns whether is a . + /// The object a binding is about to write to. + /// when this invoker routes writes to . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) => target is TTarget; + + /// Returns whether the calling thread owns the sequencer of . + /// A ; any other type throws . + /// when the calling thread may write to now. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) => SequencerFor((TTarget)target)?.CheckAccess() ?? true; + + /// Queues on the sequencer of , or runs it inline when the target has none. + /// A ; any other type throws . + /// The callback to run. + /// The value passed to . + /// is null. + public void Post(object target, Action callback, object? state) + { + ArgumentExceptionHelper.ThrowIfNull(callback); + + var sequencer = SequencerFor((TTarget)target); + if (sequencer is null) + { + callback(state); + return; + } + + _ = sequencer.Schedule( + new PostedCallback(callback, state), + static (_, posted) => + { + posted.Callback(posted.State); + return EmptyDisposable.Instance; + }); + } + + /// Returns the sequencer that owns the thread of . + /// The object a binding writes to. + /// The owning sequencer, or null when belongs to no thread. + protected abstract TSequencer? SequencerFor(TTarget target); + + /// A callback and the value it is called with. + /// The callback to run. + /// The value passed to . + private readonly record struct PostedCallback(Action Callback, object? State); +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/TriggerUpdate.cs b/src/ReactiveUI.Binding.Shared/Bindings/TriggerUpdate.cs new file mode 100644 index 00000000..5e2403ad --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/TriggerUpdate.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Selects the direction driven by a binding's supplied update stream. +public enum TriggerUpdate +{ + /// The stream replaces view notifications and requests writes to the view model. + ViewToViewModel = 0, + + /// The stream requests writes to the view in place of view model notifications after the first; view notifications are still observed. + ViewModelToView = 1, +} diff --git a/src/ReactiveUI.Binding.Shared/Bindings/ViewThreadInvokers.cs b/src/ReactiveUI.Binding.Shared/Bindings/ViewThreadInvokers.cs new file mode 100644 index 00000000..c63eeea9 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Bindings/ViewThreadInvokers.cs @@ -0,0 +1,62 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Finds the registered invoker for the object a binding writes to. +[EditorBrowsable(EditorBrowsableState.Never)] +public static class ViewThreadInvokers +{ + /// The resolved invokers, or null while none have been resolved yet. + private static IViewThreadInvoker[]? _invokers; + + /// Re-reads the registered invokers, for a host that registers one after its first binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void Refresh() => Interlocked.Exchange(ref _invokers, null); + + /// Finds the first registered invoker that claims . + /// The object a binding is about to write to. + /// The invoker, or null when is null or nothing claims it. + public static IViewThreadInvoker? ForTarget(object? target) + { + if (target is null) + { + return null; + } + + var invokers = Resolve(); + for (var i = 0; i < invokers.Length; i++) + { + if (invokers[i].Claims(target)) + { + return invokers[i]; + } + } + + return null; + } + + /// Resolves the registered invokers once and keeps them. + /// The registered invokers, empty when none is registered. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IViewThreadInvoker[] Resolve() + { + var resolved = Volatile.Read(ref _invokers); + if (resolved is not null) + { + return resolved; + } + + IViewThreadInvoker[] built = [.. AppLocator.Current.GetServices()]; + + // Two threads racing the first resolve both read the locator and one array is dropped. + return Interlocked.CompareExchange(ref _invokers, built, null) ?? built; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingBuilder.cs b/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingBuilder.cs new file mode 100644 index 00000000..17806ff6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingBuilder.cs @@ -0,0 +1,75 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// +/// Fluent builder that configures ReactiveUI.Binding services, converters, and platform modules +/// before building an application instance. +/// +/// +/// +/// The builder wraps to provide ReactiveUI.Binding-specific configuration +/// for property observation and binding services. Platform modules (WPF, WinForms, MAUI) are +/// registered via extension methods such as WithWpf(), WithWinForms(), and WithMaui(). +/// +/// +/// +public interface IReactiveUIBindingBuilder : IAppBuilder +{ + /// + /// Registers the core ReactiveUI.Binding services (INPC/POCO observation, default converters, default view locator). + /// Hides to return + /// for fluent chaining. + /// + /// The builder instance for chaining. + new IReactiveUIBindingBuilder WithCoreServices(); + + /// Registers a platform-specific module with the builder. + /// The type of the platform module. Must implement . + /// The platform module instance to register. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithPlatformModule(T module) + where T : IModule; + + /// Runs a registration action against the mutable dependency resolver. + /// An action that receives the mutable dependency resolver. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithRegistration(Action configureAction); + + /// Registers a typed binding converter. + /// The converter instance to register. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithConverter(IBindingTypeConverter converter); + + /// Registers a fallback binding converter. + /// The fallback converter instance to register. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithFallbackConverter(IBindingFallbackConverter converter); + + /// Registers a set-method binding converter. + /// The set-method converter instance to register. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithSetMethodConverter(ISetMethodBindingConverter converter); + + /// Registers a custom command binder for binding instances to UI controls. + /// The command binder instance to register. + /// The builder instance for chaining. + IReactiveUIBindingBuilder WithCommandBinder(ICreatesCommandBinding binder); + + /// Registers a default view locator holding the explicit view-to-view-model mappings. + /// An action that receives a for registering mappings. + /// The builder instance for chaining. + IReactiveUIBindingBuilder ConfigureViewLocator(Action configure); + + /// Builds the application, publishes the converter service and marks ReactiveUI.Binding initialized. + /// The configured application instance. + IReactiveUIBindingInstance BuildApp(); +} diff --git a/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingInstance.cs b/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingInstance.cs new file mode 100644 index 00000000..3ecf1635 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/IReactiveUIBindingInstance.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// Represents a configured ReactiveUI.Binding application instance. +/// +public interface IReactiveUIBindingInstance : IAppInstance; diff --git a/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingBuilder.cs b/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingBuilder.cs new file mode 100644 index 00000000..325fb07a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingBuilder.cs @@ -0,0 +1,187 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// Configures ReactiveUI.Binding services, converters and platform modules on a Splat . +[DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] +public sealed class ReactiveUIBindingBuilder : AppBuilder, IReactiveUIBindingBuilder, IReactiveUIBindingInstance +{ + /// Tracks whether core services are registered, so a repeat call registers nothing. + private bool _coreRegistered; + + /// Initializes a new instance of the class, initializing Splat on the resolver and registering with it. + /// The dependency resolver to configure. + /// The resolver that reads the configured services; may be null. + public ReactiveUIBindingBuilder(IMutableDependencyResolver resolver, IReadonlyDependencyResolver? current) + : base(resolver, current) + { + CurrentMutable.InitializeSplat(); + + // Register the ConverterService instance so it's accessible to registrations + CurrentMutable.RegisterConstant(ConverterService); + } + + /// Gets the converter service used for binding type conversions. + /// + /// This service provides access to three specialized registries: + /// + /// - For exact type-pair converters. + /// - For fallback converters with runtime type checking. + /// - For set-method converters. + /// + /// Use the WithConverter* methods to register converters during application initialization. + /// + public ConverterService ConverterService { get; } = new(); + + /// Registers a platform-specific module with the builder. + /// The type of the platform module. Must implement . + /// The platform module instance to register. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithPlatformModule(T module) + where T : IModule + { + ArgumentExceptionHelper.ThrowIfNull(module); + _ = UsingModule(module); + return this; + } + + /// Runs a registration action against the mutable dependency resolver immediately. + /// An action that receives the mutable dependency resolver. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithRegistration(Action configureAction) + { + ArgumentExceptionHelper.ThrowIfNull(configureAction); + configureAction(CurrentMutable); + return this; + } + + /// Registers a typed binding converter. + /// The converter instance to register. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithConverter(IBindingTypeConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + ConverterService.TypedConverters.Register(converter); + return this; + } + + /// Registers a fallback binding converter. + /// The fallback converter instance to register. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithFallbackConverter(IBindingFallbackConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + ConverterService.FallbackConverters.Register(converter); + return this; + } + + /// Registers a set-method binding converter. + /// The set-method converter instance to register. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithSetMethodConverter(ISetMethodBindingConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(converter); + ConverterService.SetMethodConverters.Register(converter); + return this; + } + + /// Registers a custom command binder for binding commands to UI controls. + /// The command binder instance to register. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder WithCommandBinder(ICreatesCommandBinding binder) + { + ArgumentExceptionHelper.ThrowIfNull(binder); + CurrentMutable.RegisterLazySingleton(() => binder); + return this; + } + + /// Creates a holding the explicit mappings and registers it as the . + /// An action that receives a for registering mappings. + /// The builder instance for chaining. + /// is null. + public IReactiveUIBindingBuilder ConfigureViewLocator(Action configure) + { + ArgumentExceptionHelper.ThrowIfNull(configure); + + var locator = new DefaultViewLocator(); + var mappingBuilder = new ViewMappingBuilder(locator); + configure(mappingBuilder); + CurrentMutable.RegisterConstant(locator); + return this; + } + + /// Registers the default converters, the INPC and POCO observation services and the default view locator; calling it again registers nothing more. + /// The builder instance for chaining. + public override IAppBuilder WithCoreServices() + { + if (!_coreRegistered) + { + // Register all standard converters to the ConverterService + DefaultConverterRegistration.RegisterDefaults(ConverterService); + + // Register core observation services + _ = WithPlatformModule(new ReactiveUIBindingModule()); + + // Register default view locator + CurrentMutable.RegisterLazySingleton(static () => new DefaultViewLocator()); + + _coreRegistered = true; + } + + return this; + } + + /// + IReactiveUIBindingBuilder IReactiveUIBindingBuilder.WithCoreServices() => + (IReactiveUIBindingBuilder)WithCoreServices(); + + /// Builds the application, publishes through and marks ReactiveUI.Binding initialized. + /// The configured application instance. + /// The build produced no usable instance. + public IReactiveUIBindingInstance BuildApp() + { + var appInstance = (IReactiveUIBindingInstance)Build(); + + ThrowIfCurrentNull(appInstance); + + // Set the global converter service + BindingConverters.SetService(ConverterService); + + // Mark as initialized + RxBindingBuilder.MarkAsInitialized(); + + return appInstance; + } + + /// + /// Throws if the app instance's Current resolver is null after building. + /// This is a defensive guard that should never be hit in practice because + /// always sets Current. + /// + /// The built app instance to validate. + /// has no Current resolver, so the build did not produce a usable instance. + [ExcludeFromCodeCoverage] + private static void ThrowIfCurrentNull(IReactiveUIBindingInstance appInstance) + { + if (appInstance.Current is not null) + { + return; + } + + throw new InvalidOperationException("Failed to create ReactiveUIBindingInstance instance"); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingModule.cs b/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingModule.cs new file mode 100644 index 00000000..cd0a0085 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/ReactiveUIBindingModule.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// Registers the implementations for INotifyPropertyChanged and plain object properties. +/// +/// Command binding for known patterns (Command property, event+Enabled, basic event) is handled +/// at compile time by source generator plugins; only custom +/// implementations are resolved at runtime. Register the WPF, WinForms and MAUI modules separately with +/// WithPlatformModule or UsingModule. +/// +public sealed class ReactiveUIBindingModule : IModule +{ + /// Registers the INPC and POCO property observation services with the resolver. + /// The dependency resolver to configure. + /// is null. + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + // Register core ICreatesObservableForProperty implementations + resolver.RegisterLazySingleton(static () => new INPCObservableForProperty()); + resolver.RegisterLazySingleton(static () => new POCOObservableForProperty()); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilder.cs b/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilder.cs new file mode 100644 index 00000000..3ff05f48 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilder.cs @@ -0,0 +1,55 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// Static factory for creating instances. +public static class RxBindingBuilder +{ + /// Whether ReactiveUI.Binding has been initialized: 0 until runs, 1 after. + private static int _hasBeenInitialized; + + /// Creates a new using the current Splat locator. + /// A new builder instance. + public static ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() => + new(AppLocator.CurrentMutable, AppLocator.Current); + + /// Returns when a builder's BuildApp() has completed, and throws otherwise. + /// BuildApp() has not been called on a . + public static void EnsureInitialized() + { + if (Volatile.Read(ref _hasBeenInitialized) != 0) + { + return; + } + + throw new InvalidOperationException( + "ReactiveUI.Binding has not been initialized. You must initialize using the builder pattern.\n\n" + + "Example:\n" + + "RxBindingBuilder.CreateReactiveUIBindingBuilder()\n" + + " .WithCoreServices()\n" + + " .BuildApp();"); + } + + /// Resets the initialization state for testing purposes only. + /// + /// WARNING: This method should ONLY be used in unit tests. Never call in production code. + /// + public static void ResetForTesting() + { + AppBuilder.ResetBuilderStateForTests(); + AppLocator.SetLocator(new ModernDependencyResolver()); + Volatile.Write(ref _hasBeenInitialized, 0); + } + + /// Marks ReactiveUI.Binding as initialized. Called by . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() => Volatile.Write(ref _hasBeenInitialized, 1); +} diff --git a/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilderMixins.cs b/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilderMixins.cs new file mode 100644 index 00000000..cabd6e42 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Builder/RxBindingBuilderMixins.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Builder; +#else +namespace ReactiveUI.Binding.Builder; +#endif + +/// Resolver-scoped entry points for creating instances. +public static class RxBindingBuilderMixins +{ + /// Provides CreateReactiveUIBindingBuilder extension members for . + /// The dependency resolver to use. + extension(IMutableDependencyResolver resolver) + { + /// Creates a new that registers into the specified resolver. + /// A new builder instance that reads services from the resolver when it is also an , and from the current locator otherwise. + /// The resolver is null. + public ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + return new(resolver, resolver as IReadonlyDependencyResolver ?? AppLocator.Current); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/CommandBinding/CommandBinderService.cs b/src/ReactiveUI.Binding.Shared/CommandBinding/CommandBinderService.cs new file mode 100644 index 00000000..ac400070 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/CommandBinding/CommandBinderService.cs @@ -0,0 +1,47 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.CommandBinding; +#else +namespace ReactiveUI.Binding.CommandBinding; +#endif + +/// +/// Service that resolves the best for a given +/// control type using affinity scoring. Follows the same resolution pattern as +/// property observation via . +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class CommandBinderService +{ + /// Gets the highest-affinity registered for the specified control type. + /// The type of the control. + /// Whether the caller specifies a custom event target. + /// The best binder; the first registered wins a tie. Null when every registered binder returns an affinity of zero or less. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; the interface shape dictates it.")] + public static ICreatesCommandBinding? GetBinder(bool hasEventTarget) + { + var binders = Locator.Current.GetServices(); + + ICreatesCommandBinding? bestBinder = null; + var bestAffinity = 0; + + foreach (var binder in binders) + { + var affinity = binder.GetAffinityForObject(hasEventTarget); + if (affinity <= bestAffinity) + { + continue; + } + + bestAffinity = affinity; + bestBinder = binder; + } + + return bestBinder; + } +} diff --git a/src/ReactiveUI.Binding.Shared/CommandBinding/CommandInvoker.cs b/src/ReactiveUI.Binding.Shared/CommandBinding/CommandInvoker.cs new file mode 100644 index 00000000..eb412aa2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/CommandBinding/CommandInvoker.cs @@ -0,0 +1,159 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.ExceptionServices; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.CommandBinding; +#else +namespace ReactiveUI.Binding.CommandBinding; +#endif + +/// Executes a command with each value a sequence produces. +/// +/// +/// What an InvokeCommand does once the command is in hand, whether the generator resolved the command +/// property at compile time or the runtime engine read it from the expression. Both hand the command here rather +/// than writing the gating themselves, so a generated call site emits one call and the two paths cannot drift. +/// +/// +/// is asked at each emission rather than tracked from +/// : the value being offered is the command parameter, so only the +/// command can answer for that value, and an answer tracked from the event would have to be recomputed per value +/// anyway. A value the command refuses is dropped rather than held. +/// +/// +/// An error from a source sequence is rethrown on the thread that raised it, and completion is ignored. +/// +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class CommandInvoker +{ + /// Executes one command with each value the sequence produces, skipping values the command refuses. + /// The type of the value offered as the command parameter. + /// The sequence driving the executions. + /// The command to execute. + /// A disposable that, when disposed, stops executing the command. + /// or is null. + public static IDisposable Invoke(IObservable source, ICommand command) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(command); + + return source.Subscribe(new FixedCommandObserver(command)); + } + + /// Executes whichever command the observed sequence of commands last produced. + /// The type of the value offered as the command parameter. + /// The sequence driving the executions. + /// The command to execute, as the observed property produces it. + /// A disposable that, when disposed, stops executing and stops observing the property. + /// or is null. + /// + /// + /// The commands are subscribed first, so a command the sequence produces on subscription is latched before + /// any value can arrive. Subscribing in the other order drops a value produced immediately. + /// + /// + /// A null command - a property not yet assigned, or a path through an absent parent - drops the values + /// offered while it stands, and a later command picks up from the next value. Replacing the command executes + /// nothing by itself: values are what drive an execution, which is why the two sequences are not combined. + /// + /// + public static IDisposable Invoke(IObservable source, IObservable commands) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(commands); + + var latch = new CommandLatch(); + var commandSubscription = commands.Subscribe(latch); + + return new MultipleDisposable(commandSubscription, source.Subscribe(new LatchedCommandObserver(latch))); + } + + /// Offers each value to a command fixed for the lifetime of the subscription. + /// The type of the value offered as the command parameter. + /// The command to execute. + private sealed class FixedCommandObserver(ICommand command) : IObserver + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() + { + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => ExceptionDispatchInfo.Capture(error).Throw(); + + /// + public void OnNext(T value) + { + if (!command.CanExecute(value)) + { + return; + } + + command.Execute(value); + } + } + + /// Holds the command an observed property last produced. + /// + /// The command is written on whichever thread raised the property notification and read on whichever thread + /// a value arrives on, which are not the same thread in the general case. + /// + private sealed class CommandLatch : IObserver + { + /// The command the property last produced. + private ICommand? _command; + + /// Gets the command the property last produced. + internal ICommand? Command => Volatile.Read(ref _command); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() + { + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => ExceptionDispatchInfo.Capture(error).Throw(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnNext(ICommand? value) => Volatile.Write(ref _command, value); + } + + /// Offers each value to whichever command the latch currently holds. + /// The type of the value offered as the command parameter. + /// The latch holding the command. + private sealed class LatchedCommandObserver(CommandLatch latch) : IObserver + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() + { + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => ExceptionDispatchInfo.Capture(error).Throw(); + + /// + public void OnNext(T value) + { + var command = latch.Command; + if (command is null || !command.CanExecute(value)) + { + return; + } + + command.Execute(value); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Expression/ExpressionMixins.cs b/src/ReactiveUI.Binding.Shared/Expression/ExpressionMixins.cs new file mode 100644 index 00000000..1ec9266a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Expression/ExpressionMixins.cs @@ -0,0 +1,172 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using System.Text; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Expressions; +#else +namespace ReactiveUI.Binding.Expressions; +#endif + +/// Extension methods that decompose property-access expression trees. +public static class ExpressionMixins +{ + /// Provides GetExpressionChain extension members for . + /// The expression. + extension(Expression expression) + { + /// Gets the member accesses and indexer accesses that make up an expression, ordered from the root parameter outward. + /// + /// The links in order, each rebased onto a fresh parameter of its parent's type; empty when the expression is a + /// parameter or . + /// + /// The expression contains a node that is neither a member access, an index nor the root parameter. + public IEnumerable GetExpressionChain() + { + var expressions = new List(); + var node = expression; + + while (node is not null && node.NodeType != ExpressionType.Parameter) + { + if (node is IndexExpression indexExpression) + { + expressions.Add(RebaseOnParameter(indexExpression)); + node = indexExpression.Object; + } + else if (node is MemberExpression memberExpression) + { + expressions.Add(RebaseOnParameter(memberExpression)); + node = memberExpression.Expression; + } + else + { + throw CreateUnsupportedExpressionException(node); + } + } + + expressions.Reverse(); + return expressions; + } + + /// Gets the member an index or member-access expression names, looking through conversions. + /// The property, field or indexer the expression names. + /// The expression is . + /// The expression is not an index, member access, or conversion node, so it names no member. + public MemberInfo? GetMemberInfo() + { + while (true) + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + MemberInfo? info; + switch (expression.NodeType) + { + case ExpressionType.Index when expression is IndexExpression indexExpression: + { + info = indexExpression.Indexer; + break; + } + + case ExpressionType.MemberAccess when expression is MemberExpression memberExpression: + { + info = memberExpression.Member; + break; + } + + case ExpressionType.Convert or ExpressionType.ConvertChecked when expression is UnaryExpression unaryExpression: + { + expression = unaryExpression.Operand; + continue; + } + + default: + throw new NotSupportedException($"Unsupported {nameof(expression)} type: '{expression.NodeType}'"); + } + + return info; + } + } + + /// Gets the expression an index or member-access expression is read from. + /// The object expression, or null for a static member. + /// The expression is . + /// The expression is not an index or member access node, so nothing precedes it in a chain. + public Expression? GetParent() + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + return expression.NodeType switch + { + ExpressionType.Index when expression is IndexExpression indexExpression => indexExpression.Object, + ExpressionType.MemberAccess when expression is MemberExpression memberExpression => memberExpression + .Expression, + _ => throw new NotSupportedException($"Unsupported expression type: '{expression.NodeType}'") + }; + } + + /// Gets the constant arguments passed to an indexer expression. + /// The argument values, or null when the expression is not an index expression. + /// The expression is . + /// An indexer argument is not a constant expression. + public object?[]? GetArgumentsArray() + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + if (expression.NodeType != ExpressionType.Index) + { + return null; + } + + var arguments = ((IndexExpression)expression).Arguments; + var values = new object?[arguments.Count]; + for (var i = 0; i < arguments.Count; i++) + { + values[i] = ((ConstantExpression)arguments[i]).Value; + } + + return values; + } + } + + /// Rewrites an indexer access so it hangs off a parameter of the parent's type. + /// The indexer access to rebase. + /// The rebased expression, or the original when it already sits on a parameter. + private static IndexExpression RebaseOnParameter(IndexExpression indexExpression) + { + var parent = indexExpression.GetParent(); + return indexExpression.Object is not null && parent is not null + && indexExpression.Object.NodeType != ExpressionType.Parameter + ? indexExpression.Update(Expression.Parameter(parent.Type), indexExpression.Arguments) + : indexExpression; + } + + /// Rewrites a member access so it hangs off a parameter of the parent's type. + /// The member access to rebase. + /// The rebased expression, or the original when it already sits on a parameter. + private static MemberExpression RebaseOnParameter(MemberExpression memberExpression) + { + var parent = memberExpression.GetParent(); + return parent is not null && memberExpression.Expression is not null + && memberExpression.Expression.NodeType != ExpressionType.Parameter + ? memberExpression.Update(Expression.Parameter(parent.Type)) + : memberExpression; + } + + /// Builds the exception thrown for an expression node the chain walker cannot decompose. + /// The unsupported node. + /// The exception to throw. + private static NotSupportedException CreateUnsupportedExpressionException(Expression node) + { + var errorMessageBuilder = new StringBuilder($"Unsupported expression of type '{node.NodeType}'."); + + if (node is ConstantExpression) + { + _ = errorMessageBuilder.Append(" Did you miss the member access prefix in the expression?"); + } + + return new(errorMessageBuilder.ToString()); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Expression/ExpressionRewriter.cs b/src/ReactiveUI.Binding.Shared/Expression/ExpressionRewriter.cs new file mode 100644 index 00000000..cc959ca6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Expression/ExpressionRewriter.cs @@ -0,0 +1,203 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.ObjectModel; +using System.Reflection; +using System.Text; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Expressions; +#else +namespace ReactiveUI.Binding.Expressions; +#endif + +/// +/// Rewrites and validates expression trees used by binding infrastructure, normalizing +/// supported constructs into a consistent shape. +/// +/// +/// +/// This visitor intentionally supports a constrained set of expression node types. Unsupported shapes +/// are rejected with actionable exceptions to help callers correct their expressions. +/// +/// +/// Supported rewrites include: +/// +/// +/// is rewritten into an indexer access. +/// to a special-name indexer method is rewritten into an . +/// is rewritten into member access to Length. +/// is stripped. +/// +/// +[RequiresUnreferencedCode( + "Expression rewriting uses reflection over runtime types which may be removed by trimming.")] +internal sealed class ExpressionRewriter : ExpressionVisitor +{ + /// + public override Expression Visit(Expression? node) + { + ArgumentExceptionHelper.ThrowIfNull(node); + + return node!.NodeType switch + { + ExpressionType.ArrayIndex => VisitBinary((BinaryExpression)node), + ExpressionType.ArrayLength or ExpressionType.Convert => VisitUnary((UnaryExpression)node), + ExpressionType.Call => VisitMethodCall((MethodCallExpression)node), + ExpressionType.Index => VisitIndex((IndexExpression)node), + ExpressionType.MemberAccess => VisitMember((MemberExpression)node), + ExpressionType.Parameter => VisitParameter((ParameterExpression)node), + ExpressionType.Constant => VisitConstant((ConstantExpression)node), + _ => throw CreateUnsupportedNodeException(node) + }; + } + + /// Creates an exception for an unsupported expression node type, with an actionable error message. + /// The unsupported expression node. + /// A describing the unsupported node. + internal static Exception CreateUnsupportedNodeException(Expression node) + { + const int MessageBuilderCapacity = 96; + + var sb = new StringBuilder(MessageBuilderCapacity); + _ = sb.Append("Unsupported expression of type '") + .Append(node.NodeType) + .Append("' ") + .Append(node) + .Append('.'); + + if (node is BinaryExpression be) + { + _ = sb.Append(" Did you meant to use expressions '") + .Append(be.Left) + .Append("' and '") + .Append(be.Right) + .Append("'?"); + } + + return new NotSupportedException(sb.ToString()); + } + + /// Gets the indexer property named "Item" from the specified type. + /// The type to retrieve the indexer property from. + /// The for the "Item" indexer property. + /// Thrown if no indexer property named "Item" is found. + internal static PropertyInfo GetItemProperty( + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties + | DynamicallyAccessedMemberTypes.NonPublicProperties)] + Type type) + { + var property = type.GetRuntimeProperty("Item"); + return property ?? throw new InvalidOperationException("Could not find a valid indexer property named 'Item'."); + } + + /// Gets the "Length" property from the specified type. + /// The type to retrieve the Length property from. + /// The for the "Length" property. + /// Thrown if no "Length" property is found. + internal static PropertyInfo GetLengthProperty( + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties + | DynamicallyAccessedMemberTypes.NonPublicProperties)] + Type type) + { + var property = type.GetRuntimeProperty("Length"); + return property + ?? throw new InvalidOperationException("Could not find valid information for the array length operator."); + } + + /// Determines whether all expressions in the collection are instances. + /// The collection of expressions to check. + /// if every expression is a ; otherwise . + internal static bool AllConstant(ReadOnlyCollection expressions) + { + for (var i = 0; i < expressions.Count; i++) + { + if (expressions[i] is not ConstantExpression) + { + return false; + } + } + + return true; + } + + /// Visits each expression in an argument list and returns the visited results as an array. + /// The argument expressions to visit. + /// An array of visited argument expressions. + internal Expression[] VisitArgumentList(ReadOnlyCollection arguments) + { + var count = arguments.Count; + if (count == 0) + { + return []; + } + + var visited = new Expression[count]; + for (var i = 0; i < count; i++) + { + visited[i] = Visit(arguments[i]); + } + + return visited; + } + + /// + protected override Expression VisitBinary(BinaryExpression node) + { + if (node.Right is not ConstantExpression) + { + throw new NotSupportedException("Array index expressions are only supported with constants."); + } + + var instance = Visit(node.Left); + var index = (ConstantExpression)Visit(node.Right); + + // ArrayIndex expressions are only produced by the C# compiler for actual arrays, + // so instance.Type.IsArray is always true here. + return Expression.ArrayAccess(instance, index); + } + + /// + protected override Expression VisitUnary(UnaryExpression node) + { + // Visit() only routes Convert and ArrayLength here, so no fallthrough is needed. + // UnaryExpression always has a non-null Operand for these node types. + if (node.NodeType == ExpressionType.Convert) + { + return Visit(node.Operand); + } + + // Must be ArrayLength + var operand = Visit(node.Operand); + var lengthProperty = GetLengthProperty(operand.Type); + + return Expression.MakeMemberAccess(operand, lengthProperty); + } + + /// + protected override Expression VisitMethodCall(MethodCallExpression node) + { + if (!node.Method.IsSpecialName || !AllConstant(node.Arguments)) + { + throw new NotSupportedException("Index expressions are only supported with constants."); + } + + // Instance method calls routed here always have a non-null Object. + var instance = Visit(node.Object!); + var args = VisitArgumentList(node.Arguments); + + return Expression.MakeIndex(instance, GetItemProperty(instance.Type), args); + } + + /// + protected override Expression VisitIndex(IndexExpression node) + { + if (!AllConstant(node.Arguments)) + { + throw new NotSupportedException("Index expressions are only supported with constants."); + } + + return base.VisitIndex(node); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Expression/Reflection.cs b/src/ReactiveUI.Binding.Shared/Expression/Reflection.cs new file mode 100644 index 00000000..7fc39110 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Expression/Reflection.cs @@ -0,0 +1,386 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Text; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Expressions; +#else +namespace ReactiveUI.Binding.Expressions; +#endif + +/// Reads and writes members along a property expression chain by reflection. +public static class Reflection +{ + /// Reported when an expression yields no chain to walk. + private const string EmptyExpressionChainMessage = "Expression chain must contain at least one element."; + + /// The shared rewriter instance used to simplify expressions before inspection. + /// + /// Built on first use rather than in a static initializer. The rewriter reads runtime types by + /// reflection and says so, and a static constructor has nowhere to carry that annotation. + /// + private static ExpressionRewriter? _expressionRewriter; + + /// Simplifies an expression with the shared expression rewriter. + /// The expression to rewrite. + /// The rewritten expression, or when is . + [RequiresUnreferencedCode( + "Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Expression Rewrite(Expression? expression) => + (_expressionRewriter ??= new()).Visit(expression); + + /// Converts an expression that points to a property chain into a dotted path string, such as A.B[0].C. + /// The expression to generate the property names from; an indexer's arguments must be constants. + /// The member names joined by dots, with an indexer written as its name followed by its arguments in brackets. + /// is . + /// The chain contains a node that is neither a member access nor an index. + public static string ExpressionToPropertyNames(Expression? expression) + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + var sb = new StringBuilder(); + var firstSegment = true; + + foreach (var exp in expression!.GetExpressionChain()) + { + if (exp.NodeType == ExpressionType.Parameter) + { + continue; + } + + if (!firstSegment) + { + _ = sb.Append('.'); + } + + // Anything other than an indexer or member access contributes no name segment. + if (exp is IndexExpression { Indexer: not null } indexExpression) + { + _ = sb.Append(indexExpression.Indexer.Name).Append('['); + + var args = indexExpression.Arguments; + for (var i = 0; i < args.Count; i++) + { + if (i != 0) + { + _ = sb.Append(','); + } + + _ = sb.Append(((ConstantExpression)args[i]).Value); + } + + _ = sb.Append(']'); + } + else if (exp is MemberExpression memberExpression) + { + _ = sb.Append(memberExpression.Member.Name); + } + + firstSegment = false; + } + + return sb.ToString(); + } + + /// Converts a into a delegate which fetches the value for the member. + /// The member info to convert. + /// + /// A delegate that fetches the value, or null when the member is neither a field nor a property. The delegate for + /// a field throws when the field holds null. + /// + /// is . + public static Func? GetValueFetcherForProperty(MemberInfo? member) + { + ArgumentExceptionHelper.ThrowIfNull(member); + + if (member is FieldInfo field) + { + return (obj, _) => + { + var value = field.GetValue(obj); + return value ?? throw new InvalidOperationException(); + }; + } + + return member is not PropertyInfo property ? null : property.GetValue; + } + + /// Converts a into a delegate which fetches the value for the member. Throws if the member is not a field or property. + /// The member info to convert. + /// A delegate that fetches the value. + /// is . + /// is neither a nor a , so no fetcher can be built for it. + public static Func GetValueFetcherOrThrow(MemberInfo? member) + { + ArgumentExceptionHelper.ThrowIfNull(member); + + var ret = GetValueFetcherForProperty(member); + return ret + ?? throw new ArgumentException($"Type '{member!.DeclaringType}' must have a property '{member.Name}'"); + } + + /// Converts a into a delegate which sets the value for the member. + /// The member info to convert. + /// A delegate that sets the value, or null when the member is neither a field nor a property. + /// is . + public static Action? GetValueSetterForProperty(MemberInfo? member) + { + ArgumentExceptionHelper.ThrowIfNull(member); + + if (member is FieldInfo field) + { + return (obj, val, _) => field.SetValue(obj, val); + } + + return member is not PropertyInfo property ? null : property.SetValue; + } + + /// Converts a into a delegate which sets the value for the member. Throws if the member is not a field or property. + /// The member info to convert. + /// A delegate that sets the value. + /// is . + /// is neither a nor a , so no setter can be built for it. + public static Action GetValueSetterOrThrow(MemberInfo? member) + { + ArgumentExceptionHelper.ThrowIfNull(member); + + var ret = GetValueSetterForProperty(member); + return ret + ?? throw new ArgumentException($"Type '{member!.DeclaringType}' must have a property '{member.Name}'"); + } + + /// Attempts to get the value of the last property in an expression chain. + /// The expected type of the final value. + /// Receives the value if the chain can be evaluated; otherwise the default. + /// The object that starts the property chain. + /// A sequence of expressions that point to properties/fields. + /// True if the value was retrieved; false when or a property partway along the chain is null. + /// is empty, so there is no member to read a value from. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain( + out TValue changeValue, + object? current, + IEnumerable expressionChain) + { + var expressions = MaterializeExpressions(expressionChain); + var count = expressions.Length; + + if (count == 0) + { + throw new InvalidOperationException(EmptyExpressionChainMessage); + } + + for (var i = 0; i < count - 1; i++) + { + if (current is null) + { + changeValue = default!; + return false; + } + + var expression = expressions[i]; + current = GetValueFetcherOrThrow(expression.GetMemberInfo())(current, expression.GetArgumentsArray()); + } + + if (current is null) + { + changeValue = default!; + return false; + } + + var lastExpression = expressions[count - 1]; + changeValue = + (TValue)GetValueFetcherOrThrow(lastExpression.GetMemberInfo())( + current, + lastExpression.GetArgumentsArray())!; + return true; + } + + /// Attempts to get all intermediate values in a property chain as observed changes. + /// Receives an array with one entry per expression in the chain; the entries from the first null link onward are null. + /// The object that starts the property chain. + /// A sequence of expressions that point to properties/fields. + /// True if all values were retrieved; false when or a property partway along the chain is null. + /// is empty, so there is no member to read a value from. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain( + out IObservedChange[] changeValues, + object? current, + IEnumerable expressionChain) + { + var expressions = MaterializeExpressions(expressionChain); + var count = expressions.Length; + + changeValues = new IObservedChange[count]; + + if (count == 0) + { + throw new InvalidOperationException(EmptyExpressionChainMessage); + } + + var currentIndex = 0; + + for (; currentIndex < count - 1; currentIndex++) + { + if (current is null) + { + changeValues[currentIndex] = null!; + return false; + } + + var expression = expressions[currentIndex]; + var sender = current; + current = GetValueFetcherOrThrow(expression.GetMemberInfo())(current, expression.GetArgumentsArray()); + changeValues[currentIndex] = new ObservedChange(sender, expression, current); + } + + if (current is null) + { + changeValues[currentIndex] = null!; + return false; + } + + var lastExpression = expressions[count - 1]; + changeValues[currentIndex] = new ObservedChange( + current, + lastExpression, + GetValueFetcherOrThrow(lastExpression.GetMemberInfo())(current, lastExpression.GetArgumentsArray())); + + return true; + } + + /// Attempts to set the value of the last property in an expression chain, throwing when a chain member is not a field or property. + /// The type of the end value being set. + /// The object that starts the property chain. + /// A sequence of expressions that point to properties/fields. + /// The value to set on the last property in the chain. + /// True if the value was set; false when the object owning the last property is null. + /// is empty, so there is no member to set a value on. + /// A member in the chain is neither a field nor a property. + /// or a property before the last link's owner is . + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain( + object? target, + IEnumerable expressionChain, + TValue value) => + TrySetValueToPropertyChain(target, expressionChain, value, true); + + /// Attempts to set the value of the last property in an expression chain. + /// The type of the end value being set. + /// The object that starts the property chain. + /// A sequence of expressions that point to properties/fields. + /// The value to set on the last property in the chain. + /// If true, throw when a chain member is not a field or property; otherwise, an unreadable link is skipped and an unwritable last member returns false. + /// True if the value was set; false when the object owning the last property is null or the last member cannot be written. + /// is empty, so there is no member to set a value on. + /// is true and a member in the chain is neither a field nor a property. + /// or a property before the last link's owner is . + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain( + object? target, + IEnumerable expressionChain, + TValue value, + bool shouldThrow) + { + var expressions = MaterializeExpressions(expressionChain); + var count = expressions.Length; + + if (count == 0) + { + throw new InvalidOperationException(EmptyExpressionChainMessage); + } + + for (var i = 0; i < count - 1; i++) + { + var expression = expressions[i]; + + var getter = shouldThrow + ? GetValueFetcherOrThrow(expression.GetMemberInfo()) + : GetValueFetcherForProperty(expression.GetMemberInfo()); + + if (getter is null) + { + continue; + } + + ArgumentExceptionHelper.ThrowIfNull(target); + target = getter(target, expression.GetArgumentsArray()); + } + + if (target is null) + { + return false; + } + + var lastExpression = expressions[count - 1]; + + var setter = shouldThrow + ? GetValueSetterOrThrow(lastExpression.GetMemberInfo()) + : GetValueSetterForProperty(lastExpression.GetMemberInfo()); + + return TryInvokeSetter(setter, target, value, lastExpression.GetArgumentsArray()); + } + + /// Materializes an expression chain into an array for indexed access, reusing the backing array when possible. + /// The expression chain to materialize. + /// An array of expressions representing the chain. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static Expression[] MaterializeExpressions(IEnumerable expressionChain) + { + ArgumentExceptionHelper.ThrowIfNull(expressionChain); + + switch (expressionChain) + { + case Expression[] arr: + return arr; + case ICollection coll: + { + if (coll.Count == 0) + { + return []; + } + + var result = new Expression[coll.Count]; + coll.CopyTo(result, 0); + return result; + } + + default: + return [.. expressionChain]; + } + } + + /// + /// Invokes the setter if it is not null. Returns false when the setter is null, + /// which occurs when receives a + /// that is neither a nor a . + /// This is a defensive guard for synthetic expression chains; standard lambda-derived chains + /// always produce PropertyInfo or FieldInfo members. + /// + /// The setter delegate, or null. + /// The target object. + /// The value to set. + /// The indexer arguments, if any. + /// True if the setter was invoked; false if the setter was null. + [ExcludeFromCodeCoverage] + private static bool TryInvokeSetter( + Action? setter, + object? target, + object? value, + object?[]? arguments) + { + if (setter is null) + { + return false; + } + + setter(target, value, arguments); + return true; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/CommandBindingAffinityChecker.cs b/src/ReactiveUI.Binding.Shared/Fallback/CommandBindingAffinityChecker.cs new file mode 100644 index 00000000..b6461d81 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/CommandBindingAffinityChecker.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// +/// Reports whether a registered has a higher affinity for a control type than the +/// mechanism the generator selected, so generated code can defer to it at runtime. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class CommandBindingAffinityChecker +{ + /// Returns if a registered outranks . + /// The control type being bound to. + /// The affinity of the source generator's selected plugin. + /// Whether the caller specifies a custom event target. + /// if a user plugin should override the generated binding; the registrations are read from the service locator on every call. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; the interface shape dictates it.")] + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) + { + foreach (var plugin in Locator.Current.GetServices()) + { + if (plugin.GetAffinityForObject(hasEventTarget) > generatedAffinity) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/ObservationAffinityChecker.cs b/src/ReactiveUI.Binding.Shared/Fallback/ObservationAffinityChecker.cs new file mode 100644 index 00000000..8832ab64 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/ObservationAffinityChecker.cs @@ -0,0 +1,138 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// +/// Finds a registered whose affinity for a type and property is higher than +/// the affinity of the mechanism the generator selected, so generated code can defer to it at runtime. +/// +/// +/// Registrations are read from the service locator on first use, and their best score for each type, property and +/// notification timing is cached until . The generated mechanism wins ties. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class ObservationAffinityChecker +{ + /// The registrations and scores belonging to the current refresh generation. + private static SelectionCache _cache = new(); + + /// Discards the cached registrations and scores so the next lookup reads the service locator again. + /// A lookup running concurrently with the refresh may finish using the registrations it already captured. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void Refresh() => Interlocked.Exchange(ref _cache, new()); + + /// Returns if a registered outranks . + /// The type being observed. + /// The property being observed on that type; a plugin scores a type together with a property. + /// The affinity of the source generator's selected plugin. + /// Whether before-change (PropertyChanging) observation is requested. + /// if a user plugin should override the generated observation. + /// or is null. + public static bool HasHigherAffinityPlugin(Type type, string propertyName, int generatedAffinity, bool beforeChanged) => + FindHigherAffinityPlugin(type, propertyName, generatedAffinity, beforeChanged) is not null; + + /// Finds the registered that outranks . + /// The type being observed. + /// The property being observed on that type. + /// The affinity of the source generator's selected plugin. + /// Whether before-change (PropertyChanging) observation is requested. + /// The highest-scoring registration whose score exceeds , or when none does. + /// or is null. + public static ICreatesObservableForProperty? FindHigherAffinityPlugin( + Type type, + string propertyName, + int generatedAffinity, + bool beforeChanged) + { + ArgumentExceptionHelper.ThrowIfNull(type); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + + var selection = Volatile.Read(ref _cache).Find(type, propertyName, beforeChanged); + return selection.Affinity > generatedAffinity ? selection.Plugin : null; + } + + /// Identifies the inputs to a custom provider's affinity vote. + /// The type being observed. + /// The property being observed. + /// Whether notification occurs before the change. + [DebuggerDisplay("ObservationKey: {Type.Name,nq}.{PropertyName,nq}, BeforeChanged = {BeforeChanged}")] + private readonly record struct ObservationKey(Type Type, string PropertyName, bool BeforeChanged); + + /// Keeps the strongest custom vote independently of any generated mechanism's affinity. + /// The winning registration, or null when no registration wins. + /// The registration's property-specific score. + [DebuggerDisplay("PluginSelection: Affinity = {Affinity}")] + private readonly record struct PluginSelection(ICreatesObservableForProperty? Plugin, int Affinity); + + /// Owns registrations and scored votes so refresh cannot receive a stale publication. + private sealed class SelectionCache + { + /// The strongest vote for each observed property and notification timing. + private readonly ConcurrentDictionary _selections = new(); + + /// The cache factory, retained to avoid creating a delegate on cache hits. + private readonly Func _select; + + /// The resolved registrations, or null before resolution. + private ICreatesObservableForProperty[]? _plugins; + + /// Initializes a new instance of the class. + public SelectionCache() => _select = Select; + + /// Returns the strongest cached vote without allocating property entries for an empty registry. + /// The type being observed. + /// The property being observed. + /// Whether notification occurs before the change. + /// The strongest custom vote, or an empty selection when no registrations exist. + public PluginSelection Find(Type type, string propertyName, bool beforeChanged) => + Resolve().Length == 0 ? default : _selections.GetOrAdd(new(type, propertyName, beforeChanged), _select); + + /// Scores registrations for one observation, preserving registration order on ties. + /// The inputs to each registration's affinity vote. + /// The highest scoring registration and its score. + private PluginSelection Select(ObservationKey key) + { + var plugins = Resolve(); + var bestScore = int.MinValue; + ICreatesObservableForProperty? best = null; + + for (var i = 0; i < plugins.Length; i++) + { + var score = plugins[i].GetAffinityForObject(key.Type, key.PropertyName, key.BeforeChanged); + if (score <= bestScore) + { + continue; + } + + bestScore = score; + best = plugins[i]; + } + + return new(best, bestScore); + } + + /// Publishes registrations only into the cache generation that requested them. + /// The resolved registrations. + private ICreatesObservableForProperty[] Resolve() + { + var resolved = Volatile.Read(ref _plugins); + if (resolved is not null) + { + return resolved; + } + + ICreatesObservableForProperty[] built = [.. AppLocator.Current.GetServices()]; + return Interlocked.CompareExchange(ref _plugins, built, null) ?? built; + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingConverter.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingConverter.cs new file mode 100644 index 00000000..cf548391 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingConverter.cs @@ -0,0 +1,98 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// +/// Runtime conversion entry point used by generated BindTo bindings to coerce a source value +/// to the target property type when the two differ, or when an explicit converter or conversion hint +/// is supplied. +/// +/// +/// An explicit converter override wins; otherwise resolves the best +/// converter for the declared source and target types. With no converter registered for the pair, a value that is +/// already an instance of the target type passes through unchanged. When no converter can produce a value, the +/// conversion fails and the generated binding skips the assignment for that emission. +/// +public static class RuntimeBindingConverter +{ + /// Attempts to convert from to for a generated BindTo assignment. + /// The declared source value type. + /// The target property type. + /// The value produced by the source observable. + /// An optional conversion hint forwarded to the converter. + /// An optional explicit converter that takes precedence over the registry. + /// The converted value when conversion succeeds. + /// if conversion succeeded; otherwise . + /// The converter is resolved from and , not from the runtime type of . + public static bool TryConvert( + TFrom value, + object? conversionHint, + IBindingTypeConverter? converterOverride, + out TTo result) + { + var toType = typeof(TTo); + var fromType = typeof(TFrom); + var resolved = converterOverride ?? BindingConverters.Current.ResolveConverter(fromType, toType); + if (resolved is IBindingTypeConverter typedConverter) + { + return typedConverter.TryConvert(value, conversionHint, out result!); + } + + object? boxed = value; + object? converted; + + if (converterOverride is not null) + { + if (BindingTypeConverterDispatch.TryConvert(converterOverride, boxed, toType, conversionHint, out converted) + && converted is TTo typedOverride) + { + result = typedOverride; + return true; + } + + result = default!; + return false; + } + + if (resolved is null && TryPassThrough(boxed, out result)) + { + return true; + } + + if (BindingTypeConverterDispatch.TryConvertAny(resolved, fromType, boxed, toType, conversionHint, out converted) + && converted is TTo typed) + { + result = typed; + return true; + } + + result = default!; + return false; + } + + /// Passes a value through unconverted when nothing is registered for the pair. + /// The target property type. + /// The boxed source value. + /// The value as the target type when it passes through. + /// + /// when the value already is the target type at runtime (an object-typed + /// SelectedItem holding a string, or an int bound to an int), or is a null the target can hold. + /// + private static bool TryPassThrough(object? value, out TTo result) + { + if (value is TTo same) + { + result = same; + return true; + } + + result = default!; + return value is null && default(TTo) is null; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.TriggerUpdate.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.TriggerUpdate.cs new file mode 100644 index 00000000..1adb5e87 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.TriggerUpdate.cs @@ -0,0 +1,154 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Runtime bindings driven by direction signals and current property values. +public static partial class RuntimeBindingFallback +{ + /// Binds properties using converter registration and direction signals. + /// The view model type. + /// The view type. + /// The view model property type. + /// The view property type. + /// The ignored signal payload. + /// The view to bind. + /// The view model to bind. + /// The view model property path. + /// The view property path. + /// The update stream, or null to observe both properties. + /// The direction driven by the stream. + /// The connected two-way binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IReactiveBinding Bind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IObservable? signalViewUpdate, + TriggerUpdate triggerUpdate) + where TViewModel : class + where TView : class, IViewFor => + CreateTriggeredBinding(view, viewModel, viewModelProperty, viewProperty, null, signalViewUpdate, triggerUpdate); + + /// Binds properties using explicit conversions and direction signals. + /// The view model type. + /// The view type. + /// The view model property type. + /// The view property type. + /// The ignored signal payload. + /// The view to bind. + /// The view model to bind. + /// The view model property path. + /// The view property path. + /// The conversions applied before comparison and writing. + /// The update stream, or null to observe both properties. + /// The direction driven by the stream. + /// The connected two-way binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding Bind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + TwoWayConverterPair conversions, + IObservable? signalViewUpdate, + TriggerUpdate triggerUpdate) + where TViewModel : class + where TView : class, IViewFor + { + ArgumentExceptionHelper.ThrowIfNull(conversions); + ArgumentExceptionHelper.ThrowIfNull(conversions.Forward); + ArgumentExceptionHelper.ThrowIfNull(conversions.Reverse); + return CreateTriggeredBinding(view, viewModel, viewModelProperty, viewProperty, conversions, signalViewUpdate, triggerUpdate); + } + + /// Connects one direction stream to the read, compare and write pipeline. + /// The view model type. + /// The view type. + /// The view model property type. + /// The view property type. + /// The ignored signal payload. + /// The view root. + /// The view model root. + /// The view model property path. + /// The view property path. + /// Explicit conversions, or null for converter registration. + /// The optional update stream. + /// The direction driven by the stream. + /// The connected binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static ReactiveBinding CreateTriggeredBinding( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + TwoWayConverterPair? conversions, + IObservable? signalViewUpdate, + TriggerUpdate triggerUpdate) + where TViewModel : class + where TView : class, IViewFor + { + ArgumentExceptionHelper.ThrowIfNull(view); + ArgumentExceptionHelper.ThrowIfNull(viewModelProperty); + ArgumentExceptionHelper.ThrowIfNull(viewProperty); + + var modelSignals = new MapSignal(ObserveViewModel(view, viewModel, viewModelProperty), static _ => true); + var viewSignals = new MapSignal(RuntimeObservationFallback.WhenChanged(view, viewProperty), static _ => false); + var source = CreateTriggerSource(modelSignals, viewSignals, signalViewUpdate, triggerUpdate); + + // The model side is read and written through the view's own view model when the view holds one of this + // type, the same root the observation above follows. + var (modelRoot, modelPath) = view is IViewFor + ? ((object)view, RootAtViewModel(viewModelProperty).Body) + : ((object)viewModel!, viewModelProperty.Body); + var plan = new TriggeredBindingPlan( + modelRoot, + view, + new List(Reflection.Rewrite(modelPath).GetExpressionChain()), + new List(Reflection.Rewrite(viewProperty.Body).GetExpressionChain()), + conversions); + var values = BindingSchedulers.ObserveOnViewThread(new InitialBindingSignal(source), view).Choose(plan.Project); + var changes = new Signal(); + var subscription = BindingErrors.Subscribe( + values, + change => + { + plan.Write(change); + changes.OnNext(change); + }, + Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body))); + return new(view, changes, BindingDirection.TwoWay, new MultipleDisposable(subscription, new ActionDisposable(changes.OnCompleted))); + } + + /// Selects the notifications belonging to each direction. + /// The ignored update payload. + /// View model notifications, including the initial snapshot. + /// View notifications, including the initial snapshot. + /// The optional update stream. + /// The direction driven by the update stream. + /// The combined direction signals. + private static MergeSignal CreateTriggerSource( + IObservable modelSignals, + IObservable viewSignals, + IObservable? updates, + TriggerUpdate direction) + { + if (updates is null) + { + return new(modelSignals, viewSignals); + } + + return direction == TriggerUpdate.ViewToViewModel + ? new MergeSignal(modelSignals, new MapSignal(updates, static _ => false)) + : new MergeSignal( + new MergeSignal(modelSignals.Take(1), new MapSignal(updates, static _ => true)), + viewSignals); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.cs new file mode 100644 index 00000000..12a2cc21 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeBindingFallback.cs @@ -0,0 +1,606 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Drives a binding through the runtime observation engine instead of the generated one. +/// +/// Unsafe entry points resolve property paths through the runtime observation engine and cached expression +/// chains. Their trimming annotations make member discovery explicit at the call site. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static partial class RuntimeBindingFallback +{ + /// Binds a source property one way onto a target property of the same type. + /// The type declaring the observed property. + /// The type declaring the written property. + /// The type of the value carried across the binding. + /// The object to observe. + /// The object to write to. + /// The property to observe. + /// The property to write. + /// The sequencer the write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// A disposable that disconnects the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindOneWay( + TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler, + string bindingExpression) + where TSource : class => + Write( + Schedule(RuntimeObservationFallback.WhenChanged(source, sourceProperty), scheduler, target), + target, + targetProperty, + bindingExpression); + + /// Binds a source property one way onto a target property of another type, applying a conversion. + /// The type declaring the observed property. + /// The type declaring the written property. + /// The type of the observed property. + /// The type of the written property. + /// The object to observe. + /// The object to write to. + /// The property to observe. + /// The property to write. + /// Converts the observed value to the written one. + /// The sequencer the write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// A disposable that disconnects the binding. + /// is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindOneWay( + TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func conversion, + ISequencer? scheduler, + string bindingExpression) + where TSource : class + { + ArgumentExceptionHelper.ThrowIfNull(conversion); + + return Write( + Schedule( + new MapSignal( + RuntimeObservationFallback.WhenChanged(source, sourceProperty), + conversion), + scheduler, + target), + target, + targetProperty, + bindingExpression); + } + + /// Binds a source and a target property of the same type to each other. + /// The type declaring the source property. + /// The type declaring the target property. + /// The type of the value carried across the binding. + /// The first object of the binding. + /// The second object of the binding. + /// The property on . + /// The property on . + /// The sequencer the target write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// A disposable that disconnects both directions. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindTwoWay( + TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler, + string bindingExpression) + where TSource : class + where TTarget : class => + JoinBothDirections( + ScheduleLatest(RuntimeObservationFallback.WhenChanged(source, sourceProperty), scheduler, target), + RuntimeObservationFallback.WhenChanged(target, targetProperty), + source, + target, + sourceProperty, + targetProperty, + bindingExpression); + + /// Binds a source and a target property of differing types to each other, converting in both directions. + /// The type declaring the source property. + /// The type declaring the target property. + /// The type of the source property. + /// The type of the target property. + /// The first object of the binding. + /// The second object of the binding. + /// The property on . + /// The property on . + /// Converts source to target, and target back to source. + /// The sequencer the target write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// A disposable that disconnects both directions. + /// is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindTwoWay( + TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + TwoWayConverterPair converters, + ISequencer? scheduler, + string bindingExpression) + where TSource : class + where TTarget : class + { + ArgumentExceptionHelper.ThrowIfNull(converters); + + return JoinBothDirections( + ScheduleLatest( + new MapSignal( + RuntimeObservationFallback.WhenChanged(source, sourceProperty), + converters.Forward), + scheduler, + target), + new MapSignal( + RuntimeObservationFallback.WhenChanged(target, targetProperty), + converters.Reverse), + source, + target, + sourceProperty, + targetProperty, + bindingExpression); + } + + /// Binds a view-model property one way onto a view property of the same type. + /// The type declaring the view-model property. + /// The type declaring the view property. + /// The type of the value carried across the binding. + /// The view being written to. + /// The view model being observed. + /// The property to observe. + /// The property to write. + /// The sequencer the write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// The binding, which disconnects when disposed. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IReactiveBinding OneWayBind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + ISequencer? scheduler, + string bindingExpression) + where TViewModel : class + where TView : IViewFor => + OneWayBinding( + view, + viewProperty, + Schedule(ObserveViewModel(view, viewModel, viewModelProperty), scheduler, view), + bindingExpression); + + /// Binds a view-model property one way onto a view property of another type, applying a conversion. + /// The type declaring the view-model property. + /// The type declaring the view property. + /// The type of the view-model property. + /// The type of the view property. + /// The view being written to. + /// The view model being observed. + /// The property to observe. + /// The property to write. + /// Converts the observed value to the view's type. + /// The sequencer the write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// The binding, which disconnects when disposed. + /// is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding OneWayBind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func conversion, + ISequencer? scheduler, + string bindingExpression) + where TViewModel : class + where TView : IViewFor + { + ArgumentExceptionHelper.ThrowIfNull(conversion); + + return OneWayBinding( + view, + viewProperty, + Schedule( + new MapSignal( + ObserveViewModel(view, viewModel, viewModelProperty), + conversion), + scheduler, + view), + bindingExpression); + } + + /// Binds a view-model property and a view property of the same type to each other. + /// The type declaring the view-model property. + /// The type declaring the view property. + /// The type of the value carried across the binding. + /// The view side of the binding. + /// The view-model side of the binding. + /// The property on . + /// The property on . + /// The sequencer the view write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// The binding, which disconnects both directions when disposed. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IReactiveBinding Bind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + ISequencer? scheduler, + string bindingExpression) + where TViewModel : class + where TView : class, IViewFor => + TwoWayBinding( + view, + viewModel, + viewModelProperty, + viewProperty, + ScheduleLatest(ObserveViewModel(view, viewModel, viewModelProperty), scheduler, view), + RuntimeObservationFallback.WhenChanged(view, viewProperty).Skip(1), + bindingExpression); + + /// Binds a view-model property and a view property of differing types, converting in both directions. + /// The type declaring the view-model property. + /// The type declaring the view property. + /// The type of the view-model property. + /// The type of the view property. + /// The view side of the binding. + /// The view-model side of the binding. + /// The property on . + /// The property on . + /// Converts view model to view, and view back to view model. + /// The sequencer the view write is delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// The binding, which disconnects both directions when disposed. + /// is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding Bind( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + TwoWayConverterPair converters, + ISequencer? scheduler, + string bindingExpression) + where TViewModel : class + where TView : class, IViewFor + { + ArgumentExceptionHelper.ThrowIfNull(converters); + + return TwoWayBinding( + view, + viewModel, + viewModelProperty, + viewProperty, + ScheduleLatest( + new MapSignal( + ObserveViewModel(view, viewModel, viewModelProperty), + converters.Forward), + scheduler, + view), + new MapSignal( + RuntimeObservationFallback.WhenChanged(view, viewProperty).Skip(1), + converters.Reverse), + bindingExpression); + } + + /// Writes every value a sequence produces into a property, converting it on the way. + /// The type the sequence produces. + /// The type declaring the written property. + /// The type of the written property. + /// The sequence driving the writes. + /// The object declaring the written property. + /// The property to write. + /// An optional hint handed to the converter. + /// A converter that takes precedence over the registered ones. + /// The scheduler the writes are delivered on, or null to write on the thread that owns it. + /// The bound expression, named when a write faults. + /// A disposable that, when disposed, stops writing. + /// or is null. + /// + /// A value the converter refuses is written as the target type's default, which is what the generated path + /// does with the same converter, so a call site behaves the same whether or not it was claimed. + /// A null target holds no property to write, so the values are dropped rather than faulting the sequence. + /// + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindTo( + IObservable source, + TTarget? target, + Expression> targetProperty, + object? conversionHint, + IBindingTypeConverter? converterOverride, + ISequencer? scheduler, + string bindingExpression) + where TTarget : class + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(targetProperty); + + if (target is null) + { + return EmptyDisposable.Instance; + } + + var converted = new MapSignal( + source, + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + converterOverride, + out var result); + return result; + }); + + return Write(Schedule(converted, scheduler, target), target, targetProperty, bindingExpression); + } + + /// Roots a view-model property path at the view model the view currently holds. + /// The type declaring the view-model property. + /// The type of the view-model property. + /// The path from the view model. + /// The same path, read from the view through . + /// + /// A view-first binding follows the view's view model rather than the instance handed to it, the way the + /// generated path does: replacing the view model rebinds, and a view without one yet waits for it. Rooting the + /// path at the view lets the runtime chain do that, for observation and for the write back alike. The typed + /// property is used so the chain carries the view model's type without a cast the chain would strip. + /// + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + internal static Expression, TProp>> RootAtViewModel(Expression> viewModelProperty) + where TViewModel : class + { + ArgumentExceptionHelper.ThrowIfNull(viewModelProperty); + + var view = Expression.Parameter(typeof(IViewFor), "view"); + var viewModel = Expression.Property(view, typeof(IViewFor).GetProperty(nameof(IViewFor<>.ViewModel))!); + var body = new ParameterReplacer(viewModelProperty.Parameters[0], viewModel).Visit(viewModelProperty.Body); + return Expression.Lambda, TProp>>(body, view); + } + + /// Observes a view-model property through the view model the view holds, or the one handed in. + /// The type of the view. + /// The type declaring the view-model property. + /// The type of the view-model property. + /// The view holding the view model. + /// The view model handed to the binding, used when the view does not hold one of this type. + /// The path from the view model. + /// The property's values, following the view's view model as it is replaced. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static IObservable ObserveViewModel(TView view, TViewModel? viewModel, Expression> viewModelProperty) + where TView : IViewFor + where TViewModel : class => + view is IViewFor typedView + ? RuntimeObservationFallback.WhenChanged(typedView, RootAtViewModel(viewModelProperty)) + : RuntimeObservationFallback.WhenChanged(viewModel!, viewModelProperty); + + /// Writes values back to the view model the view holds, or the one handed in. + /// The type of the view. + /// The type declaring the view-model property. + /// The type of the view-model property. + /// The values to write. + /// The view holding the view model. + /// The view model handed to the binding, used when the view does not hold one of this type. + /// The path from the view model. + /// The bound expression, named when a write faults. + /// A disposable that stops writing. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static IDisposable WriteViewModel( + IObservable values, + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + string bindingExpression) + where TView : IViewFor + where TViewModel : class => + view is IViewFor typedView + ? Write(values, typedView, RootAtViewModel(viewModelProperty), bindingExpression) + : Write(values, viewModel!, viewModelProperty, bindingExpression); + + /// Wraps a two-way pair of writes as the binding value the view-first APIs hand back. + /// The type declaring the view-model property. + /// The type declaring the view property. + /// The type of the view-model property. + /// The type of the view property. + /// The view side of the binding. + /// The view-model side of the binding. + /// The property on . + /// The property on . + /// The values written to the view, already converted and scheduled. + /// The values written back to the view model, already converted and skipped. + /// The bound expression, named when a write faults. + /// The binding, whose change stream tags which side each value came from. + /// + /// The change stream a two-way binding exposes is not either property's values but a merge of both, + /// tagged with which side moved, so a consumer can tell an echo from an edit. + /// + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static ReactiveBinding TwoWayBinding( + TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IObservable toView, + IObservable fromView, + string bindingExpression) + where TViewModel : class + where TView : IViewFor + { + var toViewWrite = Write(toView, view, viewProperty, bindingExpression); + var toViewModelWrite = WriteViewModel(fromView, view, viewModel, viewModelProperty, bindingExpression); + + var changed = new MergeSignal( + new MapSignal(toView, static v => new BindingChange(v, true)), + new MapSignal(fromView, static v => new BindingChange(v, false))); + + return new( + view, + changed, + BindingDirection.TwoWay, + new MultipleDisposable(toViewWrite, toViewModelWrite)); + } + + /// Wraps a one-way write as the binding value the view-first APIs hand back. + /// The type declaring the written property. + /// The type of the value written. + /// The view being written to. + /// The property to write. + /// The values to write, already scheduled. + /// The bound expression, named when a write faults. + /// The binding, which disconnects when disposed. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static ReactiveBinding OneWayBinding( + TView view, + Expression> viewProperty, + IObservable values, + string bindingExpression) + where TView : IViewFor => + new( + view, + values, + BindingDirection.OneWay, + Write(values, view, viewProperty, bindingExpression)); + + /// Routes a sequence onto the sequencer a binding writes on. + /// The type of the observed values. + /// The values feeding a write. + /// The sequencer to use, or null to ask which thread owns the written object. + /// The object the write lands on, which is what owns the thread it lands from. + /// The sequence, observed on the chosen sequencer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IObservable Schedule(IObservable values, ISequencer? scheduler, object? target) + { + if (scheduler is null) + { + return BindingSchedulers.ObserveOnViewThread(values, target); + } + + return IsImmediate(scheduler) ? values : new WitnessOnSignal(values, scheduler); + } + + /// Routes the values a two-way binding writes onto a sequencer, delivering only the latest one that waits. + /// The type of the observed values. + /// The values feeding a write. + /// The sequencer to use, or null to ask which thread owns the written object. + /// The object the write lands on, which is what owns the thread it lands from. + /// The sequence, observed on the chosen sequencer. + /// + /// Each write raises the other side's change. A queue that replays every value writes an older value back + /// over a newer one, and the two sides then hand each other stale values without end. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IObservable ScheduleLatest(IObservable values, ISequencer? scheduler, object? target) + { + if (scheduler is null) + { + return BindingSchedulers.ObserveOnViewThread(values, target); + } + + return IsImmediate(scheduler) ? values : new ViewThreadObservable(values, scheduler); + } + + /// Determines whether a sequencer runs work on the calling thread at once. + /// The sequencer to test. + /// for the immediate sequencer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool IsImmediate(ISequencer scheduler) => +#if REACTIVE_SHIM + scheduler == Scheduler.Immediate; +#else + scheduler == Sequencer.Immediate; +#endif + + /// Wires a forward and a reverse write, dropping the target's initial value so it does not echo back. + /// The type declaring the source property. + /// The type declaring the target property. + /// The type of the source property. + /// The type of the target property. + /// The values to write onto the target, already scheduled. + /// The values to write back onto the source. + /// The first object of the binding. + /// The second object of the binding. + /// The property on . + /// The property on . + /// The bound expression, named when a write faults. + /// A disposable that disconnects both directions. + /// or is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static MultipleDisposable JoinBothDirections( + IObservable forward, + IObservable reverse, + TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + string bindingExpression) + { + var toTarget = Write(forward, target, targetProperty, bindingExpression); + + // The target's own current value is not a change the source asked for, so it is dropped rather + // than written straight back over the value that just seeded it. + var toSource = Write(reverse.Skip(1), source, sourceProperty, bindingExpression); + + return new(toTarget, toSource); + } + + /// Delivers a sequence of values onto a property of the written object. + /// The type declaring the written property. + /// The type of the value written. + /// The values to write, already scheduled. + /// The object to write to. + /// The property to write. + /// The bound expression, named when a write faults. + /// A disposable that disconnects the write. + /// or is null. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + private static IDisposable Write( + IObservable values, + TWritten written, + Expression> property, + string bindingExpression) + { + ArgumentExceptionHelper.ThrowIfNull(written); + ArgumentExceptionHelper.ThrowIfNull(property); + + // The chain is a property of the expression, not of any one value, so it is resolved once here + // rather than on every write. + var chain = new List(Reflection.Rewrite(property.Body).GetExpressionChain()); + + return BindingErrors.Subscribe( + values, + value => _ = Reflection.TrySetValueToPropertyChain(written, chain, value), + bindingExpression); + } + + /// Replaces one parameter of an expression with another expression. + /// The parameter to replace. + /// The expression that stands in for it. + private sealed class ParameterReplacer(ParameterExpression parameter, Expression replacement) : ExpressionVisitor + { + /// + protected override Expression VisitParameter(ParameterExpression node) => + node == parameter ? replacement : base.VisitParameter(node); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandBindingFallback.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandBindingFallback.cs new file mode 100644 index 00000000..ac951f90 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandBindingFallback.cs @@ -0,0 +1,108 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Binds a command to a control, resolving the command and control properties at runtime. +[EditorBrowsable(EditorBrowsableState.Never)] +public static class RuntimeCommandBindingFallback +{ + /// Keeps the command an observed property holds bound to the control another one holds. + /// The type declaring the control property. + /// The type declaring the command property. + /// The type of the command property. + /// The type of the control the command is bound to. + /// The object declaring the control property. + /// The object declaring the command property. + /// The property holding the command to bind. + /// The property holding the control to bind it to. + /// The values offered as the command parameter. + /// The control event that executes the command, or null for the control's default. + /// The bound expression, named when the observation faults. + /// A disposable that, when disposed, unbinds the command and stops observing. + /// or is null. + /// + /// The command is rebound whenever either property changes, on the view's owning thread. Nothing is bound while + /// the view model, the command or the control is null, or when no registered binder supports the control. + /// + [RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static IDisposable BindCommand< + TView, + TViewModel, + TProp, + TControl>( + TView view, + TViewModel? viewModel, + Expression> commandProperty, + Expression> controlProperty, + IObservable commandParameter, + string? toEvent, + string bindingExpression) + where TView : class + where TViewModel : class + where TProp : ICommand + where TControl : class + { + ArgumentExceptionHelper.ThrowIfNull(commandProperty); + ArgumentExceptionHelper.ThrowIfNull(controlProperty); + + // No view model is the ordinary state before one is assigned, so nothing is bound. + if (viewModel is null) + { + return EmptyDisposable.Instance; + } + + var binding = new SwapDisposable(); + var commands = RuntimeObservationFallback.WhenAnyValue(viewModel, commandProperty); + var controls = RuntimeObservationFallback.WhenAnyValue(view, controlProperty); + + // Each rebind touches the control, so it is delivered on the view's thread. + var observation = BindingErrors.Subscribe( + BindingSchedulers.ObserveOnViewThread( + new CombineLatestSignal(commands, controls, static (command, control) => (command, control)), + view), + pair => binding.Disposable = Bind(pair.Command, pair.Control, commandParameter, toEvent), + bindingExpression); + + return new MultipleDisposable(observation, binding); + } + + /// Hands one command and one control to the binder with the highest affinity for that control. + /// The type of the command. + /// The type of the control. + /// The command to execute, or null while the property holds none. + /// The control that executes it, or null while the property holds none. + /// The values offered as the command parameter. + /// The control event that executes the command, or null for the control's default. + /// The binding, or an empty disposable when there is nothing to bind. + private static IDisposable Bind( + TProp? command, + TControl? control, + IObservable commandParameter, + string? toEvent) + where TProp : ICommand + where TControl : class + { + if (command is null || control is null) + { + return EmptyDisposable.Instance; + } + + var binder = CommandBinding.CommandBinderService.GetBinder(toEvent is not null); + + var bound = toEvent is null + ? binder?.BindCommandToObject(command, control, commandParameter) + : binder?.BindCommandToObject(command, control, commandParameter, toEvent); + + return bound ?? EmptyDisposable.Instance; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandFallback.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandFallback.cs new file mode 100644 index 00000000..aa12e9e4 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeCommandFallback.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Resolves the command an InvokeCommand executes through the runtime expression engine. +/// +/// Reached only where the generator could not serve the call site - a receiver it cannot name, a selector that is +/// not an inline lambda, or a build whose compiler predates the dispatch this package emits. The executions +/// themselves are the generated path's, because both hand the resolved command to +/// ; only how the command is found differs. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class RuntimeCommandFallback +{ + /// Executes the command an observed property holds with each value the sequence produces. + /// The type of the value offered as the command parameter. + /// The type declaring the observed command property. + /// The sequence driving the executions. + /// The object declaring the command property. + /// The property holding the command to execute. + /// A disposable that, when disposed, stops executing the command. + /// or is null. + /// + /// A null target holds no property to observe, so the values are dropped rather than faulting the sequence - + /// the same outcome as a target whose command property is null, which is the ordinary case before a view + /// model is assigned. + /// + [RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static IDisposable InvokeCommand( + IObservable source, + TTarget? target, + Expression> commandProperty) + where TTarget : class + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(commandProperty); + + return target is null + ? EmptyDisposable.Instance + : CommandBinding.CommandInvoker.Invoke( + source, + RuntimeObservationFallback.WhenAnyValue(target, commandProperty)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeInteractionFallback.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeInteractionFallback.cs new file mode 100644 index 00000000..87307314 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeInteractionFallback.cs @@ -0,0 +1,63 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Registers an interaction handler against a property the runtime expression engine resolves. +/// +/// Reached where the generator could not serve the call site - a view model it cannot name, or a selector that is +/// not an inline lambda. How the handler runs is the generated path's: both hand it to the interaction itself, +/// and only how the interaction is found differs. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class RuntimeInteractionFallback +{ + /// Keeps a handler registered against whichever interaction the observed property holds. + /// The type declaring the interaction property. + /// The type the interaction takes. + /// The type the interaction produces. + /// The object declaring the interaction property. + /// The property holding the interaction to handle. + /// Registers the caller's handler against one interaction. + /// The bound expression, named when the observation faults. + /// A disposable that, when disposed, unregisters the handler and stops observing. + /// or is null. + /// + /// The registration follows the property: when the property holds a different interaction, the handler is + /// unregistered from the interaction it replaced and registered on the new one, and a null interaction leaves + /// nothing registered. A null view model registers nothing rather than faulting the call. + /// + [RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static IDisposable BindInteraction( + TViewModel? viewModel, + Expression>> interactionProperty, + Func, IDisposable> register, + string bindingExpression) + where TViewModel : class + { + ArgumentExceptionHelper.ThrowIfNull(interactionProperty); + ArgumentExceptionHelper.ThrowIfNull(register); + + if (viewModel is null) + { + return EmptyDisposable.Instance; + } + + var registration = new SwapDisposable(); + var observation = BindingErrors.Subscribe( + RuntimeObservationFallback.WhenAnyValue(viewModel, interactionProperty), + interaction => registration.Disposable = interaction is null + ? EmptyDisposable.Instance + : register(interaction), + bindingExpression); + + return new MultipleDisposable(observation, registration); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimeObservationFallback.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeObservationFallback.cs new file mode 100644 index 00000000..86706e0f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimeObservationFallback.cs @@ -0,0 +1,209 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// +/// Observes properties of WhenChanged, WhenChanging and WhenAnyValue calls the source generator did not handle, +/// by walking the property expression at runtime and resolving each link through the registered +/// implementations. +/// +/// +/// Every observable emits the current value on subscribe and then again after each change, skipping a value equal to +/// the one before it. When the observed object is null, or a property partway along a path is null, nothing is +/// emitted until the path resolves. The multi-property overloads emit once every property has a value. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +[RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] +public static class RuntimeObservationFallback +{ + /// Observes a property, emitting its value after each change. + /// The type of object being observed. + /// The type of the property value. + /// The object to observe. + /// The property expression. + /// An observable that emits property values after they change. + /// is . + public static IObservable WhenChanged( + TObj obj, + Expression> property) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(property); + + return new MapSignal, TValue>( + obj.SubscribeToExpressionChain(property.Body, skipInitial: false), + static x => x.Value); + } + + /// Observes two properties, emitting both values whenever either changes. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// An observable that emits a tuple of property values when any changes. + public static IObservable> WhenChanged( + TObj obj, + Expression> property1, + Expression> property2) + where TObj : class + { + var o1 = WhenChanged(obj, property1); + var o2 = WhenChanged(obj, property2); + return CombineLatestObservable.Create(o1, o2, static (v1, v2) => new PropertyValues(v1, v2)); + } + + /// Observes three properties, emitting all their values whenever any changes. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The type of the third property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// The third property expression. + /// An observable that emits a tuple of property values when any changes. + public static IObservable> WhenChanged( + TObj obj, + Expression> property1, + Expression> property2, + Expression> property3) + where TObj : class + { + var o1 = WhenChanged(obj, property1); + var o2 = WhenChanged(obj, property2); + var o3 = WhenChanged(obj, property3); + return CombineLatestObservable.Create(o1, o2, o3, static (v1, v2, v3) => new PropertyValues(v1, v2, v3)); + } + + /// Observes a property, emitting its value just before each change. + /// The type of object being observed. + /// The type of the property value. + /// The object to observe. + /// The property expression. + /// An observable that emits property values before they change. + /// is . + public static IObservable WhenChanging( + TObj obj, + Expression> property) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(property); + + return new MapSignal, TValue>( + obj.SubscribeToExpressionChain(property.Body, true, false, true), + static x => x.Value); + } + + /// Observes two properties, emitting both values whenever either is about to change. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// An observable that emits a tuple of property values before any changes. + public static IObservable> WhenChanging( + TObj obj, + Expression> property1, + Expression> property2) + where TObj : class + { + var o1 = WhenChanging(obj, property1); + var o2 = WhenChanging(obj, property2); + return CombineLatestObservable.Create(o1, o2, static (v1, v2) => new PropertyValues(v1, v2)); + } + + /// Observes three properties, emitting all their values whenever any is about to change. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The type of the third property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// The third property expression. + /// An observable that emits a tuple of property values before any changes. + public static IObservable> WhenChanging( + TObj obj, + Expression> property1, + Expression> property2, + Expression> property3) + where TObj : class + { + var o1 = WhenChanging(obj, property1); + var o2 = WhenChanging(obj, property2); + var o3 = WhenChanging(obj, property3); + return CombineLatestObservable.Create(o1, o2, o3, static (v1, v2, v3) => new PropertyValues(v1, v2, v3)); + } + + /// Observes a property, emitting its value after each change. + /// The type of object being observed. + /// The type of the property value. + /// The object to observe. + /// The property expression. + /// An observable that emits property values after they change. + /// is . + public static IObservable WhenAnyValue( + TSender sender, + Expression> property) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(property); + + return new MapSignal, TValue>( + sender.SubscribeToExpressionChain(property.Body, skipInitial: false), + static x => x.Value); + } + + /// Observes two properties, emitting both values whenever either changes. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// An observable that emits a tuple of property values when any changes. + public static IObservable> WhenAnyValue( + TSender sender, + Expression> property1, + Expression> property2) + where TSender : class + { + var o1 = WhenAnyValue(sender, property1); + var o2 = WhenAnyValue(sender, property2); + return CombineLatestObservable.Create(o1, o2, static (v1, v2) => new PropertyValues(v1, v2)); + } + + /// Observes three properties, emitting all their values whenever any changes. + /// The type of object being observed. + /// The type of the first property value. + /// The type of the second property value. + /// The type of the third property value. + /// The object to observe. + /// The first property expression. + /// The second property expression. + /// The third property expression. + /// An observable that emits a tuple of property values when any changes. + public static IObservable> WhenAnyValue( + TSender sender, + Expression> property1, + Expression> property2, + Expression> property3) + where TSender : class + { + var o1 = WhenAnyValue(sender, property1); + var o2 = WhenAnyValue(sender, property2); + var o3 = WhenAnyValue(sender, property3); + return CombineLatestObservable.Create(o1, o2, o3, static (v1, v2, v3) => new PropertyValues(v1, v2, v3)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs b/src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs new file mode 100644 index 00000000..d52fcdb7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs @@ -0,0 +1,343 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Reflection; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Raises one property's change notifications on one object, found by reflection. +/// +/// The runtime twin of the generator's raise plugins, for ToPropertyUnsafe. It looks for members in the order +/// the generator does: ReactiveUI's raise extensions for an IReactiveObject, then a raise method, preferring one +/// that takes event args, then the field behind a field-like event. A type can only raise its own events, so the raise +/// method may be protected or private and the event field is always private; reflection reaches them where generated +/// code would add an accessor to a partial type. +/// +/// The members found for a type are cached. A raise method is bound to its owner as a delegate once, when the raiser is +/// created, and each raiser caches its event args, so raising a value neither looks anything up nor allocates. +/// +/// +internal sealed class RuntimePropertyRaiser +{ + /// Why the raiser needs its members preserved. + internal const string RequiresUnreferencedCodeMessage = + "Finds the members that raise a property's change notifications by reflection; they may be trimmed."; + + /// Why the raiser needs dynamic code. + internal const string RequiresDynamicCodeMessage = + "Closes ReactiveUI's generic raise extension over IReactiveObject at run time."; + + /// The parameter count of ReactiveUI's raise extensions: the object and the property name. + private const int ExtensionParameterCount = 2; + + /// The members found for each type, resolved once. + private static readonly ConcurrentDictionary MembersByType = new(); + + /// The object whose notifications are raised. + private readonly object _owner; + + /// The property name. + private readonly string _propertyName; + + /// How the after-change notification is raised. + private readonly RaiseMember _changed; + + /// The after-change raise method bound to the owner, or null when the member needs no binding. + private readonly Delegate? _changedBound; + + /// How the before-change notification is raised, or null when the type raises none. + private readonly RaiseMember? _changing; + + /// The before-change raise method bound to the owner, or null when the member needs no binding. + private readonly Delegate? _changingBound; + + /// The after-change event args, created on the first raise. + private PropertyChangedEventArgs? _changedArgs; + + /// The before-change event args, created on the first raise. + private PropertyChangingEventArgs? _changingArgs; + + /// Initializes a new instance of the class. + /// The object whose notifications are raised. + /// The property name. + /// How the after-change notification is raised. + /// How the before-change notification is raised, or null for none. + private RuntimePropertyRaiser(object owner, string propertyName, RaiseMember changed, RaiseMember? changing) + { + _owner = owner; + _propertyName = propertyName; + _changed = changed; + _changedBound = changed.Bind(owner); + _changing = changing; + _changingBound = changing?.Bind(owner); + } + + /// Binds a raise member to one owner. + /// The object whose notification is raised. + /// The bound delegate, or null when the member needs no binding. + private delegate Delegate? RaiseBinder(object owner); + + /// Raises one notification through a raise member. + /// The delegate the binder returned for the owner. + /// The object whose notification is raised. + /// The property name. + /// The event args, which carry the property name. + private delegate void RaiseInvoker(Delegate? bound, object owner, string propertyName, EventArgs args); + + /// Gets a value indicating whether the owner's type raises a before-change notification. + internal bool RaisesChanging => _changing is not null; + + /// Creates a raiser for one property of an object. + /// The object whose notifications are raised. + /// The property name. + /// The raiser. + /// The object's type raises no after-change notification reflection can reach. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RequiresDynamicCodeMessage)] + internal static RuntimePropertyRaiser Create(object owner, string propertyName) + { + var type = owner.GetType(); + var members = MembersByType.GetOrAdd(type, FindMembers); + return members.Changed is null + ? throw new InvalidOperationException( + $"{type.FullName} raises no change notification ToPropertyUnsafe can reach. Implement ReactiveUI's IReactiveObject, " + + "declare a RaisePropertyChanged or OnPropertyChanged method, or declare a field-like PropertyChanged event.") + : new RuntimePropertyRaiser(owner, propertyName, members.Changed, members.Changing); + } + + /// Raises the after-change notification. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void RaiseChanged() => + _changed.Invoke(_changedBound, _owner, _propertyName, _changedArgs ??= new PropertyChangedEventArgs(_propertyName)); + + /// Raises the before-change notification, when the owner's type has one. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void RaiseChanging() => + _changing?.Invoke(_changingBound, _owner, _propertyName, _changingArgs ??= new PropertyChangingEventArgs(_propertyName)); + + /// Finds the members that raise both notifications on a type. + /// The type. + /// The members. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RequiresDynamicCodeMessage)] + private static Members FindMembers(Type type) => + new(FindMember(type, false), FindMember(type, true)); + + /// Finds the member that raises one notification on a type, strongest mechanism first. + /// The type. + /// Whether to find the before-change notification rather than the after-change one. + /// The member, or null when the type raises no such notification. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RequiresDynamicCodeMessage)] + private static RaiseMember? FindMember(Type type, bool changing) => + FindReactiveObjectExtension(type, changing) ?? FindRaiseMethod(type, changing) ?? FindEventField(type, changing); + + /// Finds ReactiveUI's public raise extension, which honours suppressed and delayed notifications. + /// The type. + /// Whether to find the before-change extension. + /// The extension closed over IReactiveObject, or null when the type is not an IReactiveObject. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RequiresDynamicCodeMessage)] + private static RaiseMember? FindReactiveObjectExtension(Type type, bool changing) + { + var reactiveObject = type.GetInterface("ReactiveUI.IReactiveObject"); + if (reactiveObject is null) + { + return null; + } + + var extensions = FindReactiveObjectExtensions(type, reactiveObject); + if (extensions is null) + { + return null; + } + + var name = changing ? "RaisePropertyChanging" : "RaisePropertyChanged"; + foreach (var method in extensions.GetMethods(BindingFlags.Public | BindingFlags.Static)) + { + if (method.Name != name || !method.IsGenericMethodDefinition + || method.GetParameters() is not { Length: ExtensionParameterCount } parameters + || parameters[1].ParameterType != typeof(string)) + { + continue; + } + + // A static method closed over its first argument binds to Action like an instance method. + return ByName(method.MakeGenericMethod(reactiveObject)); + } + + return null; + } + + /// Finds the extension class that owns the object's ReactiveUI notification state. + /// The object's type. + /// The ReactiveUI interface it implements. + /// The extension class, or null when the object's assemblies declare neither flavour. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + private static Type? FindReactiveObjectExtensions(Type type, Type reactiveObject) + { + // The interface can live in ReactiveUI.Core; the base class identifies the flavour holding the state. + for (var current = type; current is not null; current = current.BaseType) + { + if (FindReactiveObjectExtensions(current.Assembly) is { } extensions) + { + return extensions; + } + } + + return FindReactiveObjectExtensions(reactiveObject.Assembly); + } + + /// Finds either ReactiveUI flavour's raise extensions in an assembly. + /// The assembly to inspect. + /// The extension class, or null when the assembly declares neither flavour. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + private static Type? FindReactiveObjectExtensions(Assembly assembly) => + assembly.GetType("ReactiveUI.IReactiveObjectExtensions") + ?? assembly.GetType("ReactiveUI.Reactive.IReactiveObjectExtensions"); + + /// Finds a raise method, preferring an overload that takes event args over one that takes a name. + /// The type. + /// Whether to find a before-change raise method. + /// The raise method, or null when the type has none. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [SuppressMessage("Security", "SES1406", Justification = "reflection-based API that must reach a non-public member; there is no public route")] + private static RaiseMember? FindRaiseMethod(Type type, bool changing) + { + const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + var names = changing ? RaiseMethodNames.Changing : RaiseMethodNames.Changed; + var argsType = changing ? typeof(PropertyChangingEventArgs) : typeof(PropertyChangedEventArgs); + for (var i = 0; i < names.Length; i++) + { + if (type.GetMethod(names[i], flags, null, [argsType], null) is { } byArgs) + { + return ByArgs(byArgs, changing); + } + + if (type.GetMethod(names[i], flags, null, [typeof(string)], null) is { } byName) + { + return ByName(byName); + } + } + + return null; + } + + /// Finds the field behind a field-like event, walking up to the type that declares it. + /// The type. + /// Whether to find the PropertyChanging event rather than PropertyChanged. + /// The field, or null when no type in the hierarchy declares the event as a field. + [RequiresUnreferencedCode(RequiresUnreferencedCodeMessage)] + [SuppressMessage("Security", "SES1406", Justification = "reflection-based API that must reach a non-public member; there is no public route")] + private static RaiseMember? FindEventField(Type type, bool changing) + { + const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly; + var name = changing ? nameof(INotifyPropertyChanging.PropertyChanging) : nameof(INotifyPropertyChanged.PropertyChanged); + var handlerType = changing ? typeof(PropertyChangingEventHandler) : typeof(PropertyChangedEventHandler); + for (var declaring = type; declaring is not null; declaring = declaring.BaseType) + { + if (declaring.GetField(name, flags) is { } field && field.FieldType == handlerType) + { + return new(static _ => null, (_, owner, _, args) => RaiseThroughEventField(field.GetValue(owner), owner, args)); + } + } + + return null; + } + + /// Describes a raise method that takes event args, bound to its owner when it returns nothing. + /// The raise method. + /// Whether the method takes . + /// The raise member. + private static RaiseMember ByArgs(MethodInfo method, bool changing) + { + if (method.ReturnType != typeof(void)) + { + return new(static _ => null, (_, owner, _, args) => method.Invoke(owner, [args])); + } + + return changing + ? new( + owner => BindTo>(method, owner), + static (bound, _, _, args) => ((Action)bound!)((PropertyChangingEventArgs)args)) + : new( + owner => BindTo>(method, owner), + static (bound, _, _, args) => ((Action)bound!)((PropertyChangedEventArgs)args)); + } + + /// Describes a raise member that takes the property name, bound to its owner when it returns nothing. + /// An instance raise method, or a static one whose first parameter takes the owner. + /// The raise member. + private static RaiseMember ByName(MethodInfo method) + { + if (method.ReturnType != typeof(void)) + { + return method.IsStatic + ? new(static _ => null, (_, owner, propertyName, _) => method.Invoke(null, [owner, propertyName])) + : new(static _ => null, (_, owner, propertyName, _) => method.Invoke(owner, [propertyName])); + } + + return new( + owner => BindTo>(method, owner), + static (bound, _, propertyName, _) => ((Action)bound!)(propertyName)); + } + + /// Binds a method to an owner as a delegate: an instance method's target, or a static method's first argument. + /// The delegate type. + /// The method. + /// The object the delegate is closed over. + /// The bound delegate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static TDelegate BindTo(MethodInfo method, object owner) + where TDelegate : Delegate => +#if NET5_0_OR_GREATER + method.CreateDelegate(owner); +#else + (TDelegate)method.CreateDelegate(typeof(TDelegate), owner); +#endif + + /// Invokes the delegate held by a field-like event, typed so no dynamic invoke is needed. + /// The field's current value, or null when nothing is subscribed. + /// The object whose notification is raised. + /// The event args. + private static void RaiseThroughEventField(object? handler, object owner, EventArgs args) + { + if (handler is PropertyChangedEventHandler changed) + { + changed(owner, (PropertyChangedEventArgs)args); + } + else if (handler is PropertyChangingEventHandler changing) + { + changing(owner, (PropertyChangingEventArgs)args); + } + } + + /// The members that raise a type's two notifications. + /// The after-change member, or null when the type has none. + /// The before-change member, or null when the type has none. + private readonly record struct Members(RaiseMember? Changed, RaiseMember? Changing); + + /// The raise method names, in the order the generator tries them. + private static class RaiseMethodNames + { + /// The after-change raise method names. + internal static readonly string[] Changed = ["RaisePropertyChanged", "OnPropertyChanged", "NotifyPropertyChanged", "NotifyOfPropertyChange"]; + + /// The before-change raise method names. + internal static readonly string[] Changing = ["RaisePropertyChanging", "OnPropertyChanging", "NotifyPropertyChanging"]; + } + + /// One member that raises a notification: how to bind it to an owner, and how to call it. + /// Binds the member to an owner, once per raiser. + /// Raises the notification, once per value. + private sealed record RaiseMember(RaiseBinder Bind, RaiseInvoker Invoke); +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/TriggeredBindingPlan.cs b/src/ReactiveUI.Binding.Shared/Fallback/TriggeredBindingPlan.cs new file mode 100644 index 00000000..16c77e67 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/TriggeredBindingPlan.cs @@ -0,0 +1,84 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Reads current values on the delivery thread and compares after conversion. +/// The view model property type. +/// The view property type. +/// The view model root. +/// The view root. +/// The cached view model path. +/// The cached view path. +/// Explicit conversions, or null for converter registration. +internal sealed class TriggeredBindingPlan( + object viewModel, + object view, + List modelChain, + List viewChain, + TwoWayConverterPair? conversions) +{ + /// Whether the serialized projection has initialized the view from the model. + private bool _initialized; + + /// Drops unavailable, unconvertible and equal values before a write. + /// Whether the signal came from the view model side. + /// A converted value and its direction when a write is needed. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + internal (bool HasValue, BindingChange Value) Project(bool fromViewModel) + { + if (!Reflection.TryGetValueForPropertyChain(out var modelValue, viewModel, modelChain) + || !Reflection.TryGetValueForPropertyChain(out var viewValue, view, viewChain)) + { + return default; + } + + if (!_initialized) + { + fromViewModel = true; + _initialized = true; + } + + if (fromViewModel) + { + TVProp converted; + if (conversions is not null) + { + converted = conversions.Forward(modelValue); + } + else if (!RuntimeBindingConverter.TryConvert(modelValue, null, null, out converted)) + { + return default; + } + + return (!EqualityComparer.Default.Equals(converted, viewValue), new(converted, true)); + } + + TVMProp reverse; + if (conversions is not null) + { + reverse = conversions.Reverse(viewValue); + } + else if (!RuntimeBindingConverter.TryConvert(viewValue, null, null, out reverse)) + { + return default; + } + + return (!EqualityComparer.Default.Equals(reverse, modelValue), new(reverse, false)); + } + + /// Writes to the side opposite the signal's source. + /// The converted value and its source side. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void Write(BindingChange change) => + _ = Reflection.TrySetValueToPropertyChain( + change.FromViewModel ? view : viewModel, + change.FromViewModel ? viewChain : modelChain, + change.Value); +} diff --git a/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverterPair.cs b/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverterPair.cs new file mode 100644 index 00000000..26c6f4dd --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverterPair.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// The pair of conversions a two-way binding needs to move a value in either direction. +/// The type of the source property. +/// The type of the target property. +/// Converts a source value to the target's type. +/// Converts a target value back to the source's type. +[EditorBrowsable(EditorBrowsableState.Never)] +[DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] +public sealed record TwoWayConverterPair( + Func Forward, + Func Reverse); diff --git a/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverters.cs b/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverters.cs new file mode 100644 index 00000000..ef5dde0d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Fallback/TwoWayConverters.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Fallback; +#else +namespace ReactiveUI.Binding.Fallback; +#endif + +/// Builds a without naming its type arguments. +[EditorBrowsable(EditorBrowsableState.Never)] +public static class TwoWayConverters +{ + /// Pairs a forward and a reverse conversion. + /// The type of the source property. + /// The type of the target property. + /// Converts a source value to the target's type. + /// Converts a target value back to the source's type. + /// The paired conversions. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static TwoWayConverterPair Create( + Func forward, + Func reverse) => + new(forward, reverse); +} diff --git a/src/ReactiveUI.Binding.Shared/Helpers/ArgumentExceptionHelper.cs b/src/ReactiveUI.Binding.Shared/Helpers/ArgumentExceptionHelper.cs new file mode 100644 index 00000000..2c7361e2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Helpers/ArgumentExceptionHelper.cs @@ -0,0 +1,333 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Helpers; +#else +namespace ReactiveUI.Binding.Helpers; +#endif + +/// +/// Provides helper methods for argument validation. +/// These methods serve as polyfills for ArgumentNullException.ThrowIfNull and related methods +/// that are only available in newer .NET versions. +/// +[ExcludeFromCodeCoverage] +internal static class ArgumentExceptionHelper +{ + /// Throws an if is null. + /// The reference type argument to validate as non-null. + /// The name of the parameter with which corresponds. + /// is null. + internal static void ThrowIfNull( + [ValidatedNotNull][NotNull] object? argument, + [CallerArgumentExpression(nameof(argument))] + string? paramName = null) + { + if (argument is not null) + { + return; + } + + throw new ArgumentNullException(paramName); + } + + /// Throws an if is null. + /// The reference type argument to validate as non-null. + /// The exception message. + /// The name of the parameter with which corresponds. + /// is null. + internal static void ThrowIfNullWithMessage( + [ValidatedNotNull][NotNull] object? argument, + string message, + [CallerArgumentExpression(nameof(argument))] + string? paramName = null) + { + if (argument is not null) + { + return; + } + + throw new ArgumentNullException(paramName, message); + } + + /// Throws an exception if is null or empty. + /// The string argument to validate as non-null and non-empty. + /// The name of the parameter with which corresponds. + /// is null. + /// is empty. + internal static void ThrowIfNullOrEmpty( + [ValidatedNotNull][NotNull] string? argument, + [CallerArgumentExpression(nameof(argument))] + string? paramName = null) + { + if (argument is null) + { + throw new ArgumentNullException(paramName); + } + + if (argument.Length != 0) + { + return; + } + + throw new ArgumentException("The value cannot be an empty string.", paramName); + } + + /// Throws an exception if is null, empty, or consists only of white-space characters. + /// The string argument to validate. + /// The name of the parameter with which corresponds. + /// is null. + /// is empty or consists only of white-space characters. + internal static void ThrowIfNullOrWhiteSpace( + [ValidatedNotNull][NotNull] string? argument, + [CallerArgumentExpression(nameof(argument))] + string? paramName = null) + { + if (argument is null) + { + throw new ArgumentNullException(paramName); + } + + if (!string.IsNullOrWhiteSpace(argument)) + { + return; + } + + throw new ArgumentException( + "The value cannot be an empty string or composed entirely of whitespace.", + paramName); + } + + /// Throws an if is negative. + /// The argument to validate as non-negative. + /// The name of the parameter with which corresponds. + /// is negative. + internal static void ThrowIfNegative(int value, [CallerArgumentExpression(nameof(value))] string? paramName = null) + { + if (value >= 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, "The value cannot be negative."); + } + + /// Throws an if is true. + /// The condition to evaluate. + /// The exception message. + /// The name of the parameter with which corresponds. + /// is true. + internal static void ThrowIf( + [DoesNotReturnIf(true)] bool condition, + string message, + [CallerArgumentExpression(nameof(condition))] + string? paramName = null) + { + if (!condition) + { + return; + } + + throw new ArgumentException(message, paramName); + } + + /// Throws an if is zero. + /// The argument to validate. + /// The name of the parameter with which corresponds. + /// is zero. + internal static void ThrowIfZero(int value, [CallerArgumentExpression(nameof(value))] string? paramName = null) + { + if (value != 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, "The value cannot be zero."); + } + + /// Throws an if is negative or zero. + /// The argument to validate. + /// The name of the parameter with which corresponds. + /// is negative or zero. + internal static void ThrowIfNegativeOrZero( + int value, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + { + if (value > 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, "The value cannot be negative or zero."); + } + + /// Throws an if is equal to . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is equal to . + internal static void ThrowIfEqual( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IEquatable + { + if (!value.Equals(other)) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be equal to {other}."); + } + + /// Throws an if is not equal to . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is not equal to . + internal static void ThrowIfNotEqual( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IEquatable + { + if (value.Equals(other)) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value must be equal to {other}."); + } + + /// Throws an if is greater than . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is greater than . + internal static void ThrowIfGreaterThan( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IComparable + { + if (value.CompareTo(other) <= 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be greater than {other}."); + } + + /// Throws an if is greater than or equal to . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is greater than or equal to . + internal static void ThrowIfGreaterThanOrEqual( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IComparable + { + if (value.CompareTo(other) < 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be greater than or equal to {other}."); + } + + /// Throws an if is less than . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is less than . + internal static void ThrowIfLessThan( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IComparable + { + if (value.CompareTo(other) >= 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be less than {other}."); + } + + /// Throws an if is less than or equal to . + /// The type of the values to compare. + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is less than or equal to . + internal static void ThrowIfLessThanOrEqual( + T value, + T other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + where T : IComparable + { + if (value.CompareTo(other) > 0) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be less than or equal to {other}."); + } + + /// Throws an if is less than or equal to . + /// The argument to validate. + /// The value to compare with. + /// The name of the parameter with which corresponds. + /// is less than or equal to . + internal static void ThrowIfLessThanOrEqual( + int value, + int other, + [CallerArgumentExpression(nameof(value))] + string? paramName = null) + { + if (value > other) + { + return; + } + + throw new ArgumentOutOfRangeException(paramName, $"The value cannot be less than or equal to {other}."); + } + + /// Throws an if is default. + /// The struct type. + /// The argument to validate. + /// The name of the parameter with which corresponds. + /// is the default value of . + internal static void ThrowIfDefault( + T argument, + [CallerArgumentExpression(nameof(argument))] + string? paramName = null) + where T : struct + { + if (!EqualityComparer.Default.Equals(argument, default)) + { + return; + } + + throw new ArgumentNullException(paramName); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Helpers/CopyOnWriteArray.cs b/src/ReactiveUI.Binding.Shared/Helpers/CopyOnWriteArray.cs new file mode 100644 index 00000000..a4cfb20e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Helpers/CopyOnWriteArray.cs @@ -0,0 +1,57 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Helpers; +#else +namespace ReactiveUI.Binding.Helpers; +#endif + +/// Changes an array by publishing a changed copy, so a reader walks a stable set without a lock. +internal static class CopyOnWriteArray +{ + /// Publishes a copy of the array with added at the end. + /// The element type. + /// The field holding the array. + /// The item to add. + internal static void Add(ref T[] location, T item) + { + T[] current; + T[] updated; + + do + { + current = Volatile.Read(ref location); + updated = new T[current.Length + 1]; + Array.Copy(current, updated, current.Length); + updated[current.Length] = item; + } + while (!ReferenceEquals(Interlocked.CompareExchange(ref location, updated, current), current)); + } + + /// Publishes a copy of the array without the first occurrence of . + /// The element type. + /// The field holding the array. + /// The item to remove. An item that is not there leaves the array alone. + internal static void Remove(ref T[] location, T item) + { + T[] current; + T[] updated; + + do + { + current = Volatile.Read(ref location); + var index = Array.IndexOf(current, item); + if (index < 0) + { + return; + } + + updated = new T[current.Length - 1]; + Array.Copy(current, updated, index); + Array.Copy(current, index + 1, updated, index, current.Length - index - 1); + } + while (!ReferenceEquals(Interlocked.CompareExchange(ref location, updated, current), current)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/IInteraction.cs b/src/ReactiveUI.Binding.Shared/Interactions/IInteraction.cs new file mode 100644 index 00000000..4657e485 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/IInteraction.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Represents an interaction between collaborating application components. +/// The interaction's input type. +/// The interaction's output type. +/// +/// +/// Interactions allow collaborating components in an application to ask each other questions. Typically, +/// interactions allow a view model to get the user's confirmation from the view before proceeding with +/// some operation. The view provides the interaction's confirmation interface in a handler registered +/// for the interaction. +/// +/// +/// Interactions have both an input and an output. The interaction's input provides handlers the information +/// they require to ask a question. The handler then provides the interaction with an output as the answer. +/// +/// +/// Through this interface, asks the question as an observable. On +/// itself, +/// returns a task and returns the same observable. +/// +/// +public interface IInteraction +{ + /// Registers a synchronous interaction handler. + /// The handler. + /// A disposable which, when disposed, will unregister the handler. + IDisposable RegisterHandler(Action> handler); + + /// Registers a task-based asynchronous interaction handler. + /// The handler. + /// A disposable which, when disposed, will unregister the handler. + IDisposable RegisterHandler(Func, Task> handler); + + /// Registers an observable-based asynchronous interaction handler. + /// The signal type. + /// The handler. + /// A disposable which, when disposed, will unregister the handler. + IDisposable RegisterHandler(Func, IObservable> handler); + + /// Asks the question: runs the handlers, latest registered first, until one sets an output. + /// The input for the interaction. + /// + /// A cold observable that runs the handlers each time it is subscribed, then emits the output and completes. + /// It fails with when no handler sets an output. + /// + IObservable Handle(TInput input); +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/IInteractionContext.cs b/src/ReactiveUI.Binding.Shared/Interactions/IInteractionContext.cs new file mode 100644 index 00000000..f8696c6e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/IInteractionContext.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Contains contextual information for an interaction. +/// The type of the interaction's input. +/// The type of the interaction's output. +/// +/// +/// Instances of this interface are passed into interaction handlers. The property exposes +/// the input to the interaction, whilst the method allows a handler to provide the +/// output. +/// +/// +/// Handlers should call exactly once; subsequent calls typically indicate a logic error and will +/// throw. Check before invoking long-running logic if only one handler should respond. +/// +/// +public interface IInteractionContext +{ + /// Gets the input for the interaction. + TInput Input { get; } + + /// Gets a value indicating whether the interaction is handled. That is, whether the output has been set. + bool IsHandled { get; } + + /// Sets the output for the interaction. + /// The output. + void SetOutput(TOutput output); +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/IOutputContext.cs b/src/ReactiveUI.Binding.Shared/Interactions/IOutputContext.cs new file mode 100644 index 00000000..5b42f6bc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/IOutputContext.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extends with the ability to retrieve the output. +/// The type of the interaction's input. +/// The type of the interaction's output. +public interface IOutputContext : IInteractionContext +{ + /// Gets the output of the interaction. + /// The output. + /// If the output has not been set. + TOutput GetOutput(); +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/Interaction.cs b/src/ReactiveUI.Binding.Shared/Interactions/Interaction.cs new file mode 100644 index 00000000..5766ce53 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/Interaction.cs @@ -0,0 +1,231 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Represents an interaction between collaborating application components. +/// The interaction's input type. +/// The interaction's output type. +/// +/// +/// Interactions allow collaborating components in an application to ask each other questions. Typically, +/// interactions allow a view model to get the user's confirmation from the view before proceeding with +/// some operation. +/// +/// +/// By default, handlers are invoked in reverse order of registration. That is, handlers registered later +/// are given the opportunity to handle interactions before handlers that were registered earlier. +/// +/// +/// Note that handlers are not required to handle an interaction. They can choose to ignore it, leaving it +/// for some other handler to handle. The interaction's method will throw an +/// if no handler handles the interaction. +/// +/// +[DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] +public class Interaction : IInteraction +{ + /// The scheduler each handler is invoked on, or null to invoke handlers on the calling thread. + private readonly ISequencer? _handlerScheduler; + + /// + /// The registered handlers, invoked in reverse order during . The array is replaced + /// rather than changed, so a question already being handled walks the set it started with. + /// + private Func, Task>[] _handlers = []; + + /// Initializes a new instance of the class that invokes handlers on the calling thread. + public Interaction() + { + } + + /// Initializes a new instance of the class that invokes each handler on a scheduler. + /// The scheduler each handler is invoked on, such as the main thread's; null invokes handlers on the calling thread. + public Interaction(ISequencer? handlerScheduler) => _handlerScheduler = handlerScheduler; + + /// + public IDisposable RegisterHandler(Action> handler) + { + ArgumentExceptionHelper.ThrowIfNull(handler); + + return RegisterHandler(context => + { + handler(context); + return Task.CompletedTask; + }); + } + + /// + public IDisposable RegisterHandler(Func, Task> handler) + { + ArgumentExceptionHelper.ThrowIfNull(handler); + + AddHandler(handler); + return new ActionDisposable(() => RemoveHandler(handler)); + } + + /// Registers a handler that finishes when the observable it returns completes. + /// The element type of the returned observable; the values are ignored. + /// The handler; the interaction moves to the next handler once the observable completes, and a fault in the observable faults . + /// A disposable which, when disposed, unregisters the handler. + /// is null. + public IDisposable RegisterHandler( + Func, IObservable> handler) + { + ArgumentExceptionHelper.ThrowIfNull(handler); + + Task ContentHandler(IInteractionContext context) + { + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + _ = handler(context).Subscribe(new ObservableToTaskObserver(tcs)); + return tcs.Task; + } + + AddHandler(ContentHandler); + return new ActionDisposable(() => RemoveHandler(ContentHandler)); + } + + /// Runs the handlers, latest registered first, until one sets an output, and returns that output. + /// The input for the interaction. + /// A task that completes with the output the first handling handler set. + /// No handler set an output. + public virtual async Task Handle(TInput input) + { + var context = GenerateContext(input); + var handlers = Volatile.Read(ref _handlers); + + for (var i = handlers.Length - 1; i >= 0; i--) + { + await InvokeHandler(handlers[i], context).ConfigureAwait(false); + if (context.IsHandled) + { + return context.GetOutput(); + } + } + + throw new UnhandledInteractionException(this, input); + } + + /// Asks the question as an observable: each subscription runs once. + /// The input for the interaction. + /// + /// A cold observable that emits the output and completes, or fails with + /// when no handler sets an output. Disposing the + /// subscription drops the output; a handler that is already running still finishes. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable WhenHandled(TInput input) => + new FromAsyncSignal(_ => Handle(input)); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + IObservable IInteraction.Handle(TInput input) => WhenHandled(input); + + /// Gets a copy of the registered handlers in order of registration. + /// The registered handlers, earliest first. + protected Func, Task>[] GetHandlers() => [.. Volatile.Read(ref _handlers)]; + + /// Creates the context every handler receives for one call to . + /// The input passed to . + /// A new interaction context carrying the input. + protected virtual IOutputContext GenerateContext(TInput input) => + new InteractionContext(input); + + /// Invokes a handler on the handler scheduler, or inline when there is none. + /// The handler to invoke. + /// The context of the question being asked. + /// A task that completes when the handler finishes. + private Task InvokeHandler(Func, Task> handler, IOutputContext context) + { + if (_handlerScheduler is null) + { + return handler(context); + } + + var call = new ScheduledHandlerCall(handler, context); + _ = _handlerScheduler.Schedule( + call, + static (_, pending) => + { + pending.Run(); + return EmptyDisposable.Instance; + }); + return call.Completion; + } + + /// Adds a handler to the registered set. + /// The handler to add. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void AddHandler(Func, Task> handler) => + CopyOnWriteArray.Add(ref _handlers, handler); + + /// Removes the first registration of a handler from the registered set. + /// The handler to remove. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void RemoveHandler(Func, Task> handler) => + CopyOnWriteArray.Remove(ref _handlers, handler); + + /// One handler call waiting for the handler scheduler to run it. + /// The handler to invoke. + /// The context of the question being asked. + private sealed class ScheduledHandlerCall( + Func, Task> handler, + IOutputContext context) + { + /// Completes with the handler's task once the scheduler has invoked the handler. + private readonly TaskCompletionSource _started = new(TaskCreationOptions.RunContinuationsAsynchronously); + + /// Gets a task that completes when the handler finishes. + public Task Completion => _started.Task.Unwrap(); + + /// Invokes the handler; a handler that throws faults . + public void Run() + { + Task running; + try + { + running = handler(context); + } + catch (Exception ex) + { + _ = _started.TrySetException(ex); + return; + } + + _ = _started.TrySetResult(running); + } + } + + /// An observer that bridges an observable sequence to a , completing the task when the observable completes or faults. + /// The element type of the observable sequence. + private sealed class ObservableToTaskObserver : IObserver + { + /// The task completion source that is signaled when the observable completes or errors. + private readonly TaskCompletionSource _tcs; + + /// Initializes a new instance of the class. + /// The task completion source to signal. + public ObservableToTaskObserver(TaskCompletionSource tcs) => _tcs = tcs; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() => _tcs.TrySetResult(true); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => _tcs.TrySetException(error); + + /// + public void OnNext(T value) + { + // Intentionally empty — we only care about completion/error. + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/InteractionContext.cs b/src/ReactiveUI.Binding.Shared/Interactions/InteractionContext.cs new file mode 100644 index 00000000..3eda004f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/InteractionContext.cs @@ -0,0 +1,74 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Contains contextual information for an interaction. +/// The type of the interaction's input. +/// The type of the interaction's output. +/// +/// +/// Instances of this class are passed into interaction handlers. The property exposes +/// the input to the interaction, whilst the method allows a handler to provide the +/// output. +/// +/// +/// Calling more than once throws an , ensuring the +/// handler's reply remains deterministic even when multiple handlers run concurrently. Use +/// to guard logic that should only execute once. +/// +/// +[DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] +public sealed class InteractionContext : IOutputContext +{ + /// The output value set by a handler via . + private TOutput _output = default!; + + /// Tracks whether the output has been set (0 = not set, 1 = set). + private int _outputSet; + + /// Initializes a new instance of the class. + /// The input value for this interaction. + internal InteractionContext(TInput input) => Input = input; + + /// + public TInput Input { get; } + + /// + public bool IsHandled => Volatile.Read(ref _outputSet) == 1; + + /// Sets the output for the interaction and marks it handled. + /// The output. + /// The output has already been set. + public void SetOutput(TOutput output) + { + if (!TryClaimOutput()) + { + throw new InvalidOperationException("Output has already been set."); + } + + _output = output; + } + + /// + public TOutput GetOutput() + { + if (Volatile.Read(ref _outputSet) == 0) + { + throw new InvalidOperationException("Output has not been set."); + } + + return _output; + } + + /// Atomically claims the output slot. + /// if the claim was successful; if already set. + [ExcludeFromCodeCoverage] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal bool TryClaimOutput() => Interlocked.CompareExchange(ref _outputSet, 1, 0) == 0; +} diff --git a/src/ReactiveUI.Binding.Shared/Interactions/UnhandledInteractionException.cs b/src/ReactiveUI.Binding.Shared/Interactions/UnhandledInteractionException.cs new file mode 100644 index 00000000..7bd8f23c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interactions/UnhandledInteractionException.cs @@ -0,0 +1,52 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Indicates that an interaction has gone unhandled. +/// The type of the interaction's input. +/// The type of the interaction's output. +[DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] +public class UnhandledInteractionException : Exception +{ + /// Initializes a new instance of the class for an interaction no handler handled. + /// The interaction that no handler handled. + /// The input into the interaction. + public UnhandledInteractionException(Interaction interaction, TInput input) + : this("Failed to find a registration for an Interaction.") + { + Interaction = interaction; + Input = input; + } + + /// Initializes a new instance of the class. + public UnhandledInteractionException() + { + } + + /// Initializes a new instance of the class. + /// A message about the exception. + public UnhandledInteractionException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// A message about the exception. + /// Any other exception that caused the issue. + public UnhandledInteractionException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// Gets the interaction that was not handled, or null when the exception was created without one. + public Interaction? Interaction { get; } + + /// Gets the input for the interaction that was not handled, or the default value when the exception was created without one. + public TInput Input { get; } = default!; +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/BindingDirection.cs b/src/ReactiveUI.Binding.Shared/Interfaces/BindingDirection.cs new file mode 100644 index 00000000..12f683c8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/BindingDirection.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Specifies the direction of a property binding. +public enum BindingDirection +{ + /// One-way binding from source to target. + OneWay = 0, + + /// Two-way binding between source and target. + TwoWay = 1, + + /// One-way asynchronous binding from source to target. + AsyncOneWay = 2, +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/CreatesObservableForPropertyMixins.cs b/src/ReactiveUI.Binding.Shared/Interfaces/CreatesObservableForPropertyMixins.cs new file mode 100644 index 00000000..d7252eab --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/CreatesObservableForPropertyMixins.cs @@ -0,0 +1,61 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Overloads of members that default the before-change and warning flags to . +public static class CreatesObservableForPropertyMixins +{ + /// Provides GetAffinityForObject extension members for . + /// The observation factory. + extension(ICreatesObservableForProperty factory) + { + /// Returns the affinity for after-change observation of the specified property. + /// The type being observed. + /// The property name being observed. + /// The affinity score. Positive means supported. + /// is . + public int GetAffinityForObject(Type type, string propertyName) + { + ArgumentExceptionHelper.ThrowIfNull(factory); + return factory.GetAffinityForObject(type, propertyName, false); + } + + /// Creates an observable that fires after the specified property changes, without suppressing warnings. + /// The object to observe. + /// The expression identifying the property. + /// The property name. + /// An observable of observed changes. + /// is . + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName) + { + ArgumentExceptionHelper.ThrowIfNull(factory); + return factory.GetNotificationForProperty(sender, expression, propertyName, false, false); + } + + /// Creates an observable that fires when the specified property changes, without suppressing warnings. + /// The object to observe. + /// The expression identifying the property. + /// The property name. + /// Whether to observe before-change events. + /// An observable of observed changes. + /// is . + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged) + { + ArgumentExceptionHelper.ThrowIfNull(factory); + return factory.GetNotificationForProperty(sender, expression, propertyName, beforeChanged, false); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IActivatableView.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IActivatableView.cs new file mode 100644 index 00000000..e43505c1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IActivatableView.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Marker interface that every implements; it declares no members. +[SuppressMessage("Design", "SST1437:Empty interface", Justification = "Intentional marker interface.")] +[SuppressMessage("Design", "CA1040:Avoid empty interfaces", Justification = "Intentional marker interface.")] +public interface IActivatableView; diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesCommandBinding.cs b/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesCommandBinding.cs new file mode 100644 index 00000000..81a3a6c2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesCommandBinding.cs @@ -0,0 +1,99 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Plugin interface for types that can bind an to a control. +/// Implementations register with Splat and are resolved by affinity scoring. +/// +/// +/// +/// This interface follows the same affinity-based resolution pattern as +/// . Multiple implementations may be +/// registered; the one with the highest affinity score for a given control type wins. +/// +/// +/// Platform-specific modules (WPF, WinForms) register their own implementations +/// to handle platform-specific binding semantics (e.g., WPF's Command/CommandParameter +/// properties, WinForms event-based binding). +/// +/// +public interface ICreatesCommandBinding +{ + /// + /// Returns a positive integer when this implementation supports binding a command + /// to an object of the specified type. If the binding is not supported, + /// the method returns a non-positive integer. In cases where multiple + /// implementations return positive values, the one with the highest value wins. + /// + /// The type of the control to bind to. + /// Whether the caller specifies a custom event target. + /// A positive integer if binding is supported, or zero/negative if not. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; the interface shape dictates it.")] + [SuppressMessage("Design", "SST1452:Unused type parameter", Justification = "Names the control type; implementations resolve it via typeof(T).")] + int GetAffinityForObject(bool hasEventTarget); + + /// + /// Binds an to a UI object using the default event. + /// The default event is determined by the implementation (e.g., Click, TouchUpInside). + /// + /// The type of the target object. + /// The command to bind. If , no binding is created. + /// The target object, usually a UI control. + /// An observable that provides the command parameter value. + /// + /// An that disconnects the binding when disposed, or + /// if no binding was created. + /// + IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter) + where T : class; + + /// Binds an to a UI object to a specific named event. + /// The type of the target object. + /// The event argument type. + /// The command to bind. If , no binding is created. + /// The target object, usually a UI control. + /// An observable that provides the command parameter value. + /// The event to bind to. + /// + /// An that disconnects the binding when disposed, or + /// if no binding was created. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the bound command shape.")] + [SuppressMessage("Design", "SST1452:Unused type parameter", Justification = "Types the event handler this overload binds; it mirrors the add/remove handler overload.")] + IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter, + string eventName) + where T : class; + + /// Binds a command to a specific event on a target object using explicit add/remove handler delegates. + /// The type of the target object. + /// The event arguments type. + /// The command to bind. If , no binding is created. + /// The target object. + /// An observable that supplies command parameter values. + /// Adds the handler to the target event. + /// Removes the handler from the target event. + /// A disposable that unbinds the command. + IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter, + Action> addHandler, + Action> removeHandler) + where T : class + where TEventArgs : EventArgs; +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesObservableForProperty.cs b/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesObservableForProperty.cs new file mode 100644 index 00000000..e9d97c60 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/ICreatesObservableForProperty.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Provides property change notifications for the types it supports; the registration with the highest affinity for +/// a type and property is the one used. +/// +public interface ICreatesObservableForProperty +{ + /// Returns how well this implementation can observe a property of a type. + /// The type being observed. + /// The property name being observed. + /// Whether before-change (PropertyChanging) is requested. + /// A positive score when the property can be observed, where a higher score wins; zero or negative when it cannot. + int GetAffinityForObject(Type type, string propertyName, bool beforeChanged); + + /// Creates an observable that emits each time the specified property changes. + /// The object to observe. + /// The expression identifying the property. + /// The property name. + /// Whether to observe before-change events. + /// Whether to suppress the warning written for a property that cannot notify. + /// An observable of observed changes; callers read the current value from rather than from the emitted change. + IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings); +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IObservedChange.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IObservedChange.cs new file mode 100644 index 00000000..fe402784 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IObservedChange.cs @@ -0,0 +1,24 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Describes one property change: the object that raised it, the expression naming the property, and its value. +/// The type of the object that raised the change. +/// The type of the property value. +public interface IObservedChange +{ + /// Gets the object that raised the change. + TSender Sender { get; } + + /// Gets the expression of the member that changed. + Expression? Expression { get; } + + /// Gets the value the change carries; a source that raises a notification without reading the property leaves it at the default. + TValue Value { get; } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IPropertyBindingHook.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IPropertyBindingHook.cs new file mode 100644 index 00000000..55cab33f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IPropertyBindingHook.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Implement this as a way to intercept bindings at the time that they are +/// created and execute an additional action (or to cancel the binding). +/// +public interface IPropertyBindingHook +{ + /// Called as a binding is set up, before it is wired, and can refuse the binding. + /// The source ViewModel; may be null. + /// The target View (not the actual control). + /// Reads the current values along the view model property path when called. + /// Reads the current values along the view property path when called. + /// The Binding direction. + /// to let the binding proceed; to cancel it. + bool ExecuteHook( + object? source, + object target, + Func[]> getCurrentViewModelProperties, + Func[]> getCurrentViewProperties, + BindingDirection direction); +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IReactiveBinding.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IReactiveBinding.cs new file mode 100644 index 00000000..b6b92519 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IReactiveBinding.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Represents a binding between a view and a view model property. +/// The type of the view. +/// The type of the bound value. +public interface IReactiveBinding : IDisposable + where TView : IViewFor +{ + /// Gets the expression representing the view model property that is bound, or null when the binding carries none. + Expression? ViewModelExpression { get; } + + /// Gets the view that is bound. + TView View { get; } + + /// Gets the expression representing the view property that is bound, or null when the binding carries none. + Expression? ViewExpression { get; } + + /// Gets an observable that signals when the binding value changes. + IObservable Changed { get; } + + /// Gets the direction of the binding. + BindingDirection Direction { get; } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor.cs new file mode 100644 index 00000000..da39a305 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Non-generic interface for views that display a view model. +public interface IViewFor : IActivatableView +{ + /// Gets or sets the view model displayed by the view. + object? ViewModel { get; set; } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor{T}.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor{T}.cs new file mode 100644 index 00000000..c5a95474 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IViewFor{T}.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Generic interface for views that display a specific view model type. +/// The type of the view model. +public interface IViewFor : IViewFor + where T : class +{ + /// Gets or sets the view model displayed by the view. + new T? ViewModel { get; set; } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IViewLocator.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IViewLocator.cs new file mode 100644 index 00000000..604c4a6b --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IViewLocator.cs @@ -0,0 +1,66 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves views for view models. +/// +/// A locator has an ahead-of-time safe way to resolve a view model held as an , +/// , and a reflective one, . +/// An implementation keeps free of reflection over the view model's +/// runtime type, and puts any such step in only. +/// +public interface IViewLocator : IEnableLogger +{ + /// Resolves a view for the view model using its compile-time type, without reflection over the view model's runtime type. + /// The type of the view model. + /// The view model instance to resolve a view for. + /// The contract to resolve under, or null for the default view. + /// The resolved view, or if no view is found. + IViewFor? ResolveView(TViewModel viewModel, string? contract) + where TViewModel : class; + + /// Resolves a view for the view model using its runtime type, without building any type at run time. + /// The view model instance to resolve a view for. + /// The contract to resolve under, or null for the default view. + /// The resolved view, or if no view is found. + /// + /// This member is safe to call from a trimmed or native AOT application. asks the + /// source-generated lookups and then its explicit mappings, keyed by the view model's runtime type. It does not ask + /// the service locator for IViewFor<T> closed over the runtime type. Call + /// for that step. + /// + /// + /// + /// object viewModel = navigationStack.Peek(); + /// var view = ViewLocator.GetCurrent().ResolveView(viewModel, contract: null); + /// + /// + IViewFor? ResolveView(object? viewModel, string? contract); + + /// Resolves a view for the view model using its runtime type, and falls back to steps that build a type at run time. + /// The view model instance to resolve a view for. + /// The contract to resolve under, or null for the default view. + /// The resolved view, or if no view is found. + /// + /// runs the steps of first. When they + /// find nothing, it closes IViewFor<> over the view model's runtime type and asks the service locator + /// for it. A native AOT application cannot build that type, so prefer + /// with a generated view or a Map registration. An implementation carries the same + /// . + /// + /// + /// + /// // The view is registered only as IViewFor<TodoViewModel> in the service locator. + /// object viewModel = new TodoViewModel(); + /// var view = ViewLocator.GetCurrent().ResolveViewUnsafe(viewModel, contract: null); + /// + /// + [RequiresDynamicCode(ViewLocatorMixins.ResolveViewUnsafeMessage)] + IViewFor? ResolveViewUnsafe(object? viewModel, string? contract); +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/IViewThreadInvoker.cs b/src/ReactiveUI.Binding.Shared/Interfaces/IViewThreadInvoker.cs new file mode 100644 index 00000000..edefebad --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/IViewThreadInvoker.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Runs a binding's write on the thread that owns the object it lands on, through the platform's own dispatcher. +public interface IViewThreadInvoker +{ + /// Determines whether this invoker handles . + /// The object a binding writes to. + /// when the object belongs to this invoker's platform; otherwise . + bool Claims(object target); + + /// Determines whether the calling thread may write to directly. + /// An object this invoker claims. + /// on the owning thread, or when the object has no owning thread; otherwise . + bool CheckAccess(object target); + + /// Queues a callback on the thread that owns . + /// An object this invoker claims. + /// The callback to run. + /// The value handed to . + void Post(object target, Action callback, object? state); +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/ObservedChange.cs b/src/ReactiveUI.Binding.Shared/Interfaces/ObservedChange.cs new file mode 100644 index 00000000..112b2116 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/ObservedChange.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Concrete implementation of . +/// The type of the object that raised the change. +/// The type of the property value. +[DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] +public class ObservedChange : IObservedChange +{ + /// Initializes a new instance of the class. + /// The object that raised the change. + /// The expression of the member that changed. + /// The value of the property; the default when the reader is to fetch it from . + public ObservedChange(TSender sender, Expression? expression, TValue value) + { + Sender = sender; + Expression = expression; + Value = value; + } + + /// + public TSender Sender { get; } + + /// + public Expression? Expression { get; } + + /// + public TValue Value { get; } +} diff --git a/src/ReactiveUI.Binding.Shared/Interfaces/ViewLocatorMixins.cs b/src/ReactiveUI.Binding.Shared/Interfaces/ViewLocatorMixins.cs new file mode 100644 index 00000000..5f201735 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Interfaces/ViewLocatorMixins.cs @@ -0,0 +1,106 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Convenience overloads for that supply the default (null) contract. +/// Provided as overloads rather than optional parameters so the interface stays free of optional parameters. +/// +public static class ViewLocatorMixins +{ + /// The reason ResolveViewUnsafe needs dynamic code, reported at each call site. + internal const string ResolveViewUnsafeMessage = + "ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe."; + + /// Provides ResolveView extension members for . + /// The view locator. + extension(IViewLocator locator) + { + /// Resolves a view for the specified view model type using the default contract. + /// The type of the view model. + /// The view model instance to resolve a view for. + /// The resolved view, or if no view is found. + public IViewFor? ResolveView(TViewModel viewModel) + where TViewModel : class + { + ArgumentExceptionHelper.ThrowIfNull(locator); + return locator.ResolveView(viewModel, null); + } + + /// Resolves a view for a view model type under the default contract, without a view model instance. + /// The view model type. + /// The resolved view, or if no view is found. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the view model type.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? ResolveView() + where TViewModel : class => locator.ResolveView(contract: null); + + /// Resolves a view for a view model type under a contract, without a view model instance. + /// The view model type. + /// The contract to resolve under, or null for the default view. + /// The resolved view, or if no view is found. + /// + /// The default locator asks its explicit mappings and then the service locator. Any other locator has no + /// type-only lookup of its own, so this asks the service locator for directly. + /// Pass the contract by name, contract: null, when it is a literal null: a bare null could + /// also be the view model of ResolveView<TViewModel>(TViewModel). + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the view model type.")] + public IViewFor? ResolveView(string? contract) + where TViewModel : class + { + ArgumentExceptionHelper.ThrowIfNull(locator); + return locator is DefaultViewLocator defaultLocator + ? defaultLocator.ResolveView(contract) + : AppLocator.Current.GetService>(string.IsNullOrEmpty(contract) ? null : contract); + } + + /// Resolves a view for a view model instance under the default contract, without building any type at run time. + /// The view model instance to resolve a view for. + /// The resolved view, or if no view is found. + /// + /// This calls with a null contract. It is safe to call + /// from a trimmed or native AOT application. + /// + /// + /// + /// object viewModel = navigationStack.Peek(); + /// var view = ViewLocator.GetCurrent().ResolveView(viewModel); + /// + /// + public IViewFor? ResolveView(object? viewModel) + { + ArgumentExceptionHelper.ThrowIfNull(locator); + return locator.ResolveView(viewModel, null); + } + + /// Resolves a view for a view model instance under the default contract, and falls back to steps that build a type at run time. + /// The view model instance to resolve a view for. + /// The resolved view, or if no view is found. + /// + /// This calls with a null contract. Prefer + /// ResolveView(object?) with a generated view or a Map registration. + /// + /// + /// + /// // The view is registered only as IViewFor<TodoViewModel> in the service locator. + /// object viewModel = new TodoViewModel(); + /// var view = ViewLocator.GetCurrent().ResolveViewUnsafe(viewModel); + /// + /// + [RequiresDynamicCode(ResolveViewUnsafeMessage)] + public IViewFor? ResolveViewUnsafe(object? viewModel) + { + ArgumentExceptionHelper.ThrowIfNull(locator); + return locator.ResolveViewUnsafe(viewModel, null); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/.editorconfig b/src/ReactiveUI.Binding.Shared/Mixins/.editorconfig new file mode 100644 index 00000000..40c8c1f6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/.editorconfig @@ -0,0 +1,24 @@ +[*.cs] + +################### +# Runtime dispatch stubs +# +# The generator emits a concrete typed overload of each of these methods as a classic static +# extension method, because generated output has to compile as C# 7.3. A binding only reaches its +# generated implementation if that concrete overload wins extension lookup against the stub here. +# +# Rewriting a stub as an extension block member changes that outcome: the stub starts winning, and +# every generated binding falls through to the runtime path and throws "No generated binding found" +# (measured - 78 runtime-execution tests fail with the block form and pass with the classic form). +# These stubs therefore stay classic extension methods. +################### +dotnet_diagnostic.SST1703.severity = none # an extension block member outranks the generated overload +dotnet_diagnostic.SST1705.severity = none # an extension block member outranks the generated overload +dotnet_diagnostic.SST1708.severity = none # an extension block member outranks the generated overload + +# The selector overloads declare their signature once per #if arm and share one expression body +# after the #endif. SST1527 wants the arrow at the end of the preceding line - which is the #endif - +# and moving it would push the body inside a single arm. Rewriting them as block bodies instead +# trades the rule for SST2275, which asks for the expression body back, so the two cannot both be +# satisfied for this shape. +dotnet_diagnostic.SST1527.severity = none # the arrow follows an #endif shared by both arms diff --git a/src/ReactiveUI.Binding.Shared/Mixins/BuilderMixins.cs b/src/ReactiveUI.Binding.Shared/Mixins/BuilderMixins.cs new file mode 100644 index 00000000..0283d830 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/BuilderMixins.cs @@ -0,0 +1,179 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Mixins; +#else +namespace ReactiveUI.Binding.Mixins; +#endif + +/// Extension methods that bridge to for fluent chaining. +/// +/// These methods allow fluent chains such as: +/// +/// RxBindingBuilder.CreateReactiveUIBindingBuilder() +/// .WithCoreServices() +/// .BuildApp(); +/// +/// Because returns , these +/// extension methods cast back to to continue chaining. +/// +public static class BuilderMixins +{ + /// Message used when an is not an . + private const string NotBindingBuilderMessage = + "The provided IAppBuilder is not an IReactiveUIBindingBuilder. " + + "Ensure you are using the ReactiveUI.Binding builder pattern."; + + /// Builds the ReactiveUI.Binding application from an . + /// The app builder instance. + /// The configured application instance. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingInstance BuildApp(this IAppBuilder appBuilder) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.BuildApp(); + } + + /// Registers a platform-specific module from an . + /// The type of the platform module. + /// The app builder instance. + /// The platform module instance to register. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder WithPlatformModule(this IAppBuilder appBuilder, T module) + where T : IModule + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.WithPlatformModule(module); + } + + /// Adds a custom registration action from an . + /// The app builder instance. + /// An action that receives the mutable dependency resolver. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder WithRegistration( + this IAppBuilder appBuilder, + Action configureAction) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.WithRegistration(configureAction); + } + + /// Registers a typed binding converter from an . + /// The app builder instance. + /// The converter instance to register. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder WithConverter(this IAppBuilder appBuilder, IBindingTypeConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.WithConverter(converter); + } + + /// Registers a fallback binding converter from an . + /// The app builder instance. + /// The fallback converter instance to register. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder WithFallbackConverter( + this IAppBuilder appBuilder, + IBindingFallbackConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.WithFallbackConverter(converter); + } + + /// Registers a set-method binding converter from an . + /// The app builder instance. + /// The set-method converter instance to register. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder WithSetMethodConverter( + this IAppBuilder appBuilder, + ISetMethodBindingConverter converter) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.WithSetMethodConverter(converter); + } + + /// Configures the default view locator with explicit view-to-view-model mappings from an . + /// The app builder instance. + /// An action that receives a for registering mappings. + /// The builder instance for chaining. + /// is null. + /// + /// is not an . + /// + public static IReactiveUIBindingBuilder ConfigureViewLocator( + this IAppBuilder appBuilder, + Action configure) + { + ArgumentExceptionHelper.ThrowIfNull(appBuilder); + + if (appBuilder is not IReactiveUIBindingBuilder reactiveUiBindingBuilder) + { + throw new InvalidOperationException(NotBindingBuilderMessage); + } + + return reactiveUiBindingBuilder.ConfigureViewLocator(configure); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ObservableChainHelpers.cs b/src/ReactiveUI.Binding.Shared/Mixins/ObservableChainHelpers.cs new file mode 100644 index 00000000..a30727e0 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ObservableChainHelpers.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Shared helpers for the per-observable plumbing in the WhenAnyObservable overloads. Extracting the +/// repeated chain into one method keeps each arity overload's cyclomatic complexity low by moving the +/// null-coalescing decision out of the (otherwise straight-line) overload body. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +internal static class ObservableChainHelpers +{ + /// + /// Observes an observable-valued property chain and switches to its latest inner observable, + /// substituting an empty sequence whenever the property is currently null. + /// + /// The type of the observed object. + /// The element type of the inner observable. + /// The object whose observable-valued property is observed. + /// An expression selecting the observable-valued property. + /// An observable that switches to the latest non-null inner observable. + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static IObservable SwitchLatest( + TSender sender, + Expression?>> observable) + where TSender : class => + new SwitchMapSignal?>, T>( + sender.SubscribeToExpressionChain?>(observable.Body, skipInitial: false), + static x => x.Value ?? ImmutableEmptySignal.Instance); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ObservedProperty.cs b/src/ReactiveUI.Binding.Shared/Mixins/ObservedProperty.cs new file mode 100644 index 00000000..b5558d02 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ObservedProperty.cs @@ -0,0 +1,226 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Observes properties for code that another source generator writes, with the behaviour of WhenAnyValue and +/// without a generated binding. +/// +/// +/// +/// A source generator never sees another generator's output, so code a generator writes cannot rely on this library's +/// generator to bind a WhenAnyValue call. These methods take what that generator would have read from the call: +/// the property as a lambda, and a delegate that reads it. They use no reflection, and are safe to trim and to publish +/// ahead of time. +/// +/// +/// Hand-written code calls WhenAnyValue instead, which the generator binds. +/// +/// +/// The family observes one property, two properties, or two properties through a selector. continues a +/// path one property further, so x => x.A.B is Create(source, x => x.A, x => x.A).Then(a => a.B, a => a.B). +/// follows a property that holds an observable, as WhenAnyObservable does. +/// +/// +[EditorBrowsable(EditorBrowsableState.Advanced)] +public static class ObservedProperty +{ + /// Observes one property: its current value, then each value it changes to, skipping repeats. + /// The type declaring the property. + /// The property's type. + /// The object to observe. + /// The property, as a lambda that names it: x => x.Name. + /// A delegate that reads the property: x => x.Name. + /// The property's values. + /// An argument is null. + /// does not name a property or field of its parameter. + /// + /// A source that implements is followed through its change notifications. + /// Another source's value is read once. A registered that scores higher + /// for the type and property takes over, as it does for WhenAnyValue. + /// + public static IObservable Create( + TSource source, + Expression> property, + Func getter) + where TSource : class + { + ArgumentExceptionHelper.ThrowIfNull(source); + return Observe(source, property, getter, true); + } + + /// Observes two properties: their current values, then a pair each time either changes. + /// The type declaring the properties. + /// The first property's type. + /// The second property's type. + /// The object to observe. + /// The first property, as a lambda that names it. + /// A delegate that reads the first property. + /// The second property, as a lambda that names it. + /// A delegate that reads the second property. + /// The two properties' values. + /// An argument is null. + /// A property lambda does not name a property or field of its parameter. + [SuppressMessage("Design", "SST1472:Too many parameters", Justification = "parameter count is inherent to the API/overload under test")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable> Create( + TSource source, + Expression> property1, + Func getter1, + Expression> property2, + Func getter2) + where TSource : class => + Create(source, property1, getter1, property2, getter2, static (value1, value2) => new PropertyValues(value1, value2)); + + /// Observes two properties and projects each pair of values through a selector. + /// The type declaring the properties. + /// The first property's type. + /// The second property's type. + /// The type the selector produces. + /// The object to observe. + /// The first property, as a lambda that names it. + /// A delegate that reads the first property. + /// The second property, as a lambda that names it. + /// A delegate that reads the second property. + /// The projection applied to each pair of values. + /// The projected values. + /// An argument is null. + /// A property lambda does not name a property or field of its parameter. + [SuppressMessage("Design", "SST1472:Too many parameters", Justification = "parameter count is inherent to the API/overload under test")] + public static IObservable Create( + TSource source, + Expression> property1, + Func getter1, + Expression> property2, + Func getter2, + Func selector) + where TSource : class + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(selector); + return new CombineLatestSignal( + Observe(source, property1, getter1, true), + Observe(source, property2, getter2, true), + selector); + } + + /// + /// Continues a path one property further: the property of whatever object currently + /// holds, following each replacement of that object, as WhenAnyValue(x => x.A.B) does. + /// + /// The type of the object the path has reached. + /// The next property's type. + /// The values of the path so far. + /// The next property, as a lambda that names it. + /// A delegate that reads the next property. + /// The next property's values, skipping repeats. While the path holds null, nothing is produced. + /// An argument is null. + /// does not name a property or field of its parameter. + public static IObservable Then( + this IObservable parent, + Expression> property, + Func getter) + where TParent : class + { + ArgumentExceptionHelper.ThrowIfNull(parent); + var name = ReadName(property); + ArgumentExceptionHelper.ThrowIfNull(getter); + var link = new SwitchMapSignal( + parent, + owner => owner is null ? ImmutableEmptySignal.Instance : Observe(owner, property, name, getter, false)); + return new UniqueSignal(link, EqualityComparer.Default); + } + + /// + /// Follows a property that holds an observable: produces what the latest observable it holds produces, as + /// WhenAnyObservable does. While the property holds null, nothing is produced. + /// + /// The type the held observables produce. + /// The values of a property whose type is an observable. + /// The values of the observable the property currently holds. + /// is null. + /// WhenAnyObservable(x => x.Router!.CurrentViewModel!) is Create(...).Then(...).Switch(). + public static IObservable Switch(this IObservable?> source) + { + ArgumentExceptionHelper.ThrowIfNull(source); + return new SwitchMapSignal?, TValue>(source, static inner => inner ?? ImmutableEmptySignal.Instance); + } + + /// Observes one property of one object, choosing the mechanism the way a generated binding does. + /// The type declaring the property. + /// The property's type. + /// The object to observe. + /// The property, as a lambda that names it. + /// A delegate that reads the property. + /// Whether repeats of the same value are skipped. + /// The property's values. + private static IObservable Observe( + TSource source, + Expression> property, + Func getter, + bool distinct) + where TSource : class + { + var name = ReadName(property); + ArgumentExceptionHelper.ThrowIfNull(getter); + return Observe(source, property, name, getter, distinct); + } + + /// Observes one property of one object whose name is already read. + /// The type declaring the property. + /// The property's type. + /// The object to observe. + /// The property, as a lambda that names it; a registered provider is handed its body. + /// The property's name. + /// A delegate that reads the property. + /// Whether repeats of the same value are skipped. + /// The property's values. + /// + /// A source with change notifications is observed through them at the affinity a generated binding gives + /// ; any other source is read once. A registered provider that scores higher + /// takes over in both cases. + /// + private static IObservable Observe( + TSource source, + Expression> property, + string name, + Func getter, + bool distinct) + where TSource : class + { + var notifying = source as INotifyPropertyChanged; + var affinity = notifying is null ? 0 : BindingAffinity.Explicit; + if (ObservationAffinityChecker.FindHigherAffinityPlugin(source.GetType(), name, affinity, false) is { } plugin) + { + return new PluginPropertyObservable(plugin, source, property.Body, name, owner => getter((TSource)owner), false, distinct); + } + + return notifying is null + ? new UnchangingPropertyObservable(getter(source)) + : new PropertyObservable(notifying, name, owner => getter((TSource)owner), distinct); + } + + /// Reads the name of the property a lambda names. + /// The lambda's parameter type. + /// The property's type. + /// The lambda. + /// The property's name. + /// is null. + /// The lambda does not name a property or field of its parameter. + private static string ReadName(Expression> property) + { + ArgumentExceptionHelper.ThrowIfNull(property); + var body = property.Body is UnaryExpression { NodeType: ExpressionType.Convert } conversion ? conversion.Operand : property.Body; + return body is MemberExpression { Expression: ParameterExpression } member + ? member.Member.Name + : throw new ArgumentException("The lambda must name a property or field of its parameter, as in x => x.Name.", nameof(property)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.Unsafe.cs new file mode 100644 index 00000000..972c88fa --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.Unsafe.cs @@ -0,0 +1,457 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The opt-in half of the scheduler overloads, which resolves a binding by reflection. +/// +/// The unsuffixed members resolve at compile time and throw when no generated dispatch claimed the call site; +/// these walk the chain by reflection instead, and are annotated so a consumer publishing trimmed or +/// ahead-of-time sees the requirement at their own call site. They are declared as classic static extension +/// methods rather than extension-block members, because nothing has to lose extension lookup to a generated +/// overload here. +/// +public static partial class ReactiveSchedulerExtensions +{ + /// + /// Creates a one-way binding from a source property to a target property with a specified scheduler, resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the target object. + /// The type of the property being bound. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. + /// A disposable that, when disposed, disconnects the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindOneWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindOneWay( + source, + target, + sourceProperty, + targetProperty, + scheduler, + bindingExpression); + } + + /// + /// Creates a one-way binding from a source property to a target property with a conversion function and a specified scheduler, resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. + /// A disposable that, when disposed, disconnects the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindOneWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func conversionFunc, + ISequencer? scheduler) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindOneWay( + source, + target, + sourceProperty, + targetProperty, + conversionFunc, + scheduler, + bindingExpression); + } + + /// + /// Creates a one-way binding from a source property to a target property using an explicit , resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The binding type converter to use for converting between source and target types. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. + /// An optional hint passed to the converter (e.g., format string). + /// A disposable that, when disposed, disconnects the binding. + /// A value the converter cannot convert is written as the default of the destination type. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindOneWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + IBindingTypeConverter converter, + ISequencer? scheduler, + object? conversionHint) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindOneWay( + source, + target, + sourceProperty, + targetProperty, + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + converter, + out var converted); + return converted; + }, + scheduler, + bindingExpression); + } + + /// + /// Creates a two-way binding between a source property and a target property with a specified scheduler, resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the target object. + /// The type of the property being bound. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. Writes back are not scheduled. + /// A disposable that, when disposed, disconnects the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindTwoWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindTwoWay( + source, + target, + sourceProperty, + targetProperty, + scheduler, + bindingExpression); + } + + /// + /// Creates a two-way binding between a source property and a target property with conversion functions and a specified scheduler, resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// A function that converts the target property value back to the source property type. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. Writes back are not scheduled. + /// A disposable that, when disposed, disconnects the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindTwoWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func sourceToTargetConv, + Func targetToSourceConv, + ISequencer? scheduler) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindTwoWay( + source, + target, + sourceProperty, + targetProperty, + TwoWayConverters.Create(sourceToTargetConv, targetToSourceConv), + scheduler, + bindingExpression); + } + + /// + /// Creates a two-way binding between a source property and a target property using explicit instances, resolving the property chains by reflection. + /// + /// The type of the source. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source the binding is rooted on. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The converter for source-to-target conversion. + /// The converter for target-to-source conversion. + /// The scheduler the write to the target is delivered on, or null for its owning thread; an immediate scheduler writes inline. Writes back are not scheduled. + /// An optional hint passed to the converters (e.g., format string). + /// A disposable that, when disposed, disconnects the binding. + /// A value the converter cannot convert is written as the default of the destination type. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IDisposable BindTwoWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + IBindingTypeConverter sourceToTargetConverter, + IBindingTypeConverter targetToSourceConverter, + ISequencer? scheduler, + object? conversionHint) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindTwoWay( + source, + target, + sourceProperty, + targetProperty, + TwoWayConverters.Create( + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + sourceToTargetConverter, + out var converted); + return converted; + }, + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + targetToSourceConverter, + out var converted); + return converted; + }), + scheduler, + bindingExpression); + } + + /// + /// Creates a one-way binding from a view model property to a view property with a specified selector and scheduler, resolving the property chains by reflection. + /// + /// The type of the view. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view the binding is rooted on. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// The scheduler the write to the view is delivered on, or null for its owning thread; an immediate scheduler writes inline. + /// A reactive binding that can be disposed to disconnect the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding OneWayBindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func selector, + ISequencer? scheduler) + where TView : class, IViewFor + where TViewModel : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.OneWayBind( + view, + viewModel, + viewModelProperty, + viewProperty, + selector, + scheduler, + bindingExpression); + } + + /// + /// Creates a one-way binding from a view model property to a view property using an explicit , resolving the property chains by reflection. + /// + /// The type of the view. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view the binding is rooted on. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The binding type converter to use for converting between source and target types. + /// The scheduler the write to the view is delivered on, or null for its owning thread; an immediate scheduler writes inline. + /// An optional hint passed to the converter (e.g., format string). + /// A reactive binding that can be disposed to disconnect the binding. + /// A value the converter cannot convert is written as the default of the destination type. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding OneWayBindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IBindingTypeConverter converter, + ISequencer? scheduler, + object? conversionHint) + where TView : class, IViewFor + where TViewModel : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.OneWayBind( + view, + viewModel, + viewModelProperty, + viewProperty, + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + converter, + out var converted); + return converted; + }, + scheduler, + bindingExpression); + } + + /// + /// Creates a two-way binding between a view model property and a view property with conversion functions and a specified scheduler, resolving the property chains by reflection. + /// + /// The type of the view. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view the binding is rooted on. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// A function that converts the view property value back to the view model property type. + /// The scheduler the write to the view is delivered on, or null for its owning thread; an immediate scheduler writes inline. Writes back are not scheduled. + /// A reactive binding that can be disposed to disconnect the binding. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func viewModelToViewConverter, + Func viewToViewModelConverter, + ISequencer? scheduler) + where TView : class, IViewFor + where TViewModel : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.Bind( + view, + viewModel, + viewModelProperty, + viewProperty, + TwoWayConverters.Create(viewModelToViewConverter, viewToViewModelConverter), + scheduler, + bindingExpression); + } + + /// + /// Creates a two-way binding between a view model property and a view property using explicit instances, resolving the property chains by reflection. + /// + /// The type of the view. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view the binding is rooted on. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The converter for view model-to-view conversion. + /// The converter for view-to-view model conversion. + /// The scheduler the write to the view is delivered on, or null for its owning thread; an immediate scheduler writes inline. Writes back are not scheduled. + /// An optional hint passed to the converters (e.g., format string). + /// A reactive binding that can be disposed to disconnect the binding. + /// A value the converter cannot convert is written as the default of the destination type. + [RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IBindingTypeConverter viewModelToViewConverter, + IBindingTypeConverter viewToViewModelConverter, + ISequencer? scheduler, + object? conversionHint) + where TView : class, IViewFor + where TViewModel : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.Bind( + view, + viewModel, + viewModelProperty, + viewProperty, + TwoWayConverters.Create( + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + viewModelToViewConverter, + out var converted); + return converted; + }, + value => + { + _ = RuntimeBindingConverter.TryConvert( + value, + conversionHint, + viewToViewModelConverter, + out var converted); + return converted; + }), + scheduler, + bindingExpression); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.cs new file mode 100644 index 00000000..22c39213 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveSchedulerExtensions.cs @@ -0,0 +1,394 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Binding extension methods that deliver writes on a caller-supplied scheduler. +public static partial class ReactiveSchedulerExtensions +{ + /// The message thrown when no generated binding matched the call site. + private const string NoGeneratedBindingMessage = + "No generated binding dispatch matched this call site. Use the matching Unsafe overload to resolve the expression at run time."; + + /// Provides BindOneWay extension members for . + /// The type of the source object. + /// The source object to observe for property changes. + extension(TSource source) + where TSource : class + { + /// Creates a one-way binding from a source property to a target property with a specified scheduler. + /// The type of the target object. + /// The type of the property being bound. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The scheduler the write to the target is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindOneWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a one-way binding from a source property to a target property with a conversion function and a specified scheduler. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// The scheduler the write to the target is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindOneWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func conversionFunc, + ISequencer? scheduler, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a one-way binding from a source property to a target property using an explicit . + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The binding type converter to use for converting between source and target types. + /// An optional hint passed to the converter (e.g., format string). + /// The scheduler the write to the target is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Design", + "SST2309:Optional parameters should be overloads", + Justification = "Part of the CallerInfo dispatch contract; overloads would exceed the parameter limit.")] + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindOneWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + IBindingTypeConverter converter, + object? conversionHint = null, + ISequencer? scheduler = null, + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a two-way binding between a source property and a target property with a specified scheduler. + /// The type of the target object. + /// The type of the property being bound. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The scheduler each write is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindTwoWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + ISequencer? scheduler, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a two-way binding between a source property and a target property with conversion functions and a specified scheduler. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// A function that converts the target property value back to the source property type. + /// The scheduler each write is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindTwoWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func sourceToTargetConv, + Func targetToSourceConv, + ISequencer? scheduler, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a two-way binding between a source property and a target property using explicit instances. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The converter for source-to-target conversion. + /// The converter for target-to-source conversion. + /// An optional hint passed to the converters (e.g., format string). + /// The scheduler each write is delivered on, in place of the target's owning thread; an immediate scheduler writes inline. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Design", + "SST2309:Optional parameters should be overloads", + Justification = "Part of the CallerInfo dispatch contract; overloads would exceed the parameter limit.")] + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IDisposable BindTwoWay( + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + IBindingTypeConverter sourceToTargetConverter, + IBindingTypeConverter targetToSourceConverter, + object? conversionHint = null, + ISequencer? scheduler = null, + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + } + + /// Provides OneWayBind extension members for . + /// The type of the view. + /// The view to bind to. + extension(TView view) + where TView : class, IViewFor + { + /// Creates a one-way binding from a view model property to a view property with a specified selector and scheduler. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// The scheduler the write to the view is delivered on, in place of the view's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IReactiveBinding OneWayBind( + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func selector, + ISequencer? scheduler, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a one-way binding from a view model property to a view property using an explicit . + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The binding type converter to use for converting between source and target types. + /// An optional hint passed to the converter (e.g., format string). + /// The scheduler the write to the view is delivered on, in place of the view's owning thread; an immediate scheduler writes inline. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Design", + "SST2309:Optional parameters should be overloads", + Justification = "Part of the CallerInfo dispatch contract; overloads would exceed the parameter limit.")] + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IReactiveBinding OneWayBind( + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IBindingTypeConverter converter, + object? conversionHint = null, + ISequencer? scheduler = null, + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a two-way binding between a view model property and a view property with conversion functions and a specified scheduler. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// A function that converts the view property value back to the view model property type. + /// The scheduler each write is delivered on, in place of the view's owning thread; an immediate scheduler writes inline. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IReactiveBinding Bind( + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func viewModelToViewConverter, + Func viewToViewModelConverter, + ISequencer? scheduler, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + + /// Creates a two-way binding between a view model property and a view property using explicit instances. + /// The type of the view model. + /// The type of the view model property. + /// The type of the view property. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The converter for view model-to-view conversion. + /// The converter for view-to-view model conversion. + /// An optional hint passed to the converters (e.g., format string). + /// The scheduler each write is delivered on, in place of the view's owning thread; an immediate scheduler writes inline. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding. + /// No generated dispatch matched this call site; use the matching Unsafe overload to resolve the expression at run time. + [SuppressMessage( + "Design", + "SST2309:Optional parameters should be overloads", + Justification = "Part of the CallerInfo dispatch contract; overloads would exceed the parameter limit.")] + [SuppressMessage( + "Extensions", + "SST1711:Extension block members should use the block's receiver", + Justification = "Part of the CallerInfo dispatch contract; the generated overload reads the receiver and this stub only throws.")] + public IReactiveBinding Bind( + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IBindingTypeConverter viewModelToViewConverter, + IBindingTypeConverter viewToViewModelConverter, + object? conversionHint = null, + ISequencer? scheduler = null, + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + { + throw new InvalidOperationException(NoGeneratedBindingMessage); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.Unsafe.cs new file mode 100644 index 00000000..c42c8a73 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.Unsafe.cs @@ -0,0 +1,149 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a BindCommand expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of BindCommand. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Binds the command a view model property holds to the control a view property holds, rebinding when either changes. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// The event name to bind to. If null, a default event is selected. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindCommandUnsafe( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + string? toEvent) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(propertyName.Body)); + + return RuntimeCommandBindingFallback.BindCommand( + view, + viewModel, + propertyName, + controlName, + Signal.Return(null), + toEvent, + bindingExpression); + } + + /// Binds the command a view model property holds to the control a view property holds, using an observable as the source of the command parameter. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The type of the command parameter. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// An observable that provides the command parameter. + /// The event name to bind to. If null, a default event is selected. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindCommandUnsafe( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + IObservable withParameter, + string? toEvent) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(propertyName.Body)); + + return RuntimeCommandBindingFallback.BindCommand( + view, + viewModel, + propertyName, + controlName, + new MapSignal(withParameter, static value => (object?)value), + toEvent, + bindingExpression); + } + + /// Binds the command a view model property holds to the control a view property holds, using a view model property as the command parameter. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The type of the command parameter. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// An expression that selects the command parameter property on the view model. + /// The event name to bind to. If null, a default event is selected. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindCommandUnsafe( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + Expression> withParameter, + string? toEvent) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(propertyName.Body)); + + // The parameter property lives on the same view model, so it is only observable once there is one. + var parameters = viewModel is null + ? Signal.Never() + : new MapSignal( + RuntimeObservationFallback.WhenAnyValue(viewModel, withParameter), + static value => (object?)value); + + return RuntimeCommandBindingFallback.BindCommand( + view, + viewModel, + propertyName, + controlName, + parameters, + toEvent, + bindingExpression); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.cs new file mode 100644 index 00000000..e810439e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindCommand.cs @@ -0,0 +1,136 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for binding commands from a view model to controls on a view. +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a BindCommand call site. + private const string NoBindCommandDispatchMessage = + "No generated BindCommand dispatch matched this call site. Use BindCommandUnsafe to resolve the expression at run time."; + + /// Binds the command a view model property holds to the control a view property holds, rebinding when either changes. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// The event name to bind to. If null, a default event is selected. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindCommand dispatch matched this call site. Use BindCommandUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + public static IDisposable BindCommand( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + string? toEvent = null, + [CallerArgumentExpression("propertyName")] string propertyNameExpression = "", + [CallerArgumentExpression("controlName")] string controlNameExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + throw new InvalidOperationException(NoBindCommandDispatchMessage); + } + + /// Binds the command a view model property holds to the control a view property holds, using an observable as the source of the command parameter. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The type of the command parameter. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// An observable that provides the command parameter. + /// The event name to bind to. If null, a default event is selected. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindCommand dispatch matched this call site. Use BindCommandUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + public static IDisposable BindCommand( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + IObservable withParameter, + string? toEvent = null, + [CallerArgumentExpression("propertyName")] string propertyNameExpression = "", + [CallerArgumentExpression("controlName")] string controlNameExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + throw new InvalidOperationException(NoBindCommandDispatchMessage); + } + + /// Binds the command a view model property holds to the control a view property holds, using a view model property as the command parameter. + /// The type of the view. + /// The type of the view model. + /// The type of the command property. + /// The type of the control. + /// The type of the command parameter. + /// The view to bind to. + /// The view model containing the command; null binds nothing. + /// An expression that selects the command property on the view model. + /// An expression that selects the control on the view. + /// An expression that selects the command parameter property on the view model. + /// The event name to bind to. If null, a default event is selected. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindCommand dispatch matched this call site. Use BindCommandUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST2309", Justification = "the CallerInfo and toEvent defaults must stay optional; overloads would shadow the generated overloads")] + public static IDisposable BindCommand( + this TView view, + TViewModel? viewModel, + Expression> propertyName, + Expression> controlName, + Expression> withParameter, + string? toEvent = null, + [CallerArgumentExpression("propertyName")] string propertyNameExpression = "", + [CallerArgumentExpression("controlName")] string controlNameExpression = "", + [CallerArgumentExpression("withParameter")] string withParameterExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TView : class, IViewFor + where TViewModel : class + where TProp : ICommand + where TControl : class + { + throw new InvalidOperationException(NoBindCommandDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.Unsafe.cs new file mode 100644 index 00000000..2c3c84f7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.Unsafe.cs @@ -0,0 +1,80 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a BindInteraction expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of BindInteraction. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Registers a task-based handler on the interaction a view model property holds, moving it to the new interaction when the property changes. + /// The type of the view model. + /// The type of the view. + /// The type of the interaction's input. + /// The type of the interaction's output. + /// The view that provides the handler. + /// The view model that exposes the interaction; null registers nothing. + /// An expression that selects the interaction property on the view model. + /// A task-based handler for the interaction. + /// A disposable that, when disposed, unregisters the handler and stops observing the property. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindInteractionUnsafe( + this TView view, + TViewModel? viewModel, + Expression>> propertyName, + Func, Task> handler) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(propertyName.Body)); + + return RuntimeInteractionFallback.BindInteraction( + viewModel, + propertyName, + interaction => interaction.RegisterHandler(handler), + bindingExpression); + } + + /// Registers an observable-based handler on the interaction a view model property holds, moving it to the new interaction when the property changes. + /// The type of the view model. + /// The type of the view. + /// The type of the interaction's input. + /// The type of the interaction's output. + /// The signal type of the observable handler. + /// The view that provides the handler. + /// The view model that exposes the interaction; null registers nothing. + /// An expression that selects the interaction property on the view model. + /// An observable-based handler for the interaction. + /// A disposable that, when disposed, unregisters the handler and stops observing the property. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindInteractionUnsafe( + this TView view, + TViewModel? viewModel, + Expression>> propertyName, + Func, IObservable> handler) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(propertyName.Body)); + + return RuntimeInteractionFallback.BindInteraction( + viewModel, + propertyName, + interaction => interaction.RegisterHandler(handler), + bindingExpression); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.cs new file mode 100644 index 00000000..7d5d2d04 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindInteraction.cs @@ -0,0 +1,76 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for binding interactions between a view and a view model. +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a BindInteraction call site. + private const string NoBindInteractionDispatchMessage = + "No generated BindInteraction dispatch matched this call site. Use BindInteractionUnsafe to resolve the expression at run time."; + + /// Registers a task-based handler on the interaction a view model property holds, moving it to the new interaction when the property changes. + /// The type of the view model. + /// The type of the view. + /// The type of the interaction's input. + /// The type of the interaction's output. + /// The view that provides the handler. + /// The view model that exposes the interaction; null registers nothing. + /// An expression that selects the interaction property on the view model. + /// A task-based handler for the interaction. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, unregisters the handler and stops observing the property. + /// No generated BindInteraction dispatch matched this call site. Use BindInteractionUnsafe to resolve the expression at run time. + public static IDisposable BindInteraction( + this TView view, + TViewModel? viewModel, + Expression>> propertyName, + Func, Task> handler, + [CallerArgumentExpression("propertyName")] + string propertyNameExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoBindInteractionDispatchMessage); + } + + /// Registers an observable-based handler on the interaction a view model property holds, moving it to the new interaction when the property changes. + /// The type of the view model. + /// The type of the view. + /// The type of the interaction's input. + /// The type of the interaction's output. + /// The signal type of the observable handler. + /// The view that provides the handler. + /// The view model that exposes the interaction; null registers nothing. + /// An expression that selects the interaction property on the view model. + /// An observable-based handler for the interaction. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, unregisters the handler and stops observing the property. + /// No generated BindInteraction dispatch matched this call site. Use BindInteractionUnsafe to resolve the expression at run time. + public static IDisposable BindInteraction( + this TView view, + TViewModel? viewModel, + Expression>> propertyName, + Func, IObservable> handler, + [CallerArgumentExpression("propertyName")] + string propertyNameExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoBindInteractionDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.Unsafe.cs new file mode 100644 index 00000000..bedaeab3 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.Unsafe.cs @@ -0,0 +1,167 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a BindTo expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of BindTo. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Writes each value the source produces to a target property, resolving the property chain by reflection. + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// A disposable that, when disposed, disconnects the binding. + /// is null. + /// + /// Values are written on the target's owning thread when a registered view-thread invoker claims it. + /// A null target writes nothing, and a value the converter cannot convert is written as the default of the property type. + /// + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindToUnsafe( + this IObservable source, + TTarget? target, + Expression> property) + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(property.Body)); + + return RuntimeBindingFallback.BindTo( + source, + target, + property, + null, + null, + null, + bindingExpression); + } + + /// + /// Writes each value the source produces to a target property, passing the conversion hint to the + /// converter and resolving the property chain by reflection. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An object that provides a hint to the converter. The semantics are defined by the converter. + /// A disposable that, when disposed, disconnects the binding. + /// is null. + /// + /// Values are written on the target's owning thread when a registered view-thread invoker claims it. + /// A null target writes nothing, and a value the converter cannot convert is written as the default of the property type. + /// + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindToUnsafe( + this IObservable source, + TTarget? target, + Expression> property, + object? conversionHint) + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(property.Body)); + + return RuntimeBindingFallback.BindTo( + source, + target, + property, + conversionHint, + null, + null, + bindingExpression); + } + + /// + /// Writes each value the source produces to a target property, converting it with the supplied converter + /// and resolving the property chain by reflection. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An explicit converter to use when converting the source value to the target property type. + /// A disposable that, when disposed, disconnects the binding. + /// is null. + /// + /// Values are written on the target's owning thread when a registered view-thread invoker claims it. + /// A null target writes nothing, and a value the converter cannot convert is written as the default of the property type. + /// + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindToUnsafe( + this IObservable source, + TTarget? target, + Expression> property, + IBindingTypeConverter? converterOverride) + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(property.Body)); + + return RuntimeBindingFallback.BindTo( + source, + target, + property, + null, + converterOverride, + null, + bindingExpression); + } + + /// + /// Writes each value the source produces to a target property, converting it with the supplied converter + /// and conversion hint and resolving the property chain by reflection. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An object that provides a hint to the converter. The semantics are defined by the converter. + /// An explicit converter to use when converting the source value to the target property type. + /// A disposable that, when disposed, disconnects the binding. + /// is null. + /// + /// Values are written on the target's owning thread when a registered view-thread invoker claims it. + /// A null target writes nothing, and a value the converter cannot convert is written as the default of the property type. + /// + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindToUnsafe( + this IObservable source, + TTarget? target, + Expression> property, + object? conversionHint, + IBindingTypeConverter? converterOverride) + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(property.Body)); + + return RuntimeBindingFallback.BindTo( + source, + target, + property, + conversionHint, + converterOverride, + null, + bindingExpression); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.cs new file mode 100644 index 00000000..5b0170a7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.BindTo.cs @@ -0,0 +1,135 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Extension methods for binding an observable stream directly to a target property (BindTo). +/// These generic stubs throw when no concrete generated overload is found; the source generator emits +/// concrete typed overloads that C# overload resolution prefers over these generic stubs. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a BindTo call site. + private const string NoBindToDispatchMessage = + "No generated BindTo dispatch matched this call site. Use BindToUnsafe to resolve the expression at run time."; + + /// Writes each value the source produces to a target property, on the target's owning thread when its platform has one. + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindTo dispatch matched this call site. Use BindToUnsafe to resolve the expression at run time. + public static IDisposable BindTo( + this IObservable source, + TTarget? target, + Expression> property, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoBindToDispatchMessage); + } + + /// + /// Writes each value the source produces to a target property, passing the conversion hint to the + /// converter that coerces the value to the property type. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An object that provides a hint to the converter. The semantics are defined by the converter. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindTo dispatch matched this call site. Use BindToUnsafe to resolve the expression at run time. + public static IDisposable BindTo( + this IObservable source, + TTarget? target, + Expression> property, + object? conversionHint, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoBindToDispatchMessage); + } + + /// + /// Writes each value the source produces to a target property, coercing it with the supplied converter + /// instead of a registered one. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An explicit converter to use when converting the source value to the target property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindTo dispatch matched this call site. Use BindToUnsafe to resolve the expression at run time. + public static IDisposable BindTo( + this IObservable source, + TTarget? target, + Expression> property, + IBindingTypeConverter? converterOverride, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoBindToDispatchMessage); + } + + /// + /// Writes each value the source produces to a target property, coercing it with the supplied converter + /// instead of a registered one and passing the conversion hint to it. + /// + /// The type of the value produced by the source observable. + /// The type of the target object. + /// The type of the property on the target object. + /// The observable stream to bind to a target property. + /// The target object whose property will be set. + /// An expression that selects the target property to set. + /// An object that provides a hint to the converter. The semantics are defined by the converter. + /// An explicit converter to use when converting the source value to the target property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding. + /// No generated BindTo dispatch matched this call site. Use BindToUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IDisposable BindTo( + this IObservable source, + TTarget? target, + Expression> property, + object? conversionHint, + IBindingTypeConverter? converterOverride, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + { + throw new InvalidOperationException(NoBindToDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.Unsafe.cs new file mode 100644 index 00000000..0446ddba --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.Unsafe.cs @@ -0,0 +1,388 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a BindOneWay expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of BindOneWay. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Binds a source property to a target property one way, writing the current value and each later change on the target's owning thread. + /// The type of the source object. + /// The type of the target object. + /// The type of the property being bound. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindOneWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindOneWay( + source, + target, + sourceProperty, + targetProperty, + null, + bindingExpression); + } + + /// Binds a source property to a target property one way through a conversion function, writing on the target's owning thread. + /// The type of the source object. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindOneWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func conversionFunc) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindOneWay( + source, + target, + sourceProperty, + targetProperty, + conversionFunc, + null, + bindingExpression); + } + + /// Binds a source and a target property to each other, seeding the target from the source and mirroring each change on the other side's owning thread. + /// The type of the source object. + /// The type of the target object. + /// The type of the property being bound. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindTwoWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindTwoWay( + source, + target, + sourceProperty, + targetProperty, + null, + bindingExpression); + } + + /// Binds a source and a target property to each other through conversion functions, seeding the target and mirroring each change on the other side's owning thread. + /// The type of the source object. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// A function that converts the target property value back to the source property type. + /// A disposable that, when disposed, disconnects the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IDisposable BindTwoWayUnsafe( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func sourceToTargetConv, + Func targetToSourceConv) + where TSource : class + where TTarget : class + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(sourceProperty.Body)); + + return RuntimeBindingFallback.BindTwoWay( + source, + target, + sourceProperty, + targetProperty, + TwoWayConverters.Create(sourceToTargetConv, targetToSourceConv), + null, + bindingExpression); + } + + /// Binds a view model property to a view property one way, writing the current value and each later change on the view's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A reactive binding that can be disposed to disconnect the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IReactiveBinding OneWayBindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.OneWayBind( + view, + viewModel, + viewModelProperty, + viewProperty, + static value => + { + _ = RuntimeBindingConverter.TryConvert(value, null, null, out var converted); + return converted; + }, + null, + bindingExpression); + } + + /// Binds a view model property to a view property one way through a selector, writing on the view's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// A reactive binding that can be disposed to disconnect the binding. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IReactiveBinding OneWayBindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func selector) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.OneWayBind( + view, + viewModel, + viewModelProperty, + viewProperty, + selector, + null, + bindingExpression); + } + + /// Creates a two-way binding between a view model property and a view property, resolving the property chains by reflection. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The binding; its change stream reports each value with the side it came from, and disposing it disconnects both directions. + /// + /// The view model value is written to the view first, and the view's own current value is not written back. + /// Writes to the view land on its owning thread when a registered view-thread invoker claims it. + /// Values are converted with the registered converters, and a value they cannot convert is written as the default of the destination type. + /// + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.Bind( + view, + viewModel, + viewModelProperty, + viewProperty, + TwoWayConverters.Create( + static value => + { + _ = RuntimeBindingConverter.TryConvert(value, null, null, out var converted); + return converted; + }, + static value => + { + _ = RuntimeBindingConverter.TryConvert(value, null, null, out var converted); + return converted; + }), + null, + bindingExpression); + } + + /// Creates a two-way binding between a view model property and a view property with conversion functions, resolving the property chains by reflection. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// A function that converts the view property value back to the view model property type. + /// The binding; its change stream reports each value with the side it came from, and disposing it disconnects both directions. + /// + /// The view model value is written to the view first, and the view's own current value is not written back. + /// Writes to the view land on its owning thread when a registered view-thread invoker claims it. + /// + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func viewModelToViewConverter, + Func viewToViewModelConverter) + where TViewModel : class + where TView : class, IViewFor + { + var bindingExpression = Reflection.ExpressionToPropertyNames(Reflection.Rewrite(viewModelProperty.Body)); + + return RuntimeBindingFallback.Bind( + view, + viewModel, + viewModelProperty, + viewProperty, + TwoWayConverters.Create(viewModelToViewConverter, viewToViewModelConverter), + null, + bindingExpression); + } + + /// Binds a view model property and a view property in both directions, with an update stream driving one direction. + /// The view model type. + /// The view type. + /// The view model property type. + /// The view property type. + /// The ignored signal payload. + /// The view to bind. + /// The view model to bind. + /// The view model property path. + /// The view property path. + /// The update stream, or null to observe both properties' own notifications. + /// The direction the update stream drives; see . + /// The binding; its change stream reports each write with the side it came from, and disposing it disconnects both directions. + /// + /// The view model value is written to the view first, once both sides are wired. + /// Each signal then reads both sides at delivery on the view's owning thread, converts with the registered converters, + /// and drops the write when the converted value equals the destination or cannot be converted. + /// + [SuppressMessage("Design", "SST2309", Justification = "The compatibility overload requires ViewToViewModel as its optional enum default.")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + IObservable? signalViewUpdate, + TriggerUpdate triggerUpdate = TriggerUpdate.ViewToViewModel) + where TViewModel : class + where TView : class, IViewFor => + RuntimeBindingFallback.Bind(view, viewModel, viewModelProperty, viewProperty, signalViewUpdate, triggerUpdate); + + /// Binds a view model property and a view property in both directions with explicit conversions, with an update stream driving one direction. + /// The view model type. + /// The view type. + /// The view model property type. + /// The view property type. + /// The ignored signal payload. + /// The view to bind. + /// The view model to bind. + /// The view model property path. + /// The view property path. + /// Converts a value written to the view. + /// Converts a value written to the view model. + /// The update stream, or null to observe both properties' own notifications. + /// The direction the update stream drives; see . + /// The binding; its change stream reports each write with the side it came from, and disposing it disconnects both directions. + /// + /// The view model value is written to the view first, once both sides are wired. + /// Each signal then reads both sides at delivery on the view's owning thread and drops the write when the converted value equals the destination. + /// + [SuppressMessage("Design", "SST2309", Justification = "The compatibility overload requires ViewToViewModel as its optional enum default.")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IReactiveBinding BindUnsafe( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func viewModelToViewConverter, + Func viewToViewModelConverter, + IObservable? signalViewUpdate, + TriggerUpdate triggerUpdate = TriggerUpdate.ViewToViewModel) + where TViewModel : class + where TView : class, IViewFor => + RuntimeBindingFallback.Bind( + view, + viewModel, + viewModelProperty, + viewProperty, + TwoWayConverters.Create(viewModelToViewConverter, viewToViewModelConverter), + signalViewUpdate, + triggerUpdate); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.cs new file mode 100644 index 00000000..b75805c2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.Binding.cs @@ -0,0 +1,303 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for property binding (BindOneWay, BindTwoWay, OneWayBind, Bind). +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a Bind call site. + private const string NoBindDispatchMessage = + "No generated Bind dispatch matched this call site. Use BindUnsafe to resolve the expression at run time."; + + /// Reported when no generated dispatch claimed a BindOneWay call site. + private const string NoBindOneWayDispatchMessage = + "No generated BindOneWay dispatch matched this call site. Use BindOneWayUnsafe to resolve the expression at run time."; + + /// Reported when no generated dispatch claimed a BindTwoWay call site. + private const string NoBindTwoWayDispatchMessage = + "No generated BindTwoWay dispatch matched this call site. Use BindTwoWayUnsafe to resolve the expression at run time."; + + /// Reported when no generated dispatch claimed a OneWayBind call site. + private const string NoOneWayBindDispatchMessage = + "No generated OneWayBind dispatch matched this call site. Use OneWayBindUnsafe to resolve the expression at run time."; + + /// Binds a source property to a target property one way, writing the current value and each later change on the target's owning thread. + /// The type of the source object. + /// The type of the target object. + /// The type of the property being bound. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding; a binding hook that vetoes the binding leaves nothing bound. + /// No generated BindOneWay dispatch matched this call site. Use BindOneWayUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IDisposable BindOneWay( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSource : class + where TTarget : class + { + throw new InvalidOperationException(NoBindOneWayDispatchMessage); + } + + /// Binds a source property to a target property one way through a conversion function, writing on the target's owning thread. + /// The type of the source object. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding; a binding hook that vetoes the binding leaves nothing bound. + /// No generated BindOneWay dispatch matched this call site. Use BindOneWayUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IDisposable BindOneWay( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func conversionFunc, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSource : class + where TTarget : class + { + throw new InvalidOperationException(NoBindOneWayDispatchMessage); + } + + /// Binds a source and a target property to each other, seeding the target from the source and mirroring each change on the other side's owning thread. + /// The type of the source object. + /// The type of the target object. + /// The type of the property being bound. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding; a binding hook that vetoes the binding leaves nothing bound. + /// No generated BindTwoWay dispatch matched this call site. Use BindTwoWayUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IDisposable BindTwoWay( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSource : class + where TTarget : class + { + throw new InvalidOperationException(NoBindTwoWayDispatchMessage); + } + + /// Binds a source and a target property to each other through conversion functions, seeding the target and mirroring each change on the other side's owning thread. + /// The type of the source object. + /// The type of the source property. + /// The type of the target object. + /// The type of the target property. + /// The source object to observe for property changes. + /// The target object whose property will be updated. + /// An expression that selects the source property to observe. + /// An expression that selects the target property to update. + /// A function that converts the source property value to the target property type. + /// A function that converts the target property value back to the source property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, disconnects the binding; a binding hook that vetoes the binding leaves nothing bound. + /// No generated BindTwoWay dispatch matched this call site. Use BindTwoWayUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IDisposable BindTwoWay( + this TSource source, + TTarget target, + Expression> sourceProperty, + Expression> targetProperty, + Func sourceToTargetConv, + Func targetToSourceConv, + [CallerArgumentExpression("sourceProperty")] + string sourcePropertyExpression = "", + [CallerArgumentExpression("targetProperty")] + string targetPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSource : class + where TTarget : class + { + throw new InvalidOperationException(NoBindTwoWayDispatchMessage); + } + + /// Binds a view model property to a view property one way, writing the current value and each later change on the view's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding, or null when a binding hook vetoes it. + /// No generated OneWayBind dispatch matched this call site. Use OneWayBindUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IReactiveBinding OneWayBind( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoOneWayBindDispatchMessage); + } + + /// Binds a view model property to a view property one way through a selector, writing on the view's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding, or null when a binding hook vetoes it. + /// No generated OneWayBind dispatch matched this call site. Use OneWayBindUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IReactiveBinding OneWayBind( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func selector, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoOneWayBindDispatchMessage); + } + + /// Binds a view model property and a view property to each other, seeding the view and mirroring each change on the other side's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding, or null when a binding hook vetoes it. + /// No generated Bind dispatch matched this call site. Use BindUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IReactiveBinding Bind( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoBindDispatchMessage); + } + + /// Binds a view model property and a view property to each other through conversion functions, seeding the view and mirroring each change on the other side's owning thread. + /// The type of the view model. + /// The type of the view. + /// The type of the view model property. + /// The type of the view property. + /// The view to bind to. + /// The view model to observe. + /// An expression that selects the view model property to observe. + /// An expression that selects the view property to update. + /// A function that converts the view model property value to the view property type. + /// A function that converts the view property value back to the view model property type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A reactive binding that can be disposed to disconnect the binding, or null when a binding hook vetoes it. + /// No generated Bind dispatch matched this call site. Use BindUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IReactiveBinding Bind( + this TView view, + TViewModel? viewModel, + Expression> viewModelProperty, + Expression> viewProperty, + Func viewModelToViewConverter, + Func viewToViewModelConverter, + [CallerArgumentExpression("viewModelProperty")] + string viewModelPropertyExpression = "", + [CallerArgumentExpression("viewProperty")] + string viewPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TViewModel : class + where TView : class, IViewFor + { + throw new InvalidOperationException(NoBindDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.Unsafe.cs new file mode 100644 index 00000000..fbc21a46 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.Unsafe.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves an InvokeCommand expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of InvokeCommand. The unsuffixed overload resolves at compile time and throws when no +/// generated dispatch claimed the call site; this one walks the chain by reflection instead, and is annotated so a +/// consumer publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Executes the command a property holds with each value as its parameter, skipping a value while there is no command or the command cannot execute it. + /// The type of the value offered as the command parameter. + /// The type declaring the command property. + /// The sequence driving the executions. + /// The object declaring the command property; null executes nothing. + /// An expression that selects the command property to execute. + /// A disposable that, when disposed, stops executing the command and stops observing the property. + /// or is null. + /// Resolves the property chain by reflection, for an expression the generator could not read. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static IDisposable InvokeCommandUnsafe( + this IObservable source, + TTarget? target, + Expression> commandProperty) + where TTarget : class + => RuntimeCommandFallback.InvokeCommand(source, target, commandProperty); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.cs new file mode 100644 index 00000000..35718f65 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.InvokeCommand.cs @@ -0,0 +1,60 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows.Input; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods that execute a command with each value an observable produces (InvokeCommand). +/// +/// The command is offered every value the sequence produces, as the command parameter, and a value the command +/// refuses is dropped. A ReactiveCommand is reached through these overloads like any other +/// : the parameter is passed as rather than the command's input type. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed an InvokeCommand call site. + private const string NoInvokeCommandDispatchMessage = + "No generated InvokeCommand dispatch matched this call site. Use InvokeCommandUnsafe to resolve the expression at run time."; + + /// Executes a command with each value the sequence produces as its parameter, skipping a value the command cannot execute. + /// The type of the value offered as the command parameter. + /// The sequence driving the executions. + /// The command to execute. + /// A disposable that, when disposed, stops executing the command. + /// or is null. + /// + /// The command is the caller's own object rather than a property to observe, so there is nothing here for the + /// generator to resolve and no dispatch is emitted for this overload. An error from + /// is rethrown on the thread that raised it. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable InvokeCommand(this IObservable source, ICommand command) => + CommandBinding.CommandInvoker.Invoke(source, command); + + /// Executes the command a property holds with each value as its parameter, skipping a value while there is no command or the command cannot execute it. + /// The type of the value offered as the command parameter. + /// The type declaring the command property. + /// The sequence driving the executions. + /// The object declaring the command property; null executes nothing. + /// An expression that selects the command property to execute. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// A disposable that, when disposed, stops executing the command and stops observing the property. + /// No generated InvokeCommand dispatch matched this call site. Use InvokeCommandUnsafe to resolve the expression at run time. + public static IDisposable InvokeCommand( + this IObservable source, + TTarget? target, + Expression> commandProperty, + [CallerArgumentExpression("commandProperty")] string commandPropertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TTarget : class + => throw new InvalidOperationException(NoInvokeCommandDispatchMessage); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.Unsafe.cs new file mode 100644 index 00000000..e32c06bf --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.Unsafe.cs @@ -0,0 +1,1095 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Backs a read-only property with an observable, resolving the property and its notifications by reflection. +/// +/// The opt-in half of ToProperty, for a call site the generator could not read: a property named by a string +/// that is not a constant, or a source type whose notifications generated code cannot raise. These read the property +/// name and find the members that raise its notifications at run time, and are annotated so a consumer publishing +/// trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Backs the selected read-only property with the observable's latest value, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), false, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with optionally deferred + /// subscription, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), deferSubscription, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with a scheduler for its change + /// notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), false, scheduler); + + /// + /// Backs the selected read-only property with the observable's latest value, with optionally deferred + /// subscription and a scheduler for its change notifications, resolving the property and its notifications by + /// reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), deferSubscription, scheduler); + + /// Backs the selected read-only property with the observable's latest value, with an initial value, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + TRet initialValue) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, false, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value and a + /// scheduler for its change notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + TRet initialValue, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, false, scheduler); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value and optionally + /// deferred subscription, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + TRet initialValue, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, deferSubscription, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, deferSubscription, scheduler); + + /// Backs the selected read-only property with the observable's latest value, with an initial value factory, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + Func getInitialValue) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, false, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and a + /// scheduler for its change notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Returns the value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + Func getInitialValue, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, false, scheduler); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + Func getInitialValue, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, deferSubscription, null); + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, deferSubscription, scheduler); + + /// + /// Backs the selected read-only property with the observable's latest value and also returns it through an out + /// parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), false, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with optionally deferred + /// subscription and also returns it through an out parameter, resolving the property and its notifications by + /// reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + bool deferSubscription) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), deferSubscription, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with optionally deferred + /// subscription and a scheduler for its change notifications and also returns it through an out parameter, + /// resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), default(TRet), deferSubscription, scheduler); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value and also + /// returns it through an out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + TRet initialValue) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, false, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value and optionally + /// deferred subscription and also returns it through an out parameter, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + TRet initialValue, + bool deferSubscription) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, deferSubscription, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications and also returns it through an out + /// parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), initialValue, deferSubscription, scheduler); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and + /// also returns it through an out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + Func getInitialValue) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, false, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription and also returns it through an out parameter, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, deferSubscription, null); + return result; + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications and also returns it through an + /// out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A selector of the form x => x.Property that names the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + Expression> property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = CreateUnsafeHelper(target, source, ReadUnsafePropertyName(property), getInitialValue, deferSubscription, scheduler); + return result; + } + + /// Backs the named read-only property with the observable's latest value, with an initial value, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + TRet initialValue) + where TObj : class + => CreateUnsafeHelper(target, source, property, initialValue, false, null); + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value and a scheduler + /// for its change notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + TRet initialValue, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, property, initialValue, false, scheduler); + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value and optionally + /// deferred subscription, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + TRet initialValue, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, property, initialValue, deferSubscription, null); + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, property, initialValue, deferSubscription, scheduler); + + /// Backs the named read-only property with the observable's latest value, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property) + where TObj : class + => CreateUnsafeHelper(target, source, property, default(TRet), false, null); + + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, property, default(TRet), deferSubscription, null); + + /// + /// Backs the named read-only property with the observable's latest value, with a scheduler for its change + /// notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, property, default(TRet), false, scheduler); + + /// + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription + /// and a scheduler for its change notifications, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, property, default(TRet), deferSubscription, scheduler); + + /// Backs the named read-only property with the observable's latest value, with an initial value factory, resolving the property and its notifications by reflection. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + Func getInitialValue) + where TObj : class + => CreateUnsafeHelper(target, source, property, getInitialValue, false, null); + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + Func getInitialValue, + bool deferSubscription) + where TObj : class + => CreateUnsafeHelper(target, source, property, getInitialValue, deferSubscription, null); + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + => CreateUnsafeHelper(target, source, property, getInitialValue, deferSubscription, scheduler); + + /// + /// Backs the named read-only property with the observable's latest value and also returns it through an out + /// parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, default(TRet), false, null); + return result; + } + + /// + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription + /// and also returns it through an out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + bool deferSubscription) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, default(TRet), deferSubscription, null); + return result; + } + + /// + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription + /// and a scheduler for its change notifications and also returns it through an out parameter, resolving the + /// property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, default(TRet), deferSubscription, scheduler); + return result; + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory and also + /// returns it through an out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, getInitialValue, false, null); + return result; + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription and also returns it through an out parameter, resolving the property and its + /// notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, getInitialValue, deferSubscription, null); + return result; + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications and also returns it through an + /// out parameter, resolving the property and its notifications by reflection. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// The source's type raises no change notification reflection can reach. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + public static ObservableAsPropertyHelper ToPropertyUnsafe( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = CreateUnsafeHelper(target, source, property, getInitialValue, deferSubscription, scheduler); + return result; + } + + /// Creates a helper whose notifications are raised by reflection, with a plain initial value. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The property name. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + private static ObservableAsPropertyHelper CreateUnsafeHelper( + IObservable target, + TObj source, + string propertyName, + TRet? initialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + var raiser = CreateUnsafeRaiser(source, propertyName); + return ObservableAsPropertyHelper.Create( + target, + raiser, + static (owner, _) => ((RuntimePropertyRaiser)owner!).RaiseChanged(), + raiser.RaisesChanging ? static (owner, _) => ((RuntimePropertyRaiser)owner!).RaiseChanging() : null, + initialValue, + deferSubscription, + scheduler); + } + + /// Creates a helper whose notifications are raised by reflection, with an initial value factory. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The property name. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + private static ObservableAsPropertyHelper CreateUnsafeHelper( + IObservable target, + TObj source, + string propertyName, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(getInitialValue); + + var raiser = CreateUnsafeRaiser(source, propertyName); + return ObservableAsPropertyHelper.Create( + target, + raiser, + static (owner, _) => ((RuntimePropertyRaiser)owner!).RaiseChanged(), + raiser.RaisesChanging ? static (owner, _) => ((RuntimePropertyRaiser)owner!).RaiseChanging() : null, + getInitialValue!, + deferSubscription, + scheduler); + } + + /// Checks the arguments and finds the members that raise the property's notifications. + /// The type of the object that declares the property. + /// The object that declares the property and raises its change notifications. + /// The property name. + /// The raiser. + [RequiresUnreferencedCode(RuntimePropertyRaiser.RequiresUnreferencedCodeMessage)] + [RequiresDynamicCode(RuntimePropertyRaiser.RequiresDynamicCodeMessage)] + private static RuntimePropertyRaiser CreateUnsafeRaiser(TObj source, string propertyName) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNullOrWhiteSpace(propertyName); + + return RuntimePropertyRaiser.Create(source, propertyName); + } + + /// Reads the property name from a selector of the form x => x.Property. + /// The type of the object that declares the property. + /// The type of the property value. + /// The selector. + /// The property name. + /// The selector does not read one member straight off its parameter. + private static string ReadUnsafePropertyName(Expression> property) + { + ArgumentExceptionHelper.ThrowIfNull(property); + + var body = property.Body is UnaryExpression { NodeType: ExpressionType.Convert } convert ? convert.Operand : property.Body; + return body is MemberExpression { Expression: ParameterExpression } member + ? member.Member.Name + : throw new ArgumentException("Name the property with a selector of the form x => x.Property.", nameof(property)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.cs new file mode 100644 index 00000000..6f4c94b2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.ToProperty.cs @@ -0,0 +1,1025 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Extension methods that turn an observable into the backing store of a read-only property (ToProperty). +/// These generic stubs throw when no concrete generated overload is found; the source generator emits +/// concrete typed overloads that C# overload resolution prefers over these generic stubs. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a ToProperty call site. + private const string NoToPropertyDispatchMessage = + "No generated ToProperty dispatch matched this call site. Name the property with a lambda of the form x => x.Property, " + + "or with a constant such as nameof(Property), on a type whose change notifications generated code can raise; " + + "otherwise construct ObservableAsPropertyHelper directly."; + + /// Backs the selected read-only property with the observable's latest value. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with optionally deferred subscription and a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The value the property holds before the observable produces one. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + TRet initialValue, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value and a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + TRet initialValue, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value and optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + TRet initialValue, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value factory. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Returns the value the property holds before the observable produces one. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + Func getInitialValue, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Returns the value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + Func getInitialValue, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + Func getInitialValue, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with optionally deferred subscription and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with optionally deferred + /// subscription and a scheduler for its change notifications and also returns it through an out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + TRet initialValue, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value and optionally + /// deferred subscription and also returns it through an out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + TRet initialValue, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications and also returns it through an out + /// parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + [OverloadResolutionPriority(1)] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription and also returns it through an out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the selected read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications and also returns it through an + /// out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// A lambda of the form x => x.Property that names the property; the generator reads it when you build, and nothing calls it. + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + [SuppressMessage("Design", "SST1472", Justification = "parameter count is inherent to the API/overload under test")] + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + Func property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler, + [CallerArgumentExpression("property")] string propertyExpression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + TRet initialValue) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value and a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The value the property holds before the observable produces one. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + TRet initialValue, + ISequencer? scheduler) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value and optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + TRet initialValue, + bool deferSubscription) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value, optionally + /// deferred subscription and a scheduler for its change notifications. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + TRet initialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + bool deferSubscription) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + ISequencer? scheduler) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription and a scheduler for its change notifications. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value factory. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + Func getInitialValue) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value factory and optionally deferred subscription. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + Func getInitialValue, + bool deferSubscription) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + bool deferSubscription) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the named read-only property with the observable's latest value, with optionally deferred subscription + /// and a scheduler for its change notifications and also returns it through an out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// Backs the named read-only property with the observable's latest value, with an initial value factory and also returns it through an out parameter. + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory and + /// optionally deferred subscription and also returns it through an out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } + + /// + /// Backs the named read-only property with the observable's latest value, with an initial value factory, + /// optionally deferred subscription and a scheduler for its change notifications and also returns it through an + /// out parameter. + /// + /// The type of the object that declares the property. + /// The type of the property value. + /// The observable whose values the property takes. + /// The object that declares the property and raises its change notifications. + /// The name of the property, as a constant such as nameof(Property). + /// Receives the helper, so it can be assigned to a field inside an expression. + /// Returns the value the property holds before the observable produces one. + /// Whether to wait for the first read of the property's value before subscribing. + /// The scheduler change notifications are raised on, or null to raise them on the producing thread. + /// The helper that holds the property's current value. + /// No generated ToProperty dispatch matched this call site. + public static ObservableAsPropertyHelper ToProperty( + this IObservable target, + TObj source, + string property, + out ObservableAsPropertyHelper result, + Func getInitialValue, + bool deferSubscription, + ISequencer? scheduler) + where TObj : class + { + result = null!; + throw new InvalidOperationException(NoToPropertyDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.Unsafe.cs new file mode 100644 index 00000000..0ce3e037 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.Unsafe.cs @@ -0,0 +1,996 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenAny expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenAny. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Observes a property by reflection and applies a selector to its observed change, on subscription and after each change. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Func, TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + + return new MapSignal, TRet>( + sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false), + selector); + } + + /// + /// Observes 2 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Func, IObservedChange, TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + (c1, c2) => selector(c1, c2)); + } + + /// + /// Observes 3 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func, IObservedChange, IObservedChange, TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + (c1, c2, c3) => selector(c1, c2, c3)); + } + + /// + /// Observes 4 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + (c1, c2, c3, c4) => selector(c1, c2, c3, c4)); + } + + /// + /// Observes 5 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + (c1, c2, c3, c4, c5) => selector(c1, c2, c3, c4, c5)); + } + + /// + /// Observes 6 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + (c1, c2, c3, c4, c5, c6) => selector(c1, c2, c3, c4, c5, c6)); + } + + /// + /// Observes 7 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + (c1, c2, c3, c4, c5, c6, c7) => selector(c1, c2, c3, c4, c5, c6, c7)); + } + + /// + /// Observes 8 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + var o8 = sender.SubscribeToExpressionChain( + property8.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + (c1, c2, c3, c4, c5, c6, c7, c8) => selector(c1, c2, c3, c4, c5, c6, c7, c8)); + } + + /// + /// Observes 9 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + var o8 = sender.SubscribeToExpressionChain( + property8.Body, + skipInitial: false); + var o9 = sender.SubscribeToExpressionChain( + property9.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + (c1, c2, c3, c4, c5, c6, c7, c8, c9) => selector(c1, c2, c3, c4, c5, c6, c7, c8, c9)); + } + + /// + /// Observes 10 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + var o8 = sender.SubscribeToExpressionChain( + property8.Body, + skipInitial: false); + var o9 = sender.SubscribeToExpressionChain( + property9.Body, + skipInitial: false); + var o10 = sender.SubscribeToExpressionChain( + property10.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) => selector(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10)); + } + + /// + /// Observes 11 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The type of property 11 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// An expression that selects property 11 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + var o8 = sender.SubscribeToExpressionChain( + property8.Body, + skipInitial: false); + var o9 = sender.SubscribeToExpressionChain( + property9.Body, + skipInitial: false); + var o10 = sender.SubscribeToExpressionChain( + property10.Body, + skipInitial: false); + var o11 = sender.SubscribeToExpressionChain( + property11.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + o11, + (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) => selector(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)); + } + + /// + /// Observes 12 properties by reflection and applies a selector to their observed changes, first on subscription and again after any of them changes. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The type of property 11 value. + /// The type of property 12 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// An expression that selects property 11 to observe. + /// An expression that selects property 12 to observe. + /// A function that combines the observed changes into a result. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = sender.SubscribeToExpressionChain( + property1.Body, + skipInitial: false); + var o2 = sender.SubscribeToExpressionChain( + property2.Body, + skipInitial: false); + var o3 = sender.SubscribeToExpressionChain( + property3.Body, + skipInitial: false); + var o4 = sender.SubscribeToExpressionChain( + property4.Body, + skipInitial: false); + var o5 = sender.SubscribeToExpressionChain( + property5.Body, + skipInitial: false); + var o6 = sender.SubscribeToExpressionChain( + property6.Body, + skipInitial: false); + var o7 = sender.SubscribeToExpressionChain( + property7.Body, + skipInitial: false); + var o8 = sender.SubscribeToExpressionChain( + property8.Body, + skipInitial: false); + var o9 = sender.SubscribeToExpressionChain( + property9.Body, + skipInitial: false); + var o10 = sender.SubscribeToExpressionChain( + property10.Body, + skipInitial: false); + var o11 = sender.SubscribeToExpressionChain( + property11.Body, + skipInitial: false); + var o12 = sender.SubscribeToExpressionChain( + property12.Body, + skipInitial: false); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + o11, + o12, + (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) => + selector(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.cs new file mode 100644 index 00000000..925b6872 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAny.WideArity.cs @@ -0,0 +1,817 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for observing property changes with IObservedChange context (WhenAny). +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a WhenAny call site. + private const string NoWhenAnyDispatchMessage = + "No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time."; + + /// Observes 1 property and emits the selector applied to its observed change, on subscription and after each change. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Func, TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 2 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Func, IObservedChange, TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 3 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func, IObservedChange, IObservedChange, TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 4 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 5 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 6 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 7 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 8 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 9 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 10 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 11 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The type of property 11 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// An expression that selects property 11 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } + + /// Observes 12 properties and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The type of property 1 value. + /// The type of property 2 value. + /// The type of property 3 value. + /// The type of property 4 value. + /// The type of property 5 value. + /// The type of property 6 value. + /// The type of property 7 value. + /// The type of property 8 value. + /// The type of property 9 value. + /// The type of property 10 value. + /// The type of property 11 value. + /// The type of property 12 value. + /// The sender instance to observe for property changes. + /// An expression that selects property 1 to observe. + /// An expression that selects property 2 to observe. + /// An expression that selects property 3 to observe. + /// An expression that selects property 4 to observe. + /// An expression that selects property 5 to observe. + /// An expression that selects property 6 to observe. + /// An expression that selects property 7 to observe. + /// An expression that selects property 8 to observe. + /// An expression that selects property 9 to observe. + /// An expression that selects property 10 to observe. + /// An expression that selects property 11 to observe. + /// An expression that selects property 12 to observe. + /// A function that combines the observed changes into a result. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable of selector results, emitted on subscription and whenever an observed property changes. + /// No generated WhenAny dispatch matched this call site. Use WhenAnyUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAny( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyDynamic.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyDynamic.WideArity.cs new file mode 100644 index 00000000..51b411f8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyDynamic.WideArity.cs @@ -0,0 +1,972 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Observes property chains that are only known as expressions at run time. +/// +/// These overloads take an the caller built rather than a lambda the compiler can +/// read, so no generator resolves them: the chain is always walked by reflection, and the overloads are +/// annotated as not trim- or AOT-safe. +/// +/// The chain walking is the engine the runtime observation fallback uses: it resolves each link, +/// re-subscribes a deeper link when an intermediate value changes, and filters duplicates. +/// Each arity differs only in how many chains it combines. +/// +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Why every overload here is unsafe to trim. + private const string DynamicChainRequiresUnreferencedCode = + "Evaluates expression-based member chains via reflection; members may be trimmed."; + + /// Observes 1 property chain named by a run-time expression and emits the selector applied to its observed change, on subscription and after each change. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Func, TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, selector, true); + + /// Observes 1 property chain named by a run-time expression and emits the selector applied to its observed change, on subscription and after each change. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Func, TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1); + return new MapSignal, TRet>(chains[0], selector); + } + + /// Observes 2 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Func, IObservedChange, TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, selector, true); + + /// Observes 2 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Func, IObservedChange, TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2); + return CombineLatestObservable.Create(chains[0], chains[1], selector); + } + + /// Observes 3 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Func, IObservedChange, IObservedChange, TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, selector, true); + + /// Observes 3 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Func, IObservedChange, IObservedChange, TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], selector); + } + + /// Observes 4 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, selector, true); + + /// Observes 4 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], selector); + } + + /// Observes 5 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, selector, true); + + /// Observes 5 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], selector); + } + + /// Observes 6 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, selector, true); + + /// Observes 6 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], selector); + } + + /// Observes 7 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, selector, true); + + /// Observes 7 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], selector); + } + + /// Observes 8 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, property8, selector, true); + + /// Observes 8 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7, property8); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], chains[7], selector); + } + + /// Observes 9 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, property8, property9, selector, true); + + /// Observes 9 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7, property8, property9); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], chains[7], chains[8], selector); + } + + /// Observes 10 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, selector, true); + + /// Observes 10 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7, property8, property9, property10); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], chains[7], chains[8], chains[9], selector); + } + + /// Observes 11 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// An expression naming property 11. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11, selector, true); + + /// Observes 11 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// An expression naming property 11. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], chains[7], chains[8], chains[9], chains[10], selector); + } + + /// Observes 12 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// An expression naming property 11. + /// An expression naming property 12. + /// Projects the observed changes into a result. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Expression? property12, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector) + where TSender : class + => sender.WhenAnyDynamic(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11, property12, selector, true); + + /// Observes 12 property chains named by run-time expressions and emits the selector applied to their observed changes, on subscription and whenever any of them changes. + /// The type of the object the chains are rooted on. + /// The type of the projected result. + /// The object the chains are rooted on. + /// An expression naming property 1. + /// An expression naming property 2. + /// An expression naming property 3. + /// An expression naming property 4. + /// An expression naming property 5. + /// An expression naming property 6. + /// An expression naming property 7. + /// An expression naming property 8. + /// An expression naming property 9. + /// An expression naming property 10. + /// An expression naming property 11. + /// An expression naming property 12. + /// Projects the observed changes into a result. + /// Whether a chain reports only when its value changes. + /// An observable of selector results. + /// or is null. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [SuppressMessage("Design", "SST1472", Justification = "one expression per observed chain; the parameter count is the shape of this overload")] + public static IObservable WhenAnyDynamic( + this TSender sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Expression? property12, + Func< + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + IObservedChange, + TRet> selector, + bool isDistinct) + where TSender : class + { + var chains = Chains(sender, selector, isDistinct, property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11, property12); + return CombineLatestObservable.Create(chains[0], chains[1], chains[2], chains[3], chains[4], chains[5], chains[6], chains[7], chains[8], chains[9], chains[10], chains[11], selector); + } + + /// Subscribes to every chain an overload was handed, after refusing a missing argument. + /// The type of the object the chains are rooted on. + /// The object the chains are rooted on. + /// The projection the caller supplied, which is required. + /// Whether a chain reports only when its value changes. + /// The expressions naming the chains. + /// One observation per chain, in the order the chains were given. + /// + /// Every arity funnels its argument checks and its subscriptions through here, so each overload is the + /// signature and nothing else. The array is built once when the observable is created rather than per + /// notification, so a higher arity costs one allocation at subscription and nothing while it reports. + /// + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + private static IObservable>[] Chains( + TSender sender, + object selector, + bool isDistinct, + params Expression?[] properties) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var chains = new IObservable>[properties.Length]; + for (var i = 0; i < properties.Length; i++) + { + chains[i] = ObserveDynamicChain(sender, properties[i], isDistinct); + } + + return chains; + } + + /// Subscribes to one property chain named by a run-time expression. + /// The type of the object the chain is rooted on. + /// The object the chain is rooted on. + /// An expression naming the chain. + /// Whether the chain reports only when its value changes. + /// An observable of the chain's observed changes. + /// Every arity funnels through here, so the reflection is written once. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IObservable> ObserveDynamicChain( + TSender sender, + Expression? property, + bool isDistinct) + where TSender : class => + sender.SubscribeToExpressionChain(property, false, false, isDistinct); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.Unsafe.cs new file mode 100644 index 00000000..6ad2f5a1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.Unsafe.cs @@ -0,0 +1,700 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenAnyObservable expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenAnyObservable. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 3 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + return CombineLatestObservable.Create( + o1, + o2, + o3, + (v1, v2, v3) => selector(v1, v2, v3)); + } + + /// + /// Observes 4 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + (v1, v2, v3, v4) => selector(v1, v2, v3, v4)); + } + + /// + /// Observes 5 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + (v1, v2, v3, v4, v5) => selector(v1, v2, v3, v4, v5)); + } + + /// + /// Observes 6 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + (v1, v2, v3, v4, v5, v6) => selector(v1, v2, v3, v4, v5, v6)); + } + + /// + /// Observes 7 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + (v1, v2, v3, v4, v5, v6, v7) => selector(v1, v2, v3, v4, v5, v6, v7)); + } + + /// + /// Observes 8 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + var o8 = ObservableChainHelpers.SwitchLatest(sender, obs8); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + (v1, v2, v3, v4, v5, v6, v7, v8) => selector(v1, v2, v3, v4, v5, v6, v7, v8)); + } + + /// + /// Observes 9 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + var o8 = ObservableChainHelpers.SwitchLatest(sender, obs8); + var o9 = ObservableChainHelpers.SwitchLatest(sender, obs9); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + (v1, v2, v3, v4, v5, v6, v7, v8, v9) => selector(v1, v2, v3, v4, v5, v6, v7, v8, v9)); + } + + /// + /// Observes 10 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + var o8 = ObservableChainHelpers.SwitchLatest(sender, obs8); + var o9 = ObservableChainHelpers.SwitchLatest(sender, obs9); + var o10 = ObservableChainHelpers.SwitchLatest(sender, obs10); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + selector); + } + + /// + /// Observes 11 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The element type of observable property 11. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + ArgumentExceptionHelper.ThrowIfNull(obs11); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + var o8 = ObservableChainHelpers.SwitchLatest(sender, obs8); + var o9 = ObservableChainHelpers.SwitchLatest(sender, obs9); + var o10 = ObservableChainHelpers.SwitchLatest(sender, obs10); + var o11 = ObservableChainHelpers.SwitchLatest(sender, obs11); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + o11, + selector); + } + + /// + /// Observes 12 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The element type of observable property 11. + /// The element type of observable property 12. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// An expression that selects observable property 12 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Expression?>> obs12, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + ArgumentExceptionHelper.ThrowIfNull(obs11); + ArgumentExceptionHelper.ThrowIfNull(obs12); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + var o3 = ObservableChainHelpers.SwitchLatest(sender, obs3); + var o4 = ObservableChainHelpers.SwitchLatest(sender, obs4); + var o5 = ObservableChainHelpers.SwitchLatest(sender, obs5); + var o6 = ObservableChainHelpers.SwitchLatest(sender, obs6); + var o7 = ObservableChainHelpers.SwitchLatest(sender, obs7); + var o8 = ObservableChainHelpers.SwitchLatest(sender, obs8); + var o9 = ObservableChainHelpers.SwitchLatest(sender, obs9); + var o10 = ObservableChainHelpers.SwitchLatest(sender, obs10); + var o11 = ObservableChainHelpers.SwitchLatest(sender, obs11); + var o12 = ObservableChainHelpers.SwitchLatest(sender, obs12); + return CombineLatestObservable.Create( + o1, + o2, + o3, + o4, + o5, + o6, + o7, + o8, + o9, + o10, + o11, + o12, + selector); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.cs new file mode 100644 index 00000000..c9a56dce --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.Extended.WideArity.cs @@ -0,0 +1,621 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// The higher-arity WhenAnyObservable overloads, which combine the latest value of each observable property with a selector. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 3 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 4 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 5 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 6 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 7 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 8 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 9 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 10 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 11 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The element type of observable property 11. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerArgumentExpression("obs11")] string obs11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 12 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The element type of observable property 3. + /// The element type of observable property 4. + /// The element type of observable property 5. + /// The element type of observable property 6. + /// The element type of observable property 7. + /// The element type of observable property 8. + /// The element type of observable property 9. + /// The element type of observable property 10. + /// The element type of observable property 11. + /// The element type of observable property 12. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// An expression that selects observable property 12 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Expression?>> obs12, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerArgumentExpression("obs11")] string obs11Expression = "", + [CallerArgumentExpression("obs12")] string obs12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.Unsafe.cs new file mode 100644 index 00000000..5b3a9136 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.Unsafe.cs @@ -0,0 +1,631 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenAnyObservable expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenAnyObservable. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes an observable-valued property by reflection and emits the values of its current observable, switching when the property changes; a null observable emits nothing. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An observable sequence that emits values from the latest observed observable. + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + + return ObservableChainHelpers.SwitchLatest(sender, obs1); + } + + /// + /// Observes 2 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An observable sequence that emits values from the merged observed observables. + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 3 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 4 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 5 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 6 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 7 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 8 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + sender.WhenAnyObservableUnsafe(obs8), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 9 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + sender.WhenAnyObservableUnsafe(obs8), + sender.WhenAnyObservableUnsafe(obs9), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 10 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + sender.WhenAnyObservableUnsafe(obs8), + sender.WhenAnyObservableUnsafe(obs9), + sender.WhenAnyObservableUnsafe(obs10), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 11 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + ArgumentExceptionHelper.ThrowIfNull(obs11); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + sender.WhenAnyObservableUnsafe(obs8), + sender.WhenAnyObservableUnsafe(obs9), + sender.WhenAnyObservableUnsafe(obs10), + sender.WhenAnyObservableUnsafe(obs11), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 12 observable-valued properties by reflection and merges the values of their current observables, each switching when its property changes. + /// + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// An expression that selects observable property 12 to observe. + /// An observable sequence that emits values from the merged observed observables. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Expression?>> obs12) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(obs3); + ArgumentExceptionHelper.ThrowIfNull(obs4); + ArgumentExceptionHelper.ThrowIfNull(obs5); + ArgumentExceptionHelper.ThrowIfNull(obs6); + ArgumentExceptionHelper.ThrowIfNull(obs7); + ArgumentExceptionHelper.ThrowIfNull(obs8); + ArgumentExceptionHelper.ThrowIfNull(obs9); + ArgumentExceptionHelper.ThrowIfNull(obs10); + ArgumentExceptionHelper.ThrowIfNull(obs11); + ArgumentExceptionHelper.ThrowIfNull(obs12); + + IObservable[] sources = + [ + sender.WhenAnyObservableUnsafe(obs1), + sender.WhenAnyObservableUnsafe(obs2), + sender.WhenAnyObservableUnsafe(obs3), + sender.WhenAnyObservableUnsafe(obs4), + sender.WhenAnyObservableUnsafe(obs5), + sender.WhenAnyObservableUnsafe(obs6), + sender.WhenAnyObservableUnsafe(obs7), + sender.WhenAnyObservableUnsafe(obs8), + sender.WhenAnyObservableUnsafe(obs9), + sender.WhenAnyObservableUnsafe(obs10), + sender.WhenAnyObservableUnsafe(obs11), + sender.WhenAnyObservableUnsafe(obs12), + ]; + + return new EnumerableBlendSignal(sources); + } + + /// + /// Observes 2 observable-valued properties of different element types by reflection and applies a selector to their latest values once every observable has produced one. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// A function that combines the latest values from all observables. + /// An observable sequence of selector results. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static IObservable WhenAnyObservableUnsafe( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Func selector) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(obs1); + ArgumentExceptionHelper.ThrowIfNull(obs2); + ArgumentExceptionHelper.ThrowIfNull(selector); + + var o1 = ObservableChainHelpers.SwitchLatest(sender, obs1); + var o2 = ObservableChainHelpers.SwitchLatest(sender, obs2); + return CombineLatestObservable.Create( + o1, + o2, + (v1, v2) => selector(v1, v2)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.cs new file mode 100644 index 00000000..9b5dc4f8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyObservable.WideArity.cs @@ -0,0 +1,587 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Extension methods for observing properties that are themselves observables (WhenAnyObservable). +/// Automatically switches to the latest observable when the property value changes. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a WhenAnyObservable call site. + private const string NoWhenAnyObservableDispatchMessage = + "No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time."; + + /// Observes 1 observable property and emits the values of the observable it holds, switching when the property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable the property held. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 2 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 3 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 4 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 5 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 6 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 7 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 8 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 9 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 10 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 11 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerArgumentExpression("obs11")] string obs11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// Observes 12 observable properties and merges the values of the observables they hold, switching each when its property changes; a null value emits nothing. + /// The type of the sender to monitor for property changes. + /// The element type of the observed observables. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// An expression that selects observable property 3 to observe. + /// An expression that selects observable property 4 to observe. + /// An expression that selects observable property 5 to observe. + /// An expression that selects observable property 6 to observe. + /// An expression that selects observable property 7 to observe. + /// An expression that selects observable property 8 to observe. + /// An expression that selects observable property 9 to observe. + /// An expression that selects observable property 10 to observe. + /// An expression that selects observable property 11 to observe. + /// An expression that selects observable property 12 to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the values of the latest observable each property held, merged into one sequence. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Expression?>> obs12, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerArgumentExpression("obs3")] string obs3Expression = "", + [CallerArgumentExpression("obs4")] string obs4Expression = "", + [CallerArgumentExpression("obs5")] string obs5Expression = "", + [CallerArgumentExpression("obs6")] string obs6Expression = "", + [CallerArgumentExpression("obs7")] string obs7Expression = "", + [CallerArgumentExpression("obs8")] string obs8Expression = "", + [CallerArgumentExpression("obs9")] string obs9Expression = "", + [CallerArgumentExpression("obs10")] string obs10Expression = "", + [CallerArgumentExpression("obs11")] string obs11Expression = "", + [CallerArgumentExpression("obs12")] string obs12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } + + /// + /// Observes 2 observable properties of different element types and emits the selector applied to the latest value of each, once every observable has produced a value. + /// + /// The type of the sender to monitor for property changes. + /// The return type of the selector. + /// The element type of observable property 1. + /// The element type of observable property 2. + /// The sender instance to observe for property changes. + /// An expression that selects observable property 1 to observe. + /// An expression that selects observable property 2 to observe. + /// A function that combines the latest values from all observables. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result each time one of the observables produces a value, once every observable has produced one. + /// No generated WhenAnyObservable dispatch matched this call site. Use WhenAnyObservableUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyObservable( + this TSender sender, + Expression?>> obs1, + Expression?>> obs2, + Func selector, + [CallerArgumentExpression("obs1")] string obs1Expression = "", + [CallerArgumentExpression("obs2")] string obs2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyObservableDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.Unsafe.cs new file mode 100644 index 00000000..6d2c4a9a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.Unsafe.cs @@ -0,0 +1,1039 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenAnyValue expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenAnyValue. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes a property by reflection and emits the selector's result for its value, on subscription and after each change. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// A function that converts the observed property value to the return type. + /// An observable sequence that emits the selector result when the observed property changes. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Func selector) + where TSender : class + => new MapSignal(sender.WhenAnyValueUnsafe(property1), selector); + + /// + /// Observes 2 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Func selector) + where TSender : class + => new MapSignal, TRet>(sender.WhenAnyValueUnsafe(property1, property2), t => selector(t.Property1, t.Property2)); + + /// + /// Observes 3 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3), + t => selector(t.Property1, t.Property2, t.Property3)); + + /// + /// Observes 4 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4), + t => selector(t.Property1, t.Property2, t.Property3, t.Property4)); + + /// + /// Observes 5 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5), + t => selector(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5)); + + /// + /// Observes 6 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6), + t => selector(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5, t.Property6)); + + /// + /// Observes 7 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7)); + + /// + /// Observes 8 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8)); + + /// + /// Observes 9 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9)); + + /// + /// Observes 10 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10)); + + /// + /// Observes 11 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11)); + + /// + /// Observes 12 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12)); + + /// + /// Observes 13 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13)); + + /// + /// Observes 14 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14)); + + /// + /// Observes 15 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15)); + + /// + /// Observes 16 properties by reflection and emits the selector's result for their values, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the selector result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func selector) + where TSender : class + => new MapSignal, TRet>( + sender.WhenAnyValueUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15, + property16), + t => selector( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15, + t.Property16)); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.cs new file mode 100644 index 00000000..47f9da98 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.Selectors.WideArity.cs @@ -0,0 +1,1215 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Extension methods for observing property changes with a selector function using ReactiveUI conventions (WhenAnyValue with selector). +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 1 property and emits the result of a selector applied to its current value when subscribed and after each change. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// A function that converts the observed property value to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and after each change of the observed property. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 2 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 3 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 4 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 5 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 6 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 7 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 8 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 9 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 10 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 11 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 12 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 13 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 14 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 15 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + + /// + /// Observes 16 properties and emits the result of a selector applied to their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the selector function. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the selector result on subscription and whenever any of the observed properties changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TRet>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func selector, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + => throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.Unsafe.cs new file mode 100644 index 00000000..ae73fe61 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.Unsafe.cs @@ -0,0 +1,1076 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif +/// Observes property chains by reflection, for expressions the generator could not read (WhenAnyValue). +/// +/// These are the opt-in half of WhenAnyValue. The unsuffixed overloads resolve at compile time and throw when no +/// generated dispatch claimed the call site; these walk the chain by reflection instead, and say so, so a +/// consumer publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes a property by reflection, emitting its current value on subscription and its new value after each change. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An observable sequence that emits the property value when it changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenAnyValueUnsafe( + this TSender sender, + Expression> property1) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + + return RuntimeObservationFallback.WhenAnyValue(sender, property1); + } + + /// + /// Observes 2 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + static (v1, v2) => new PropertyValues(v1, v2)); + } + + /// + /// Observes 3 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + static (v1, v2, v3) => new PropertyValues(v1, v2, v3)); + } + + /// + /// Observes 4 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + static (v1, v2, v3, v4) => new PropertyValues(v1, v2, v3, v4)); + } + + /// + /// Observes 5 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + static (v1, v2, v3, v4, v5) => new PropertyValues(v1, v2, v3, v4, v5)); + } + + /// + /// Observes 6 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + static (v1, v2, v3, v4, v5, v6) => new PropertyValues(v1, v2, v3, v4, v5, v6)); + } + + /// + /// Observes 7 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + static (v1, v2, v3, v4, v5, v6, v7) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7)); + } + + /// + /// Observes 8 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + static (v1, v2, v3, v4, v5, v6, v7, v8) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8)); + } + + /// + /// Observes 9 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9)); + } + + /// + /// Observes 10 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)); + } + + /// + /// Observes 11 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)); + } + + /// + /// Observes 12 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + RuntimeObservationFallback.WhenAnyValue(sender, property12), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)); + } + + /// + /// Observes 13 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + RuntimeObservationFallback.WhenAnyValue(sender, property12), + RuntimeObservationFallback.WhenAnyValue(sender, property13), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)); + } + + /// + /// Observes 14 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + RuntimeObservationFallback.WhenAnyValue(sender, property12), + RuntimeObservationFallback.WhenAnyValue(sender, property13), + RuntimeObservationFallback.WhenAnyValue(sender, property14), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)); + } + + /// + /// Observes 15 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> + WhenAnyValueUnsafe( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + RuntimeObservationFallback.WhenAnyValue(sender, property12), + RuntimeObservationFallback.WhenAnyValue(sender, property13), + RuntimeObservationFallback.WhenAnyValue(sender, property14), + RuntimeObservationFallback.WhenAnyValue(sender, property15), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)); + } + + /// + /// Observes 16 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenAnyValueUnsafe< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16) + where TSender : class + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + ArgumentExceptionHelper.ThrowIfNull(property16); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenAnyValue(sender, property1), + RuntimeObservationFallback.WhenAnyValue(sender, property2), + RuntimeObservationFallback.WhenAnyValue(sender, property3), + RuntimeObservationFallback.WhenAnyValue(sender, property4), + RuntimeObservationFallback.WhenAnyValue(sender, property5), + RuntimeObservationFallback.WhenAnyValue(sender, property6), + RuntimeObservationFallback.WhenAnyValue(sender, property7), + RuntimeObservationFallback.WhenAnyValue(sender, property8), + RuntimeObservationFallback.WhenAnyValue(sender, property9), + RuntimeObservationFallback.WhenAnyValue(sender, property10), + RuntimeObservationFallback.WhenAnyValue(sender, property11), + RuntimeObservationFallback.WhenAnyValue(sender, property12), + RuntimeObservationFallback.WhenAnyValue(sender, property13), + RuntimeObservationFallback.WhenAnyValue(sender, property14), + RuntimeObservationFallback.WhenAnyValue(sender, property15), + RuntimeObservationFallback.WhenAnyValue(sender, property16), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.cs new file mode 100644 index 00000000..fb24f588 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenAnyValue.WideArity.cs @@ -0,0 +1,1230 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for observing property changes using ReactiveUI conventions (WhenAnyValue). +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a WhenAnyValue call site. + private const string NoWhenAnyValueDispatchMessage = + "No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time."; + + /// + /// Observes a property and emits its current value when subscribed, then its new value after each change that alters it. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the current value on subscription and the new value after each change that alters it. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + public static IObservable WhenAnyValue( + this TSender sender, + Expression> property1, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 2 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + public static IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 3 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 4 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 5 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 6 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> + WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 7 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 8 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 9 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 10 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 11 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 12 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 13 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 14 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 15 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } + + /// + /// Observes 16 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. This is a ReactiveUI compatibility shim. + /// + /// The type of the sender to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The sender instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenAnyValue dispatch matched this call site. Use WhenAnyValueUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenAnyValue< + TSender, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TSender sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TSender : class + { + throw new InvalidOperationException(NoWhenAnyValueDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.Unsafe.cs new file mode 100644 index 00000000..00e0a58e --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.Unsafe.cs @@ -0,0 +1,1039 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenChanged expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenChanged. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 2 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2), + t => conversionFunc(t.Property1, t.Property2)); + + /// + /// Observes 3 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3), + t => conversionFunc(t.Property1, t.Property2, t.Property3)); + + /// + /// Observes 4 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4)); + + /// + /// Observes 5 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5)); + + /// + /// Observes 6 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5, t.Property6)); + + /// + /// Observes 7 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7)); + + /// + /// Observes 8 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8)); + + /// + /// Observes 9 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9)); + + /// + /// Observes 10 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10)); + + /// + /// Observes 11 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11)); + + /// + /// Observes 12 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12)); + + /// + /// Observes 13 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13)); + + /// + /// Observes 14 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14)); + + /// + /// Observes 15 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15)); + + /// + /// Observes 16 properties by reflection and emits the conversion function's result for their values, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result when any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangedUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15, + property16), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15, + t.Property16)); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.cs new file mode 100644 index 00000000..65c64293 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.Selectors.WideArity.cs @@ -0,0 +1,1203 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for observing property changes with a conversion function (WhenChanged with selector). +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 2 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 3 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 4 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 5 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 6 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 7 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 8 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 9 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 10 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 11 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 12 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 13 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 14 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 15 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); + + /// + /// Observes 16 properties and emits the result of applying a conversion function to their current values when subscribed and whenever any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and whenever any of the observed properties changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangedDispatchMessage); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.Unsafe.cs new file mode 100644 index 00000000..22750260 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.Unsafe.cs @@ -0,0 +1,1067 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif +/// Observes property chains by reflection, for expressions the generator could not read (WhenChanged). +/// +/// These are the opt-in half of WhenChanged. The unsuffixed overloads resolve at compile time and throw when no +/// generated dispatch claimed the call site; these walk the chain by reflection instead, and say so, so a +/// consumer publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Observes a property by reflection, emitting its current value on subscription and its new value after each change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An observable sequence that emits the property value when it changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + + return RuntimeObservationFallback.WhenChanged(objectToMonitor, property1); + } + + /// + /// Observes 2 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + + return RuntimeObservationFallback.WhenChanged(objectToMonitor, property1, property2); + } + + /// + /// Observes 3 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + + return RuntimeObservationFallback.WhenChanged(objectToMonitor, property1, property2, property3); + } + + /// + /// Observes 4 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + static (v1, v2, v3, v4) => new PropertyValues(v1, v2, v3, v4)); + } + + /// + /// Observes 5 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + static (v1, v2, v3, v4, v5) => new PropertyValues(v1, v2, v3, v4, v5)); + } + + /// + /// Observes 6 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + static (v1, v2, v3, v4, v5, v6) => new PropertyValues(v1, v2, v3, v4, v5, v6)); + } + + /// + /// Observes 7 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + static (v1, v2, v3, v4, v5, v6, v7) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7)); + } + + /// + /// Observes 8 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + static (v1, v2, v3, v4, v5, v6, v7, v8) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8)); + } + + /// + /// Observes 9 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9)); + } + + /// + /// Observes 10 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)); + } + + /// + /// Observes 11 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)); + } + + /// + /// Observes 12 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property12), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)); + } + + /// + /// Observes 13 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property13), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)); + } + + /// + /// Observes 14 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property14), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)); + } + + /// + /// Observes 15 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> + WhenChangedUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property14), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property15), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)); + } + + /// + /// Observes 16 properties by reflection and emits their values as a tuple, first on subscription and again after any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values when any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangedUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + ArgumentExceptionHelper.ThrowIfNull(property16); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanged(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property14), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property15), + RuntimeObservationFallback.WhenChanged(objectToMonitor, property16), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.cs new file mode 100644 index 00000000..1e19a3e7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanged.WideArity.cs @@ -0,0 +1,1198 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for observing property changes after they occur (WhenChanged). +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a WhenChanged call site. + private const string NoWhenChangedDispatchMessage = + "No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time."; + + /// Observes a property and emits its current value when subscribed, then its new value after each change that alters it. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the current value on subscription and the new value after each change that alters it. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + public static IObservable WhenChanged( + this TObj objectToMonitor, + Expression> property1, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 2 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + public static IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 3 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 4 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 5 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 6 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> + WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 7 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 8 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 9 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 10 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 11 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 12 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 13 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 14 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 15 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } + + /// Observes 16 properties and emits a PropertyValues of their current values when subscribed and whenever any of them changes. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and whenever any of them changes. + /// No generated WhenChanged dispatch matched this call site. Use WhenChangedUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanged< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangedDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.Unsafe.cs new file mode 100644 index 00000000..a1f54ac6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.Unsafe.cs @@ -0,0 +1,1039 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Resolves a WhenChanging expression by reflection, for a call site the generator could not read. +/// +/// The opt-in half of WhenChanging. The unsuffixed overloads resolve at compile time and throw when no generated +/// dispatch claimed the call site; these walk the chain by reflection instead, and are annotated so a consumer +/// publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 2 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2), + t => conversionFunc(t.Property1, t.Property2)); + + /// + /// Observes 3 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3), + t => conversionFunc(t.Property1, t.Property2, t.Property3)); + + /// + /// Observes 4 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4)); + + /// + /// Observes 5 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5)); + + /// + /// Observes 6 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6), + t => conversionFunc(t.Property1, t.Property2, t.Property3, t.Property4, t.Property5, t.Property6)); + + /// + /// Observes 7 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7)); + + /// + /// Observes 8 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8)); + + /// + /// Observes 9 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9)); + + /// + /// Observes 10 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10)); + + /// + /// Observes 11 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11)); + + /// + /// Observes 12 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12)); + + /// + /// Observes 13 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13)); + + /// + /// Observes 14 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14)); + + /// + /// Observes 15 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15)); + + /// + /// Observes 16 properties by reflection and emits the conversion function's result for their values, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// An observable sequence that emits the converted result before any of the observed properties changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func conversionFunc) + where TObj : class + => new MapSignal, TReturn>( + objectToMonitor.WhenChangingUnsafe( + property1, + property2, + property3, + property4, + property5, + property6, + property7, + property8, + property9, + property10, + property11, + property12, + property13, + property14, + property15, + property16), + t => conversionFunc( + t.Property1, + t.Property2, + t.Property3, + t.Property4, + t.Property5, + t.Property6, + t.Property7, + t.Property8, + t.Property9, + t.Property10, + t.Property11, + t.Property12, + t.Property13, + t.Property14, + t.Property15, + t.Property16)); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.cs new file mode 100644 index 00000000..ea3b670f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.Selectors.WideArity.cs @@ -0,0 +1,1205 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Extension methods for observing property changes with a conversion function before they occur (WhenChanging with selector). +/// +public static partial class ReactiveUIBindingExtensions +{ + /// + /// Observes 2 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 3 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 4 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 5 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 6 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 7 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 8 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 9 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 10 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 11 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 12 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 13 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 14 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 15 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); + + /// + /// Observes 16 properties and emits the result of applying a conversion function to their values when subscribed and each time one of them is about to change. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The return type of the conversion function. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// A function that converts the observed property values to the return type. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the conversion result on subscription and each time one of the observed properties is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TReturn>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + Func conversionFunc, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + => throw new InvalidOperationException(NoWhenChangingDispatchMessage); +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.Unsafe.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.Unsafe.cs new file mode 100644 index 00000000..602d11ae --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.Unsafe.cs @@ -0,0 +1,1074 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif +/// Observes property chains by reflection, for expressions the generator could not read (WhenChanging). +/// +/// These are the opt-in half of WhenChanging. The unsuffixed overloads resolve at compile time and throw when no +/// generated dispatch claimed the call site; these walk the chain by reflection instead, and say so, so a +/// consumer publishing trimmed or ahead-of-time sees the requirement at their own call site. +/// +public static partial class ReactiveUIBindingExtensions +{ + /// Observes a property by reflection, emitting its current value on subscription and its value before each change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An observable sequence that emits the property value before it changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + + return RuntimeObservationFallback.WhenChanging(objectToMonitor, property1); + } + + /// + /// Observes 2 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + static (v1, v2) => new PropertyValues(v1, v2)); + } + + /// + /// Observes 3 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + static (v1, v2, v3) => new PropertyValues(v1, v2, v3)); + } + + /// + /// Observes 4 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + static (v1, v2, v3, v4) => new PropertyValues(v1, v2, v3, v4)); + } + + /// + /// Observes 5 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + static (v1, v2, v3, v4, v5) => new PropertyValues(v1, v2, v3, v4, v5)); + } + + /// + /// Observes 6 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + static (v1, v2, v3, v4, v5, v6) => new PropertyValues(v1, v2, v3, v4, v5, v6)); + } + + /// + /// Observes 7 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + static (v1, v2, v3, v4, v5, v6, v7) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7)); + } + + /// + /// Observes 8 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + static (v1, v2, v3, v4, v5, v6, v7, v8) => new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8)); + } + + /// + /// Observes 9 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9)); + } + + /// + /// Observes 10 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)); + } + + /// + /// Observes 11 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)); + } + + /// + /// Observes 12 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property12), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)); + } + + /// + /// Observes 13 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property13), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)); + } + + /// + /// Observes 14 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property14), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)); + } + + /// + /// Observes 15 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> + WhenChangingUnsafe( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property14), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property15), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) => + + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)); + } + + /// + /// Observes 16 properties by reflection and emits their values as a tuple, first on subscription and again before any of them changes. + /// + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// An observable sequence that emits a tuple of all observed property values before any of them changes. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + [RequiresUnreferencedCode(DynamicChainRequiresUnreferencedCode)] + public static IObservable> WhenChangingUnsafe< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16) + where TObj : class + { + ArgumentExceptionHelper.ThrowIfNull(objectToMonitor); + ArgumentExceptionHelper.ThrowIfNull(property1); + ArgumentExceptionHelper.ThrowIfNull(property2); + ArgumentExceptionHelper.ThrowIfNull(property3); + ArgumentExceptionHelper.ThrowIfNull(property4); + ArgumentExceptionHelper.ThrowIfNull(property5); + ArgumentExceptionHelper.ThrowIfNull(property6); + ArgumentExceptionHelper.ThrowIfNull(property7); + ArgumentExceptionHelper.ThrowIfNull(property8); + ArgumentExceptionHelper.ThrowIfNull(property9); + ArgumentExceptionHelper.ThrowIfNull(property10); + ArgumentExceptionHelper.ThrowIfNull(property11); + ArgumentExceptionHelper.ThrowIfNull(property12); + ArgumentExceptionHelper.ThrowIfNull(property13); + ArgumentExceptionHelper.ThrowIfNull(property14); + ArgumentExceptionHelper.ThrowIfNull(property15); + ArgumentExceptionHelper.ThrowIfNull(property16); + + return CombineLatestObservable.Create( + RuntimeObservationFallback.WhenChanging(objectToMonitor, property1), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property2), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property3), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property4), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property5), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property6), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property7), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property8), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property9), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property10), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property11), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property12), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property13), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property14), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property15), + RuntimeObservationFallback.WhenChanging(objectToMonitor, property16), + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) => + new PropertyValues(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.cs b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.cs new file mode 100644 index 00000000..a7df4f2a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Mixins/ReactiveUIBindingExtensions.WhenChanging.WideArity.cs @@ -0,0 +1,1198 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Extension methods for observing property changes before they occur (WhenChanging). +public static partial class ReactiveUIBindingExtensions +{ + /// Reported when no generated dispatch claimed a WhenChanging call site. + private const string NoWhenChangingDispatchMessage = + "No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time."; + + /// Observes a property and emits its current value when subscribed, then the value it holds just before each change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits the current value on subscription and the value held before each change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + public static IObservable WhenChanging( + this TObj objectToMonitor, + Expression> property1, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 2 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + public static IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 3 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + public static IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 4 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 5 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 6 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static IObservable> + WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 7 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 8 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 9 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 10 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 11 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 12 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 13 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 14 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> + WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 15 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } + + /// Observes 16 properties and emits a PropertyValues of their values when subscribed and each time one of them is about to change. + /// The type of the object to monitor for property changes. + /// The type of the first observed property value. + /// The type of the second observed property value. + /// The type of the third observed property value. + /// The type of the fourth observed property value. + /// The type of the fifth observed property value. + /// The type of the sixth observed property value. + /// The type of the seventh observed property value. + /// The type of the eighth observed property value. + /// The type of the ninth observed property value. + /// The type of the tenth observed property value. + /// The type of the eleventh observed property value. + /// The type of the twelfth observed property value. + /// The type of the thirteenth observed property value. + /// The type of the fourteenth observed property value. + /// The type of the fifteenth observed property value. + /// The type of the sixteenth observed property value. + /// The object instance to observe for property changes. + /// An expression that selects the first property to observe. + /// An expression that selects the second property to observe. + /// An expression that selects the third property to observe. + /// An expression that selects the fourth property to observe. + /// An expression that selects the fifth property to observe. + /// An expression that selects the sixth property to observe. + /// An expression that selects the seventh property to observe. + /// An expression that selects the eighth property to observe. + /// An expression that selects the ninth property to observe. + /// An expression that selects the tenth property to observe. + /// An expression that selects the eleventh property to observe. + /// An expression that selects the twelfth property to observe. + /// An expression that selects the thirteenth property to observe. + /// An expression that selects the fourteenth property to observe. + /// An expression that selects the fifteenth property to observe. + /// An expression that selects the sixteenth property to observe. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The caller argument expression for . Auto-populated by the compiler. + /// The source file path of the caller. Auto-populated by the compiler. + /// The source line number of the caller. Auto-populated by the compiler. + /// An observable that emits a PropertyValues holding the latest value of each property, on subscription and each time one of them is about to change. + /// No generated WhenChanging dispatch matched this call site. Use WhenChangingUnsafe to resolve the expression at run time. + [SuppressMessage("Design", "SST1472", Justification = "one selector per observed property; the parameter count is the shape of this overload")] + [SuppressMessage("Design", "SST1523", Justification = "one observation step per observed property; the length is the shape of this overload")] + public static + IObservable> WhenChanging< + TObj, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16>( + this TObj objectToMonitor, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Expression> property13, + Expression> property14, + Expression> property15, + Expression> property16, + [CallerArgumentExpression("property1")] + string property1Expression = "", + [CallerArgumentExpression("property2")] + string property2Expression = "", + [CallerArgumentExpression("property3")] + string property3Expression = "", + [CallerArgumentExpression("property4")] + string property4Expression = "", + [CallerArgumentExpression("property5")] + string property5Expression = "", + [CallerArgumentExpression("property6")] + string property6Expression = "", + [CallerArgumentExpression("property7")] + string property7Expression = "", + [CallerArgumentExpression("property8")] + string property8Expression = "", + [CallerArgumentExpression("property9")] + string property9Expression = "", + [CallerArgumentExpression("property10")] + string property10Expression = "", + [CallerArgumentExpression("property11")] + string property11Expression = "", + [CallerArgumentExpression("property12")] + string property12Expression = "", + [CallerArgumentExpression("property13")] + string property13Expression = "", + [CallerArgumentExpression("property14")] + string property14Expression = "", + [CallerArgumentExpression("property15")] + string property15Expression = "", + [CallerArgumentExpression("property16")] + string property16Expression = "", + [CallerFilePath] string callerFilePath = "", + [CallerLineNumber] int callerLineNumber = 0) + where TObj : class + { + throw new InvalidOperationException(NoWhenChangingDispatchMessage); + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ChainLinkReader.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ChainLinkReader.cs new file mode 100644 index 00000000..ddda6531 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ChainLinkReader.cs @@ -0,0 +1,57 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// +/// Reads the value of one link in an expression member chain: compiling the link's fetcher once, then +/// applying it to whatever parent the link is currently hanging off. +/// +/// +/// Kept apart from the chain sink because a link that names no member - an array index, whose expression +/// carries no indexer - can only be reached through a subscription that then fails, so the behaviour is +/// otherwise impossible to pin down on its own. +/// +internal static class ChainLinkReader +{ + /// Compiles the value fetcher for a chain link. + /// The link to read. + /// + /// The fetcher, or when the link names no member and therefore has nothing to + /// compile against - an array index is the case that reaches this. + /// + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal static Func? CreateGetter(Expression link) + { + var member = link.GetMemberInfo(); + return member is null ? null : Reflection.GetValueFetcherForProperty(member); + } + + /// Reads the current value of a link from a parent. + /// The object the link is read from. + /// The link's compiled fetcher, or when it has none. + /// The link's index arguments, non-null only for indexer links. + /// The link, used to read the value when there is no fetcher. + /// The link's current value, or the default when the parent is absent. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal static object? ReadValue( + object? parent, + Func? getter, + object?[]? arguments, + Expression link) + { + if (parent is null) + { + return null; + } + + return getter is not null + ? getter(parent, arguments) + : new ObservedChange(parent, link, null).GetValueOrDefault(); + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainParameters.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainParameters.cs new file mode 100644 index 00000000..5049f5b8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainParameters.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Linq.Expressions; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// How one chain of property accesses is to be observed. +/// The root sender type surfaced on the emitted change. +/// The root object of the chain. +/// The full expression surfaced on the emitted change. +/// The member-access links of the chain, in order. +/// Whether values are observed before they change. +/// Whether the first value the chain produces is dropped. +/// Whether consecutive equal leaf values are suppressed. +/// Whether the warning a property with no notification mechanism raises is suppressed. +[DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public readonly record struct ExpressionChainParameters( + TSender? Source, + Expression? Expression, + Expression[] Links, + bool BeforeChange, + bool SkipInitial, + bool IsDistinct, + bool SuppressWarnings); diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainSink.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainSink.cs new file mode 100644 index 00000000..e012499b --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ExpressionChainSink.cs @@ -0,0 +1,434 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// +/// Observes the leaf of an expression member chain (x.A.B.C) and emits its value as an observed change +/// each time any link changes. +/// +/// The root sender type surfaced on the emitted change. +/// The leaf value type. +/// +/// Each link is observed on the value the previous link produced, and the deeper links are re-attached when an +/// intermediate value changes. The current leaf value is emitted on subscribe unless the first value is skipped. +/// Nothing is emitted while an intermediate value is null. A leaf value that is not a +/// faults the observer with an . The sequence never completes; observed values +/// carry the root object as their sender. +/// +[DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] +[EditorBrowsable(EditorBrowsableState.Never)] +[RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] +public sealed class ExpressionChainSink : IObservable> +{ + /// The root object of the chain. + private readonly TSender? _source; + + /// The full expression surfaced on the emitted change. + private readonly Expression? _expression; + + /// The member-access links of the chain, in order. + private readonly Expression[] _links; + + /// Whether values are observed before they change. + private readonly bool _beforeChange; + + /// Whether the initial value is suppressed. + private readonly bool _skipInitial; + + /// Whether consecutive equal leaf values are suppressed. + private readonly bool _isDistinct; + + /// Whether the warning a property with no notification mechanism raises is suppressed. + private readonly bool _suppressWarnings; + + /// Initializes a new instance of the class. + /// The root object of the chain. + /// The full expression surfaced on the emitted change. + /// The member-access links of the chain, in order. + /// Whether values are observed before they change. + /// Whether the first value the chain produces is dropped. + /// Whether consecutive equal leaf values are suppressed. + /// Whether the warning a property with no notification mechanism raises is suppressed. + /// is . + public ExpressionChainSink( + TSender? source, + Expression? expression, + Expression[] links, + bool beforeChange, + bool skipInitial, + bool isDistinct, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(links); + _source = source; + _expression = expression; + _links = links; + _beforeChange = beforeChange; + _skipInitial = skipInitial; + _isDistinct = isDistinct; + _suppressWarnings = suppressWarnings; + } + + /// + /// is . + public IDisposable Subscribe(IObserver> observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + var sink = new Sink( + observer, + new ExpressionChainParameters( + _source, + _expression, + _links, + _beforeChange, + _skipInitial, + _isDistinct, + _suppressWarnings)); + sink.Run(); + return sink; + } + + /// The running state of one chain subscription. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + private sealed class Sink : IDisposable + { + /// Serializes chain mutations and emission. + private readonly Lock _gate = new(); + + /// The observer receiving the leaf observed changes. + private readonly IObserver> _downstream; + + /// The root object of the chain. + private readonly TSender? _source; + + /// The full expression surfaced on the emitted change. + private readonly Expression? _expression; + + /// The member-access links of the chain, in order. + private readonly Expression[] _links; + + /// Whether values are observed before they change. + private readonly bool _beforeChange; + + /// Whether consecutive equal leaf values are suppressed. + private readonly bool _isDistinct; + + /// Whether the warning a property with no notification mechanism raises is suppressed. + private readonly bool _suppressWarnings; + + /// The per-link watchers. + private readonly Level[] _levels; + + /// Whether the next raw emission should be skipped (skip-initial). + private bool _skipNext; + + /// Whether the next emission is dropped if it repeats the last one. + /// + /// Set when the kicker emits, and cleared by the emission after it. A notification that races the + /// subscribe-then-read window reports the value the kicker already pushed, and this collapses that + /// one repeat whatever the distinct setting is. + /// + private bool _suppressNextIfSameAsLast; + + /// The last emitted leaf value, used by the distinct gate. + private TValue _last = default!; + + /// Whether holds a value yet. + private bool _hasLast; + + /// Latched once this chain subscription has been disposed. + private bool _disposed; + + /// Initializes a new instance of the class. + /// The observer receiving the leaf observed changes. + /// How the chain is to be observed. + public Sink( + IObserver> downstream, + in ExpressionChainParameters parameters) + { + _downstream = downstream; + _source = parameters.Source; + _expression = parameters.Expression; + _links = parameters.Links; + _beforeChange = parameters.BeforeChange; + _isDistinct = parameters.IsDistinct; + _suppressWarnings = parameters.SuppressWarnings; + _skipNext = parameters.SkipInitial; + _levels = new Level[parameters.Links.Length]; + } + + /// Establishes the chain from the root value. + /// + /// The levels are built here rather than in the constructor: each one captures the sink, + /// and handing out mid-construction would expose a half-built object. + /// + public void Run() + { + lock (_gate) + { + for (var i = 0; i < _levels.Length; i++) + { + _levels[i] = new(this, i, i == _levels.Length - 1); + } + + if (_links.Length == 0) + { + return; + } + + _levels[0].SetParent(_source); + } + } + + /// + public void Dispose() + { + lock (_gate) + { + _disposed = true; + for (var i = 0; i < _levels.Length; i++) + { + // Every slot is filled: Run takes this same lock and populates them all before the + // sink is handed out, so there is no window where one is still null here. + _levels[i].Dispose(); + } + } + } + + /// Sets the parent value of the level after . + /// The level index that produced the value. + /// The value the link produced (the parent for the next level). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void SetNextParent(int level, object? value) => _levels[level + 1].SetParent(value); + + /// Handles a leaf raw emission: applies skip-initial, the non-null-parent filter, the cast, the kicker dedup and the distinct gate. + /// Whether the leaf's parent was null. + /// The leaf value when the parent is present. + /// Whether this is the read that follows attaching a link subscription. + private void Emit(bool parentMissing, object? value, bool fromKicker = false) + { + if (_skipNext) + { + _skipNext = false; + _suppressNextIfSameAsLast = false; + return; + } + + if (parentMissing) + { + return; + } + + TValue typed; + if (value is null) + { + typed = default!; + } + else if (value is TValue cast) + { + typed = cast; + } + else + { + _downstream.OnError(new InvalidCastException($"Unable to cast from {value.GetType()} to {typeof(TValue)}.")); + return; + } + + if (ShouldSuppress(typed, fromKicker)) + { + return; + } + + // A notification that raced the subscribe-then-read window is queued behind the gate and will + // report the value the kicker just pushed. Dropping the next equal value collapses that one + // repeat without changing what a caller sees when the value genuinely changes twice. + _suppressNextIfSameAsLast = fromKicker; + _last = typed; + _hasLast = true; + _downstream.OnNext(new ObservedChange(_source!, _expression, typed)); + } + + /// Decides whether an emission is dropped, by the kicker dedup or the distinct gate. + /// The leaf value about to be emitted. + /// Whether this is the read that follows attaching a link subscription. + /// when the value is not emitted. + /// The kicker itself is never dropped: it is the value the caller subscribed to receive. + private bool ShouldSuppress(TValue typed, bool fromKicker) + { + if (fromKicker) + { + return false; + } + + var repeatsLast = _hasLast && EqualityComparer.Default.Equals(typed, _last); + if (_suppressNextIfSameAsLast) + { + _suppressNextIfSameAsLast = false; + if (repeatsLast) + { + return true; + } + } + + return _isDistinct && repeatsLast; + } + + /// A single chain link's watcher: re-subscribes on parent change and reads the link's value. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + private sealed class Level : IDisposable + { + /// The owning chain sink. + private readonly Sink _sink; + + /// This watcher's position in the chain. + private readonly int _index; + + /// Whether this is the final link in the chain. + private readonly bool _isLeaf; + + /// The current link-notification subscription; swapped on each re-parent. + private readonly SwapDisposable _subscription = new(); + + /// This link's value fetcher, compiled once, or for an unsupported member. + private readonly Func? _getter; + + /// This link's index/argument array (non-null only for indexer links), cached once. + private readonly object?[]? _arguments; + + /// Whether this level is subscribing to its link's notifications. + /// + /// Only read under the gate, so only a notification the subscribing thread raises from inside + /// Subscribe sees it set. + /// + private bool _attaching; + + /// Initializes a new instance of the class. + /// The owning chain sink. + /// This watcher's position in the chain. + /// Whether this is the final link in the chain. + public Level(Sink sink, int index, bool isLeaf) + { + _sink = sink; + _index = index; + _isLeaf = isLeaf; + _getter = ChainLinkReader.CreateGetter(sink._links[index]); + _arguments = sink._links[index].GetArgumentsArray(); + } + + /// Re-establishes this watcher on a new parent value and propagates the current value downward. + /// The object this link is read from. + public void SetParent(object? parent) + { + if (parent is null) + { + _subscription.Disposable = null; + if (_isLeaf) + { + _sink.Emit(parentMissing: true, null); + } + else + { + _sink.SetNextParent(_index, null); + } + + return; + } + + var link = _sink._links[_index]; + + // Subscribe before reading, so a change between the two is reported rather than lost. The + // caller holds the gate, so a notification that races this window queues behind it and + // re-reports the value the kicker is about to push; the sink drops that one repeat. A + // notification raised from inside Subscribe, such as the one a POCO link emits, is ignored: + // the kicker reads the same value straight after. + _attaching = true; + _subscription.Disposable = ReactiveNotifyPropertyChangedMixins + .NotifyForProperty(parent, link, _sink._beforeChange, _sink._suppressWarnings) + .Subscribe(new Observer(this)); + _attaching = false; + + Push(ReadValue(parent), fromKicker: true); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _subscription.Dispose(); + + /// Handles a notification for this link by re-reading the value and propagating it. + /// The notification (its value is read via reflection). + private void OnNotification(IObservedChange change) + { + lock (_sink._gate) + { + if (_sink._disposed || _attaching) + { + return; + } + + Push(ReadValue(change.Sender)); + } + } + + /// Forwards a link-subscription error to the downstream observer. + /// The error to forward. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void ForwardError(Exception error) => _sink._downstream.OnError(error); + + /// Reads the current value of this link from a parent using the cached fetcher. + /// The object the link is read from. + /// The link's current value, or the default when the parent is null. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private object? ReadValue(object? parent) => + ChainLinkReader.ReadValue(parent, _getter, _arguments, _sink._links[_index]); + + /// Forwards this link's value to the next level, or emits it at the leaf. + /// The value this link produced. + /// Whether this is the read that follows attaching the subscription. + private void Push(object? value, bool fromKicker = false) + { + if (_isLeaf) + { + _sink.Emit(parentMissing: false, value, fromKicker); + } + else + { + _sink.SetNextParent(_index, value); + } + } + + /// Forwards a link's notifications back into the level. + private sealed class Observer : IObserver> + { + /// The owning level. + private readonly Level _level; + + /// Initializes a new instance of the class. + /// The owning level. + public Observer(Level level) => _level = level; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnNext(IObservedChange value) => _level.OnNotification(value); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => _level.ForwardError(error); + + /// + public void OnCompleted() + { + } + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/INPCObservableForProperty.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/INPCObservableForProperty.cs new file mode 100644 index 00000000..3854b311 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/INPCObservableForProperty.cs @@ -0,0 +1,64 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Reflection; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// Observes properties of objects that implement or . +public class INPCObservableForProperty : ICreatesObservableForProperty +{ + /// The affinity returned when the target type implements the relevant notification interface. + private static readonly int SupportedAffinity = BindingAffinity.Explicit; + + /// + /// Returns the explicit affinity when the type implements (before-change) + /// or (after-change); otherwise, zero. + /// + /// The type being observed. + /// The property name being observed; not consulted. + /// Whether before-change notifications are requested. + /// The affinity score, or zero when the type lacks the required interface. + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) => + (beforeChanged ? typeof(INotifyPropertyChanging) : typeof(INotifyPropertyChanged)).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo()) + ? SupportedAffinity + : 0; + + /// + /// Returns a sequence that emits when the sender raises a notification for the property, or a sequence that + /// never emits when the sender implements neither interface. + /// + /// The object to observe. + /// The expression identifying the property; an indexer matches the name followed by []. + /// The property name. + /// Whether to observe ; a sender that lacks it is observed through . + /// Not used. + /// An observable of observed changes. + /// is . + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + // Before-change uses INotifyPropertyChanging; after-change (and the before-change fallback for + // types that only implement INotifyPropertyChanged) uses PropertyChanged. A single fused sink + // wires the event, filters by name, and emits the observed change directly. + if ((beforeChanged && sender is INotifyPropertyChanging) || sender is INotifyPropertyChanged) + { + var expectedName = expression.NodeType == ExpressionType.Index ? $"{propertyName}[]" : propertyName; + return new NotifyPropertyChangedObservable(sender, expression, expectedName, beforeChanged); + } + + return ImmutableNeverSignal>.Instance; + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/NotifyFactoryKey.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/NotifyFactoryKey.cs new file mode 100644 index 00000000..e4456e18 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/NotifyFactoryKey.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// Identifies the notification factory resolved for one property, in one direction of change. +/// The type raising the notification. +/// The name of the observed property. +/// Whether before-change notification was asked for. +[DebuggerDisplay("NotifyFactoryKey: {SenderType.Name,nq}.{PropertyName,nq} before={BeforeChange}")] +internal readonly record struct NotifyFactoryKey(Type SenderType, string PropertyName, bool BeforeChange); diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservableForPropertySink.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservableForPropertySink.cs new file mode 100644 index 00000000..ef93e0e2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservableForPropertySink.cs @@ -0,0 +1,165 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// Emits a property's value on subscribe, unless skipped, and again on each notification. +/// The type of the observed object surfaced on the emitted change. +/// The property value type. +/// +/// The value is read through the supplied delegate on every notification, and the notification's own value is +/// ignored. A read that throws is forwarded to the observer as an error. Errors and completion of the +/// notification source pass through to the observer. +/// +[DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class ObservableForPropertySink : IObservable> +{ + /// The observed object surfaced on the emitted change. + private readonly TSender _sender; + + /// The expression surfaced on the emitted change. + private readonly Expression _expression; + + /// The underlying change-notification source (a notification re-reads the value). + private readonly IObservable> _notifications; + + /// Reads the current property value from the sender. + private readonly Func _readValue; + + /// When , the current value is not emitted on subscribe. + private readonly bool _skipInitial; + + /// When , consecutive equal values are suppressed. + private readonly bool _isDistinct; + + /// Initializes a new instance of the class. + /// The observed object surfaced on the emitted change. + /// The expression surfaced on the emitted change. + /// The underlying change-notification source. + /// Reads the current property value from the sender. + /// When , the current value is not emitted on subscribe. + /// When , consecutive equal values are suppressed. + /// , or is . + public ObservableForPropertySink( + TSender sender, + Expression expression, + IObservable> notifications, + Func readValue, + bool skipInitial, + bool isDistinct) + { + ArgumentExceptionHelper.ThrowIfNull(expression); + ArgumentExceptionHelper.ThrowIfNull(notifications); + ArgumentExceptionHelper.ThrowIfNull(readValue); + _sender = sender; + _expression = expression; + _notifications = notifications; + _readValue = readValue; + _skipInitial = skipInitial; + _isDistinct = isDistinct; + } + + /// + /// is . + public IDisposable Subscribe(IObserver> observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + var sink = new Sink(observer, _sender, _expression, _readValue, _isDistinct); + return sink.Run(_notifications, _skipInitial); + } + + /// Reads the property value on each notification and forwards it as an observed change. + /// The observer receiving observed changes. + /// The observed object. + /// The expression surfaced on the observed change. + /// Reads the current property value. + /// Whether consecutive equal values are suppressed. + private sealed class Sink( + IObserver> downstream, + TSender sender, + Expression expression, + Func readValue, + bool isDistinct) : IObserver> + { + /// The observer receiving observed changes. + private readonly IObserver> _downstream = downstream; + + /// The observed object. + private readonly TSender _sender = sender; + + /// The expression surfaced on the observed change. + private readonly Expression _expression = expression; + + /// Reads the current property value from the sender. + private readonly Func _readValue = readValue; + + /// Whether consecutive equal values are suppressed. + private readonly bool _isDistinct = isDistinct; + + /// The last emitted value, used by the distinct gate. + private TValue _last = default!; + + /// Whether holds a value yet. + private bool _hasLast; + + /// Optionally emits the current value, then subscribes to the notification source. + /// The change-notification source. + /// When , the current value is not emitted on subscribe. + /// The notification-source subscription. + public IDisposable Run(IObservable> notifications, bool skipInitial) + { + if (!skipInitial) + { + Emit(); + } + + return notifications.Subscribe(this); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnNext(IObservedChange value) => Emit(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => _downstream.OnError(error); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() => _downstream.OnCompleted(); + + /// Reads the current property value and forwards it as an observed change, honoring the distinct gate. + private void Emit() + { + TValue current; + try + { + current = _readValue(); + } + catch (Exception ex) + { + _downstream.OnError(ex); + return; + } + + if (_isDistinct && _hasLast && EqualityComparer.Default.Equals(current, _last)) + { + return; + } + + _last = current; + _hasLast = true; + _downstream.OnNext(new ObservedChange(_sender, _expression, current)); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedChangedMixins.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedChangedMixins.cs new file mode 100644 index 00000000..b1dcc4f8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedChangedMixins.cs @@ -0,0 +1,113 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// A collection of helpers for . +public static class ObservedChangedMixins +{ + /// Provides Value extension members for . + /// The sender type. + /// The value type. + /// The change notification stream to get the values of. + extension(IObservable> stream) + { + /// Projects each observed change to the current value of the property it describes. + /// An observable of the current values; a change whose expression cannot be followed faults it with an . + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable Value() => + new MapSignal, TValue>(stream, GetValue); + } + + /// Provides value-access extension members for . + /// The sender type. + /// The value type. + /// The observed change. + extension(IObservedChange item) + { + /// Returns the dotted path of the property the change describes, such as A.B[0].C. + /// The property path built from the change's expression. + /// The observed change or its expression is . + public string GetPropertyName() + { + ArgumentExceptionHelper.ThrowIfNull(item); + return Reflection.ExpressionToPropertyNames(item.Expression); + } + + /// Returns the value carried by the change, or reads it from the sender through the change's expression when the carried value is the default. + /// The current value of the property. + /// The observed change is . + /// A property partway along the observed change's expression is , so the chain cannot be followed to the value. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() + { + ArgumentExceptionHelper.ThrowIfNull(item); + + if (!item.TryGetValue(out var returnValue)) + { + throw new InvalidOperationException($"One of the properties in the expression '{item.GetPropertyName()}' was null"); + } + + return returnValue; + } + + /// Returns the value would return, or the default when a property partway along the expression is . + /// The current value of the property, or default. + /// The observed change is . + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() + { + ArgumentExceptionHelper.ThrowIfNull(item); + return !item.TryGetValue(out var returnValue) ? default : returnValue; + } + + /// Attempts to return the current value of a property given a notification that it has changed. + /// The value of the property expression. + /// True if the entire expression was able to be followed, false otherwise. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal bool TryGetValue( + out TValue changeValue) + { + // TValue is unconstrained, so default(TValue) is maybe-null while the comparer's parameter is not + // annotated; the comparer handles a null operand, so the state is suppressed rather than guarded. + if (EqualityComparer.Default.Equals(item.Value, default!)) + { + return Reflection.TryGetValueForPropertyChain( + out changeValue, + item.Sender, + item.Expression!.GetExpressionChain()); + } + + changeValue = item.Value; + return true; + } + + /// Given a fully filled-out IObservedChange object, SetValueToProperty will apply it to the specified object. + /// The target type. + /// The target object to apply the change to. + /// The target property to apply the change to. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal void SetValueToProperty( + TTarget target, + Expression> property) + { + if (target is null) + { + return; + } + + _ = Reflection.TrySetValueToPropertyChain( + target, + Reflection.Rewrite(property.Body).GetExpressionChain(), + item.GetValue()); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedPropertyKey.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedPropertyKey.cs new file mode 100644 index 00000000..3adaef16 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ObservedPropertyKey.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// Identifies one property of one type, for the caches that answer per property rather than per type. +/// The type declaring the property. +/// The name of the property. +[DebuggerDisplay("ObservedPropertyKey: {Type.Name,nq}.{PropertyName,nq}")] +internal readonly record struct ObservedPropertyKey(Type Type, string PropertyName); diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/POCOObservableForProperty.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/POCOObservableForProperty.cs new file mode 100644 index 00000000..063bf153 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/POCOObservableForProperty.cs @@ -0,0 +1,90 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// Observes a property on a type that offers no change notification, at the lowest affinity. +/// +/// The notification sequence emits one observed change on subscribe, which carries the sender and expression but no +/// value, then never emits or completes. Unless warnings are suppressed, the first observation of each type and +/// property writes a debug message. +/// +public sealed class POCOObservableForProperty : ICreatesObservableForProperty +{ + /// Tracks which (type, property) pairs have already emitted a POCO warning to avoid duplicate messages. + private static readonly ConcurrentDictionary HasWarned = new(); + + /// Returns the fallback affinity for every type and property. + /// The type being observed. + /// The property name being observed. + /// Whether before-change notifications are requested; not consulted. + /// The lowest positive affinity, so any other registered mechanism outranks it. + /// or is . + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) + { + ArgumentExceptionHelper.ThrowIfNull(type); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + + return BindingAffinity.Fallback; + } + + /// Returns a sequence that emits one observed change on subscribe and then stays silent. + /// The object to observe. + /// The expression identifying the property. + /// The property name. + /// Whether before-change notifications are requested; not consulted. + /// to skip the debug message written the first time a type and property are observed. + /// An observable that emits once and never completes. + /// , or is . + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(expression); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + + if (!suppressWarnings) + { + WarnOnce(sender, propertyName); + } + + // Emit the current value once, then never complete (so the binding stays alive). + return new LeadSignal>( + ImmutableNeverSignal>.Instance, + new ObservedChange(sender, expression, default)); + } + + /// + /// Emits a debug warning the first time a POCO property is observed, indicating that + /// no change notifications will be sent after the initial value. + /// + /// The object being observed. + /// The name of the property being observed. +#if NET8_0_OR_GREATER + [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] +#else + [MethodImpl(MethodImplOptions.AggressiveInlining)] +#endif + internal static void WarnOnce(object sender, string propertyName) + { + var type = sender.GetType(); + if (!HasWarned.TryAdd(new(type, propertyName), 0)) + { + return; + } + + Debug.WriteLine( + $"[ReactiveUI.Binding] Warning: The class {type.FullName} property {propertyName} is a POCO type and won't send change notifications, WhenAny will only return a single value!"); + } +} diff --git a/src/ReactiveUI.Binding.Shared/ObservableForProperty/ReactiveNotifyPropertyChangedMixins.cs b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ReactiveNotifyPropertyChangedMixins.cs new file mode 100644 index 00000000..3122710d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/ObservableForProperty/ReactiveNotifyPropertyChangedMixins.cs @@ -0,0 +1,412 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.ObservableForProperty; +#else +namespace ReactiveUI.Binding.ObservableForProperty; +#endif + +/// +/// Extension methods that observe a property, by name or through an expression chain, using the +/// registrations from the service locator. Generated code does not call them. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +[RequiresUnreferencedCode( + "Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] +public static class ReactiveNotifyPropertyChangedMixins +{ + /// Number of resolved factories kept in the MRU cache. + private const int NotifyFactoryCacheSize = 64; + + /// Appended to the "no factory found" message; the only way to hit it is a misconfigured locator. + private const string BrokenLocatorAdvice = + "This should never happen, your service locator is probably broken. Please make sure you have registered ICreatesObservableForProperty implementations."; + + /// MRU cache that maps (sender type, property name, before-change flag) to the best implementation for that combination. + /// + /// The entry is supplied through the context argument rather than looked up here, so only a + /// resolution that actually found an implementation is ever stored. A failure is deliberately not + /// stored: the locator can still be empty the first time a property is observed — an observation + /// running ahead of application startup, or a test suite whose registration belongs to a later + /// test — and a stored failure would outlive the registration that fixes it, leaving that sender + /// and property permanently unobservable. + /// + private static readonly MemoizingMRUCache< + NotifyFactoryKey, + ICreatesObservableForProperty> + NotifyFactoryCache = + new( + static (_, resolved) => (ICreatesObservableForProperty)resolved!, + NotifyFactoryCacheSize); + + /// Provides ObservableForProperty extension members for . + /// The sender type. + /// The source object to observe properties of. + extension(TSender? item) + { + /// Observes a property by name after it changes, emitting its current value first and dropping consecutive equal values. + /// The value type. + /// The property name to observe. + /// An observable of the changes for the property. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode( + "Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> ObservableForProperty( + string propertyName) => + ObservableForProperty(item, propertyName, false, true, true); + + /// Observes a property by name after it changes, dropping consecutive equal values and optionally skipping the current value emitted on subscription. + /// The value type. + /// The property name to observe. + /// If true, the Observable will not notify with the initial value. + /// An observable of the changes for the property. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode( + "Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> ObservableForProperty( + string propertyName, + bool skipInitial) => + ObservableForProperty(item, propertyName, false, skipInitial, true); + + /// Observes a property by name through the highest-affinity registered for the source's runtime type. + /// The value type. + /// The property name to observe. + /// If true, the Observable will notify immediately before a property is going to change. + /// If true, the Observable will not notify with the initial value. + /// If set to true, values are filtered with DistinctUntilChanged. + /// An observable of the changes for the property; each value is read by reflection from the public instance property, or is the default when that is missing or null. + /// The source object or is . + /// + /// No registered bids a positive affinity for + /// on the source object's type. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode( + "Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public IObservable> ObservableForProperty( + string propertyName, + bool beforeChange, + bool skipInitial, + bool isDistinct) + { + ArgumentExceptionHelper.ThrowIfNull(item); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + + var parameter = Expression.Parameter(typeof(TSender), "x"); + Expression expr; + try + { + expr = Expression.Property(parameter, propertyName); + } + catch + { + expr = parameter; + } + + var factory = ResolveNotifyFactory(new(item!.GetType(), propertyName, beforeChange)) + ?? throw new InvalidOperationException( + $"Could not find a ICreatesObservableForProperty for {item.GetType()} property {propertyName}. {BrokenLocatorAdvice}"); + + static TValue GetCurrentValue(object sender, string name) + { + var t = sender.GetType(); + var prop = t.GetProperty( + name, + System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.FlattenHierarchy); + if (prop is null) + { + return default!; + } + + var propertyValue = prop.GetValue(sender); + if (propertyValue is null) + { + return default!; + } + + return propertyValue is TValue typedValue ? typedValue : (TValue)propertyValue; + } + + // Single fused sink: emits the initial value (unless skipped), then re-reads and emits on each + // notification, applying the distinct gate inline. + var notifications = factory.GetNotificationForProperty(item!, expr, propertyName, beforeChange); + return new ObservableForPropertySink( + item!, + expr, + notifications, + () => GetCurrentValue(item!, propertyName), + skipInitial, + isDistinct); + } + + /// Observes the property an expression points at after it changes, emitting its current value first and dropping consecutive equal values. + /// The value type. + /// An Expression representing the property. + /// An observable of the changes for the property. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> ObservableForProperty( + Expression> property) => + ObservableForProperty(item, property, false, true, true); + + /// Observes the property an expression points at after it changes, dropping consecutive equal values and optionally skipping the current value emitted on subscription. + /// The value type. + /// An Expression representing the property. + /// If true, the Observable will not notify with the initial value. + /// An observable of the changes for the property. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> ObservableForProperty( + Expression> property, + bool skipInitial) => + ObservableForProperty(item, property, false, skipInitial, true); + + /// Observes the property, or the member chain, an expression points at. + /// The value type. + /// An Expression representing the property. + /// If true, the Observable will notify immediately before a property is going to change. + /// If true, the Observable will not notify with the initial value. + /// If set to true, values are filtered with DistinctUntilChanged. + /// An observable of the changes for the last link of the chain. + /// is . + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public IObservable> ObservableForProperty( + Expression> property, + bool beforeChange, + bool skipInitial, + bool isDistinct) + { + ArgumentExceptionHelper.ThrowIfNull(property); + + return SubscribeToExpressionChain( + item, + property.Body, + beforeChange, + skipInitial, + isDistinct); + } + + /// Observes an expression's member chain after each link changes, emitting the end value first and dropping consecutive equal values. + /// The end value we want to subscribe to. + /// An expression which will point towards the property. + /// An observable which notifies about observed changes. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> SubscribeToExpressionChain( + Expression? expression) => + SubscribeToExpressionChain(item, expression, false, true, true); + + /// Observes an expression's member chain after each link changes, dropping consecutive equal values and optionally skipping the end value emitted on subscription. + /// The end value we want to subscribe to. + /// An expression which will point towards the property. + /// If we don't want to get a notification about the default value of the property. + /// An observable which notifies about observed changes. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> SubscribeToExpressionChain( + Expression? expression, + bool skipInitial) => + SubscribeToExpressionChain(item, expression, false, skipInitial, true); + + /// + /// Observes each property in an expression's member chain, re-subscribing deeper links when an + /// intermediate value changes, and reports the value at the end of the chain. + /// + /// The end value we want to subscribe to. + /// An expression which will point towards the property. + /// If we are interested in notifications before the property value is changed. + /// If we don't want to get a notification about the default value of the property. + /// If set to true, values are filtered with DistinctUntilChanged. + /// An observable which notifies about observed changes. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> SubscribeToExpressionChain( + Expression? expression, + bool beforeChange, + bool skipInitial, + bool isDistinct) => + CreateExpressionChain(item, expression, beforeChange, skipInitial, isDistinct, false); + + /// + /// Observes each property in an expression's member chain, re-subscribing deeper links when an + /// intermediate value changes, and reports the value at the end of the chain. + /// + /// The end value we want to subscribe to. + /// An expression which will point towards the property. + /// If we are interested in notifications before the property value is changed. + /// If we don't want to get a notification about the default value of the property. + /// If set to true, values are filtered with DistinctUntilChanged. + /// If set to true, a property that cannot notify is observed quietly. + /// An observable which notifies about observed changes. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the observed shape.")] + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> SubscribeToExpressionChain( + Expression? expression, + bool beforeChange, + bool skipInitial, + bool isDistinct, + bool suppressWarnings) => + CreateExpressionChain(item, expression, beforeChange, skipInitial, isDistinct, suppressWarnings); + + /// Builds the chain observation both overloads hand back. + /// The end value we want to subscribe to. + /// The root object of the chain. + /// An expression which will point towards the property. + /// If we are interested in notifications before the property value is changed. + /// If we don't want to get a notification about the default value of the property. + /// If set to true, values are filtered with DistinctUntilChanged. + /// If set to true, a property that cannot notify is observed quietly. + /// An observable which notifies about observed changes. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + private static ExpressionChainSink CreateExpressionChain( + TSender? source, + Expression? expression, + bool beforeChange, + bool skipInitial, + bool isDistinct, + bool suppressWarnings) + { + // Single fused switching engine: one watcher per link, re-subscribing deeper links when an + // intermediate value changes, with skip-initial, the non-null-parent filter, the cast to TValue, + // and the distinct gate applied inline. + var links = new List(Reflection.Rewrite(expression).GetExpressionChain()).ToArray(); + return new( + source, + expression, + links, + beforeChange, + skipInitial, + isDistinct, + suppressWarnings); + } + + } + + /// Creates an observable that tracks nested property changes for a single link in an expression chain. + /// The expression representing the current property in the chain. + /// The observed change from the previous link in the chain. + /// If , subscribes to before-change notifications. + /// An observable of observed changes for the current property link. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal static IObservable> NestedObservedChanges( + Expression expression, + IObservedChange sourceChange, + bool beforeChange) + { + var kicker = new ObservedChange(sourceChange.Value, expression, default); + + return sourceChange.Value is null + ? new ImmediateReturnSignal>(kicker) + : new MapSignal, IObservedChange>( + new LeadSignal>( + NotifyForProperty(sourceChange.Value, expression, beforeChange), + kicker), + static IObservedChange (x) => + new ObservedChange(x.Sender, x.Expression, x.GetValueOrDefault())); + } + + /// + /// Gets property change notifications for a single property on an object by resolving the + /// best implementation from the service locator. + /// + /// The object to observe. + /// The expression identifying the property to observe. + /// If , subscribes to before-change notifications. + /// An observable of observed changes for the property. + /// is . + /// does not point at a member, so no property name can be resolved from it. + /// No registered bids a positive affinity for the property on 's type. + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static IObservable> NotifyForProperty( + object sender, + Expression expression, + bool beforeChange) => + NotifyForProperty(sender, expression, beforeChange, false); + + /// + /// Gets property change notifications for a single property on an object by resolving the + /// best implementation from the service locator. + /// + /// The object to observe. + /// The expression identifying the property to observe. + /// If , subscribes to before-change notifications. + /// If , the plugin stays quiet about a property that cannot notify. + /// An observable of observed changes for the property. + /// is . + /// does not point at a member, so no property name can be resolved from it. + /// No registered bids a positive affinity for the property on 's type. + /// + /// The suppression reaches the plugin rather than being dropped here. A caller that already knows the + /// property cannot notify - a binding that chose this path deliberately - would otherwise be warned once + /// per subscription about something it cannot act on. + /// + [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + internal static IObservable> NotifyForProperty( + object sender, + Expression expression, + bool beforeChange, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(expression); + + var memberInfo = expression.GetMemberInfo() ?? throw new ArgumentException( + "The expression does not have valid member info", + nameof(expression)); + var propertyName = memberInfo.Name; + var result = ResolveNotifyFactory(new(sender.GetType(), propertyName, beforeChange)); + + return result switch + { + null => throw new InvalidOperationException( + $"Could not find a ICreatesObservableForProperty for {sender.GetType()} property {propertyName}. {BrokenLocatorAdvice}"), + _ => result.GetNotificationForProperty(sender, expression, propertyName, beforeChange, suppressWarnings) + }; + } + + /// + /// Gets the highest-affinity for a sender type and + /// property, consulting the service locator only when the combination has not already resolved. + /// + /// The sender type, property name and before-change flag being resolved. + /// The best implementation, or when nothing bids a positive affinity. + /// + /// The key is three fields wide, past the two registers the JIT would pass it in, so it travels by + /// reference rather than being copied onto the stack for every resolution. + /// + private static ICreatesObservableForProperty? ResolveNotifyFactory( + in NotifyFactoryKey key) + { + if (NotifyFactoryCache.TryGet(key, out var memoized)) + { + return memoized; + } + + var bestScore = 0; + ICreatesObservableForProperty? best = null; + foreach (var candidate in AppLocator.Current.GetServices()) + { + var score = candidate.GetAffinityForObject(key.SenderType, key.PropertyName, key.BeforeChange); + if (score <= bestScore) + { + continue; + } + + bestScore = score; + best = candidate; + } + + return best is null ? null : NotifyFactoryCache.Get(key, best); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/AppliedChangeObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/AppliedChangeObservable.cs new file mode 100644 index 00000000..5d190744 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/AppliedChangeObservable.cs @@ -0,0 +1,70 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// The changes a two-way binding actually wrote, handed to whoever subscribes to the binding. +/// +/// A value the binding weighed and refused to write is not reported. Each change is delivered synchronously on +/// the reporting thread to the observers subscribed when delivery starts. The sequence never completes. +/// +[DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] +public sealed class AppliedChangeObservable : IObservable +{ + /// The observers a change is delivered to, replaced whenever the set changes. + private IObserver[] _observers = []; + + /// Gets a value indicating whether at least one observer is subscribed. + public bool HasObservers => Volatile.Read(ref _observers).Length != 0; + + /// Reports a change the binding has written. + /// The change that was written. + public void OnNext(BindingChange value) + { + var observers = Volatile.Read(ref _observers); + for (var i = 0; i < observers.Length; i++) + { + observers[i].OnNext(value); + } + } + + /// + /// is null. + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + CopyOnWriteArray.Add(ref _observers, observer); + return new Subscription(this, observer); + } + + /// Drops one observer without disturbing a change already being delivered. + /// The observer to drop. An observer that is not there is left alone. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void Remove(IObserver observer) => CopyOnWriteArray.Remove(ref _observers, observer); + + /// Releases one observer's place in the change stream. + /// The stream subscribed to. + /// The observer to drop on disposal. + private sealed class Subscription(AppliedChangeObservable parent, IObserver observer) : IDisposable + { + /// The observer to drop, cleared once dropped so disposing twice drops one place. + private IObserver? _observer = observer; + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _observer, null) is not { } dropped) + { + return; + } + + parent.Remove(dropped); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/CallbackPropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/CallbackPropertyObservable.cs new file mode 100644 index 00000000..4dcfcb83 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/CallbackPropertyObservable.cs @@ -0,0 +1,137 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// Observes a property through a platform's own change callback: the value on subscription, then again each time +/// the callback fires. +/// +/// The type that declares the property. +/// The type of the property value. +/// +/// Generated observation of a native mechanism - a UIKit control event, a WinForms companion event, a WinUI or Uno +/// dependency property, an Android listener - passes the statements that attach to the notification as +/// subscribe. The sequence never completes. Disposing a subscription detaches it once, however many times it +/// is disposed. +/// +[DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class CallbackPropertyObservable : IObservable +{ + /// The object the property is read from. + private readonly TSource _source; + + /// Attaches a callback to the platform's notification and returns what detaches it. + private readonly Func _subscribe; + + /// Reads the property from the source. + private readonly Func _getter; + + /// Whether a value equal to the last one delivered is suppressed. + private readonly bool _distinct; + + /// Initializes a new instance of the class. + /// The object the property is read from. + /// Attaches a callback to the platform's notification and returns what detaches it. + /// Reads the property from the source. + /// Whether a value equal to the last one delivered is suppressed. + /// or is . + public CallbackPropertyObservable( + TSource source, + Func subscribe, + Func getter, + bool distinct) + { + ArgumentExceptionHelper.ThrowIfNull(subscribe); + ArgumentExceptionHelper.ThrowIfNull(getter); + + _source = source; + _subscribe = subscribe; + _getter = getter; + _distinct = distinct; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer); + } + + /// One subscriber's attachment to the platform notification. + private sealed class Subscription : IDisposable + { + /// The observation this subscription belongs to. + private readonly CallbackPropertyObservable _parent; + + /// Detaches the callback from the platform notification. + private readonly IDisposable _attachment; + + /// The subscriber, or null once disposed. + private IObserver? _observer; + + /// The last value delivered. + private TValue _lastValue = default!; + + /// Whether a value has been delivered. + private bool _hasValue; + + /// Initializes a new instance of the class, attaching and delivering the current value. + /// The observation this subscription belongs to. + /// The subscriber. + public Subscription(CallbackPropertyObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _attachment = parent._subscribe(parent._source, Publish); + try + { + Publish(); + } + catch + { + Dispose(); + throw; + } + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _observer, null) is not null) + { + _attachment.Dispose(); + } + } + + /// Reads the property and delivers it, unless disposed or unchanged under distinct delivery. + private void Publish() + { + var observer = Volatile.Read(ref _observer); + if (observer is null) + { + return; + } + + var value = _parent._getter(_parent._source); + if (_parent._distinct && _hasValue && EqualityComparer.Default.Equals(_lastValue, value)) + { + return; + } + + _lastValue = value; + _hasValue = true; + observer.OnNext(value); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/CombineLatestObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/CombineLatestObservable.cs new file mode 100644 index 00000000..fb7484cd --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/CombineLatestObservable.cs @@ -0,0 +1,739 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Creates an observable that combines the latest value of each of two to sixteen sources. +[EditorBrowsable(EditorBrowsableState.Never)] +[ExcludeFromCodeCoverage] +public static class CombineLatestObservable +{ + /// Combines the latest values from two observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + Func resultSelector) => + new CombineLatestSignal(source1, source2, resultSelector); + + /// Combines the latest values from three observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + Func resultSelector) => + LinqExtensions.CombineLatest(source1, source2, source3, resultSelector); + + /// Combines the latest values from four observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + Func resultSelector) => + LinqExtensions.CombineLatest(source1, source2, source3, source4, resultSelector); + + /// Combines the latest values from five observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + resultSelector); + + /// Combines the latest values from six observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + resultSelector); + + /// Combines the latest values from seven observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + resultSelector); + + /// Combines the latest values from eight observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + resultSelector); + + /// Combines the latest values from nine observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + resultSelector); + + /// Combines the latest values from ten observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + resultSelector); + + /// Combines the latest values from eleven observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + resultSelector); + + /// Combines the latest values from twelve observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// Source element type 12. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// Source observable 12. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + IObservable source12, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + source12, + resultSelector); + + /// Combines the latest values from thirteen observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// Source element type 12. + /// Source element type 13. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// Source observable 12. + /// Source observable 13. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + IObservable source12, + IObservable source13, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + source12, + source13, + resultSelector); + + /// Combines the latest values from fourteen observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// Source element type 12. + /// Source element type 13. + /// Source element type 14. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// Source observable 12. + /// Source observable 13. + /// Source observable 14. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + IObservable source12, + IObservable source13, + IObservable source14, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + source12, + source13, + source14, + resultSelector); + + /// Combines the latest values from fifteen observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// Source element type 12. + /// Source element type 13. + /// Source element type 14. + /// Source element type 15. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// Source observable 12. + /// Source observable 13. + /// Source observable 14. + /// Source observable 15. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create< + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + TResult>( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + IObservable source12, + IObservable source13, + IObservable source14, + IObservable source15, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + source12, + source13, + source14, + source15, + resultSelector); + + /// Combines the latest values from sixteen observables using a result selector. + /// Source element type 1. + /// Source element type 2. + /// Source element type 3. + /// Source element type 4. + /// Source element type 5. + /// Source element type 6. + /// Source element type 7. + /// Source element type 8. + /// Source element type 9. + /// Source element type 10. + /// Source element type 11. + /// Source element type 12. + /// Source element type 13. + /// Source element type 14. + /// Source element type 15. + /// Source element type 16. + /// The result element type. + /// Source observable 1. + /// Source observable 2. + /// Source observable 3. + /// Source observable 4. + /// Source observable 5. + /// Source observable 6. + /// Source observable 7. + /// Source observable 8. + /// Source observable 9. + /// Source observable 10. + /// Source observable 11. + /// Source observable 12. + /// Source observable 13. + /// Source observable 14. + /// Source observable 15. + /// Source observable 16. + /// The function to combine the latest values. + /// An observable that emits once every source has produced a value, then again on each later value from any source. + [SuppressMessage("Design", "SST1472:Signatures should not declare too many parameters", Justification = "Parameter count is intrinsic to the fixed CombineLatest arity.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable Create< + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + TResult>( + IObservable source1, + IObservable source2, + IObservable source3, + IObservable source4, + IObservable source5, + IObservable source6, + IObservable source7, + IObservable source8, + IObservable source9, + IObservable source10, + IObservable source11, + IObservable source12, + IObservable source13, + IObservable source14, + IObservable source15, + IObservable source16, + Func resultSelector) => + LinqExtensions.CombineLatest( + source1, + source2, + source3, + source4, + source5, + source6, + source7, + source8, + source9, + source10, + source11, + source12, + source13, + source14, + source15, + source16, + resultSelector); +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/DeferredPropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/DeferredPropertyObservable.cs new file mode 100644 index 00000000..a53ddca8 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/DeferredPropertyObservable.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// Observes a property that has no change notification by reading it when a subscriber arrives: its value at that +/// moment, once, and then silence. +/// +/// The type that declares the property. +/// The type of the property value. +/// +/// Unlike , which carries the value it was built with, each +/// subscription reads the property afresh. The sequence never completes, so a binding or chain that observes it +/// stays subscribed. +/// +[DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class DeferredPropertyObservable : IObservable +{ + /// The object the property is read from. + private readonly TSource _source; + + /// Reads the property from the source. + private readonly Func _getter; + + /// Initializes a new instance of the class. + /// The object the property is read from. + /// Reads the property from the source. + /// is . + public DeferredPropertyObservable(TSource source, Func getter) + { + ArgumentExceptionHelper.ThrowIfNull(getter); + + _source = source; + _getter = getter; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + observer.OnNext(_getter(_source)); + + return EmptyDisposable.Instance; + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/EventObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/EventObservable.cs new file mode 100644 index 00000000..c5f1c7bc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/EventObservable.cs @@ -0,0 +1,156 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Emits a value on subscribe, then again each time an event is raised. +/// The type of the property value. +/// +/// The value comes from the getter, which is read on subscribe and on every raise, so the event's arguments are +/// ignored. The value read on subscribe is always emitted. When distinct filtering is on, a later value equal to +/// the last emitted one is dropped. A getter that throws on subscribe makes Subscribe throw after the handler is +/// detached, and one that throws while the event is raised propagates to whoever raised it. The sequence never +/// completes. +/// +[DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class EventObservable : IObservable +{ + /// Delegate that subscribes the handler to the event source. + private readonly Action _addHandler; + + /// Delegate that unsubscribes the handler from the event source. + private readonly Action _removeHandler; + + /// Delegate that reads the current property value from the source. + private readonly Func _getter; + + /// Whether to suppress duplicate consecutive values. + private readonly bool _distinctUntilChanged; + + /// Initializes a new instance of the class. + /// A delegate that subscribes an to the property change event. + /// A delegate that unsubscribes an from the property change event. + /// A delegate that reads the current property value. + /// Whether to suppress duplicate consecutive values. + /// , or is . + public EventObservable( + Action addHandler, + Action removeHandler, + Func getter, + bool distinctUntilChanged) + { + ArgumentExceptionHelper.ThrowIfNull(addHandler); + ArgumentExceptionHelper.ThrowIfNull(removeHandler); + ArgumentExceptionHelper.ThrowIfNull(getter); + _addHandler = addHandler; + _removeHandler = removeHandler; + _getter = getter; + _distinctUntilChanged = distinctUntilChanged; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer); + } + + /// Manages the event subscription for a single observer, with optional distinct-until-changed filtering. + private sealed class Subscription : IDisposable + { + /// The parent observable that owns the add/remove handlers and getter. + private readonly EventObservable _parent; + + /// The equality comparer used for distinct-until-changed filtering. + private readonly EqualityComparer _comparer; + + /// The downstream observer. Set to on disposal. + private IObserver? _observer; + + /// The most recently emitted value, used for distinct-until-changed comparison. + private T _lastValue; + + /// Whether at least one value has been emitted. + private bool _hasValue; + + /// Initializes a new instance of the class. Subscribes to the event source and emits the initial property value. + /// The parent observable. + /// The downstream observer. + /// A throw from the initial emit detaches the handler before propagating, as the caller never receives a disposable. + public Subscription(EventObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _comparer = EqualityComparer.Default; + + parent._addHandler(OnValueChanged); + + try + { + // Emit initial (StartWith) value + var initial = parent._getter(); + _lastValue = initial; + _hasValue = true; + observer.OnNext(initial); + } + catch + { + Dispose(); + throw; + } + } + + /// + public void Dispose() + { + if (!TrySetDisposed()) + { + return; + } + + _parent._removeHandler(OnValueChanged); + } + + /// Atomically nulls the observer, returning whether it was previously non-null. + /// if this is the first disposal; otherwise . + [ExcludeFromCodeCoverage] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private bool TrySetDisposed() => Interlocked.Exchange(ref _observer, null) is not null; + + /// + /// Handles the event and forwards the current property value to the observer + /// if it passes the distinct-until-changed filter. + /// + /// The event sender. + /// The event arguments. + private void OnValueChanged(object? sender, EventArgs e) + { + var observer = Volatile.Read(ref _observer); + if (observer is null) + { + return; + } + + var value = _parent._getter(); + + if (_parent._distinctUntilChanged && _hasValue && _comparer.Equals(value, _lastValue)) + { + return; + } + + _lastValue = value; + _hasValue = true; + observer.OnNext(value); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/InitialBindingSignal.cs b/src/ReactiveUI.Binding.Shared/Observables/InitialBindingSignal.cs new file mode 100644 index 00000000..6e8973dc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/InitialBindingSignal.cs @@ -0,0 +1,96 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Wires both binding directions before emitting the initial view model signal. +/// The combined direction signals. +internal sealed class InitialBindingSignal(IObservable source) : IObservable +{ + /// + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + return new Subscription(observer).Start(source); + } + + /// Suppresses attachment snapshots and serializes updates behind the initial signal. + /// The observer receiving direction signals. + private sealed class Subscription(IObserver observer) : IObserver, IDisposable + { + /// The downstream observer. + private readonly IObserver _observer = observer; + + /// Owns the combined notification subscription. + private readonly SwapDisposable _upstream = new(); + + /// The mutable delivery state, called in place. + private SerializedDelivery _delivery = new(); + + /// Whether both directions have been attached. + private bool _ready; + + /// + public void Dispose() + { + _delivery.Stop(); + _upstream.Dispose(); + } + + /// + public void OnNext(bool value) + { + if (Volatile.Read(ref _ready)) + { + _delivery.OnNext(_observer, value, new Drain(this)); + } + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => _delivery.OnError(error, new Drain(this)); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() => _delivery.OnCompleted(new Drain(this)); + + /// Reserves the initial delivery while attaching the source. + /// The notifications to attach. + /// This subscription. + internal Subscription Start(IObservable source) + { + _ = _delivery.TryClaim(); + try + { + _upstream.Disposable = source.Subscribe(this); + Volatile.Write(ref _ready, true); + _delivery.DeliverClaimed(_observer, true, new Drain(this)); + return this; + } + catch + { + Dispose(); + throw; + } + } + + /// Drains pending directions and releases a terminated source. + /// The subscription holding delivery state. + private readonly record struct Drain(Subscription Owner) : IDrainTarget + { + /// + void IDrainTarget.Drain() + { + if (Owner._delivery.DrainTo(Owner._observer)) + { + Owner._upstream.Dispose(); + } + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/NotificationKind.cs b/src/ReactiveUI.Binding.Shared/Observables/NotificationKind.cs new file mode 100644 index 00000000..a51d5907 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/NotificationKind.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// The three notifications an observer receives. +internal enum NotificationKind +{ + /// A value. + Next = 0, + + /// A terminating error. + Error = 1, + + /// Successful completion. + Completed = 2, +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/NotifyPropertyChangedObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/NotifyPropertyChangedObservable.cs new file mode 100644 index 00000000..c7b30e9f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/NotifyPropertyChangedObservable.cs @@ -0,0 +1,171 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Emits an observed change each time the sender raises a notification for one property. +/// +/// It observes when before-change is requested and the sender implements it, +/// and otherwise. A notification with a null or empty property name matches +/// every property. Nothing is emitted on subscribe, and the emitted change carries no value: the sender and +/// expression identify the property to read. The sequence never completes. +/// +[DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class NotifyPropertyChangedObservable : IObservable> +{ + /// The source object raising the notifications. + private readonly object _sender; + + /// The expression surfaced on the emitted observed change. + private readonly Expression _expression; + + /// The property name to match, ending in [] for an indexer. + private readonly string _observedPropertyName; + + /// Whether to observe before-change () notifications. + private readonly bool _beforeChanged; + + /// Initializes a new instance of the class. + /// The source object raising the notifications. + /// The expression surfaced on the emitted observed change. + /// The property name to match, ending in [] for an indexer. + /// Whether to observe before-change notifications. + /// , or is . + public NotifyPropertyChangedObservable(object sender, Expression expression, string expectedName, bool beforeChanged) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + ArgumentExceptionHelper.ThrowIfNull(expression); + ArgumentExceptionHelper.ThrowIfNull(expectedName); + _sender = sender; + _expression = expression; + _observedPropertyName = expectedName; + _beforeChanged = beforeChanged; + } + + /// + /// is . + public IDisposable Subscribe(IObserver> observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(_sender, _expression, _observedPropertyName, _beforeChanged, observer); + } + + /// + /// Manages the event subscription for a single observer: wires the appropriate change event, + /// filters notifications by property name, and forwards a single prebuilt observed change. + /// + private sealed class Subscription : IDisposable + { + /// The before-change source, or when observing after-change. + private readonly INotifyPropertyChanging? _changing; + + /// The after-change source, or when observing before-change. + private readonly INotifyPropertyChanged? _changed; + + /// The observed property name (an empty notified name means "all properties"). + private readonly string _observedPropertyName; + + /// + /// The change forwarded on every matching notification. It is constant for the subscription + /// (fixed sender and expression, lazily-read value), so it is built once and reused. + /// + private readonly IObservedChange _change; + + /// The downstream observer. Set to on disposal. + private IObserver>? _observer; + + /// Initializes a new instance of the class and wires the change event. + /// The source object raising the notifications. + /// The expression surfaced on the emitted observed change. + /// The observed property name. + /// Whether to observe before-change notifications. + /// The downstream observer. + public Subscription( + object sender, + Expression expression, + string expectedName, + bool beforeChanged, + IObserver> observer) + { + _observedPropertyName = expectedName; + _observer = observer; + _change = new ObservedChange(sender, expression, default); + + if (beforeChanged && sender is INotifyPropertyChanging changing) + { + _changing = changing; + changing.PropertyChanging += OnPropertyChanging; + } + else if (sender is INotifyPropertyChanged changed) + { + _changed = changed; + changed.PropertyChanged += OnPropertyChanged; + } + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _observer, null) is null) + { + return; + } + + if (_changing is not null) + { + _changing.PropertyChanging -= OnPropertyChanging; + } + + if (_changed is null) + { + return; + } + + _changed.PropertyChanged -= OnPropertyChanged; + } + + /// + /// Determines whether a notified property name matches the observed property + /// (an empty notified name means "all properties"). + /// + /// The property name carried by the notification. + /// if the notification applies to the observed property. + private bool Matches(string? notifiedName) => + string.IsNullOrEmpty(notifiedName) + || string.Equals(notifiedName, _observedPropertyName, StringComparison.InvariantCulture); + + /// Handles , forwarding the change when the name matches. + /// The event sender. + /// The property-changed event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e) => Forward(e.PropertyName); + + /// Handles , forwarding the change when the name matches. + /// The event sender. + /// The property-changing event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void OnPropertyChanging(object? sender, PropertyChangingEventArgs e) => Forward(e.PropertyName); + + /// Forwards the change to the observer when the notified name matches the observed property. + /// The property name carried by the notification. + private void Forward(string? notifiedName) + { + if (!Matches(notifiedName)) + { + return; + } + + Volatile.Read(ref _observer)?.OnNext(_change); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/PluginObservationSource.cs b/src/ReactiveUI.Binding.Shared/Observables/PluginObservationSource.cs new file mode 100644 index 00000000..0f5c9de1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/PluginObservationSource.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// Chooses between the observation the generator emitted for one link of a property chain and a registered +/// that outranks the mechanism it was built from. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +public static class PluginObservationSource +{ + /// Returns the registration's observation of a property, or the generated one when none outranks it. + /// The type of the property value. + /// The object the property is read from. + /// The property as the generated code names it. + /// The name of the property being observed. + /// Whether before-change notifications are being observed. + /// The affinity of the mechanism the generator picked for this link. + /// Reads the current property value from the source. + /// The observation the generator emitted for this link. + /// + /// The generated observation when no registration outranks ; otherwise a + /// that does not filter consecutive equal values. + /// + /// or is . + public static IObservable Choose( + object source, + Expression expression, + string propertyName, + bool beforeChange, + int generatedAffinity, + Func getter, + IObservable generated) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(generated); + + var plugin = ObservationAffinityChecker.FindHigherAffinityPlugin( + source.GetType(), + propertyName, + generatedAffinity, + beforeChange); + + return plugin is null + ? generated + : new PluginPropertyObservable(plugin, source, expression, propertyName, getter, beforeChange, false); + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/PluginPropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/PluginPropertyObservable.cs new file mode 100644 index 00000000..e5765bf9 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/PluginPropertyObservable.cs @@ -0,0 +1,251 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// Observes one property through a registered that outranks the +/// mechanism the generator selected, reading the value through a generated accessor. +/// +/// The type of the property value. +/// +/// The plugin says when the property changed; the value is read with the supplied getter, never from the +/// notification. The current value is emitted on subscribe and again after each notification. An error or +/// completion from the plugin is passed on after any value still waiting to be read. +/// +[DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class PluginPropertyObservable : IObservable +{ + /// The registration that outranked the generated mechanism. + private readonly ICreatesObservableForProperty _plugin; + + /// The object the property is read from. + private readonly object _source; + + /// The property as the call site named it, handed to the plugin unchanged. + private readonly Expression _expression; + + /// The name of the property being observed. + private readonly string _propertyName; + + /// Reads the current property value from the source. + private readonly Func _getter; + + /// Whether before-change notifications are being observed. + private readonly bool _beforeChange; + + /// Whether to suppress duplicate consecutive values. + private readonly bool _distinctUntilChanged; + + /// Initializes a new instance of the class. + /// The registration that outranked the generated mechanism. + /// The object the property is read from. + /// The property as the call site named it. + /// The name of the property being observed. + /// Reads the current property value from the source. + /// Whether before-change notifications are being observed. + /// Whether to suppress duplicate consecutive values. + /// Any reference-type argument is . + public PluginPropertyObservable( + ICreatesObservableForProperty plugin, + object source, + Expression expression, + string propertyName, + Func getter, + bool beforeChange, + bool distinctUntilChanged) + { + ArgumentExceptionHelper.ThrowIfNull(plugin); + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(expression); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + ArgumentExceptionHelper.ThrowIfNull(getter); + _plugin = plugin; + _source = source; + _expression = expression; + _propertyName = propertyName; + _getter = getter; + _beforeChange = beforeChange; + _distinctUntilChanged = distinctUntilChanged; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer).Start(); + } + + /// Relays one observer's subscription to the plugin, with the distinct gate applied inline. + internal sealed class Subscription : IDisposable, IObserver> + { + /// The parent observable that owns the source and property metadata. + private readonly PluginPropertyObservable _parent; + + /// The downstream observer. + private IObserver _observer; + + /// The plugin's own subscription, dropped when this one is. + private IDisposable _inner = EmptyDisposable.Instance; + + /// Serializes current-value reads and terminal notifications. + private CurrentValueDelivery _delivery; + + /// Whether this subscription has been disposed. + private int _disposed; + + /// Whether a provider notification is waiting to be read. + private int _pendingChange; + + /// Initializes a new instance of the class. + /// The parent observable. + /// The downstream observer. + public Subscription(PluginPropertyObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _delivery = new(parent._distinctUntilChanged); + } + + /// + public void OnNext(IObservedChange value) + { + if (_delivery.IsTerminated) + { + return; + } + + Volatile.Write(ref _pendingChange, 1); + _delivery.Changed(new Drain(this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnError(Exception error) => _delivery.Fault(error, new Drain(this)); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void OnCompleted() => _delivery.Complete(new Drain(this)); + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + _delivery.Stop(); + _inner.Dispose(); + } + + /// Attaches the provider before delivering the initial value. + /// The subscription owning the provider registration. + internal IDisposable Start() + { + _observer = new DeliveryObserver(this, _observer); + try + { + _inner = _parent._plugin.GetNotificationForProperty( + _parent._source, + _parent._expression, + _parent._propertyName, + _parent._beforeChange, + false).Subscribe(this); + _delivery.Start(new Drain(this)); + return this; + } + catch + { + Dispose(); + throw; + } + } + + /// Reads the current property value inside the delivery gate. + /// The subscription owning the getter. + private readonly record struct Reader(Subscription Owner) : ICurrentValueReader + { + /// + public T Read() + { + _ = Interlocked.Exchange(ref Owner._pendingChange, 0); + return Owner._parent._getter(Owner._parent._source)!; + } + } + + /// Drains pending changes and the terminal notification into the observer. + /// The subscription owning delivery state. + private readonly record struct Drain(Subscription Owner) : IDrainTarget + { + /// + void IDrainTarget.Drain() => _ = Owner._delivery.DrainTo(Owner._observer, new Reader(Owner)); + } + + /// Reads a change raised inside the current delivery before passing on its terminal notification. + /// The subscription holding the pending read. + /// The downstream observer. + private sealed class DeliveryObserver(Subscription owner, IObserver observer) : IObserver + { + /// The last value emitted by the delivery gate. + private T? _lastValue; + + /// + public void OnNext(T value) + { + _lastValue = value; + observer.OnNext(value); + } + + /// + public void OnError(Exception error) + { + DeliverPendingValue(); + if (Volatile.Read(ref owner._disposed) == 0) + { + observer.OnError(error); + } + } + + /// + public void OnCompleted() + { + DeliverPendingValue(); + if (Volatile.Read(ref owner._disposed) == 0) + { + observer.OnCompleted(); + } + } + + /// Delivers a pending current value while the terminal notification owns the delivery gate. + private void DeliverPendingValue() + { + if (Interlocked.Exchange(ref owner._pendingChange, 0) == 0) + { + return; + } + + var value = owner._parent._getter(owner._parent._source)!; + if (Volatile.Read(ref owner._disposed) != 0) + { + return; + } + + if (!owner._parent._distinctUntilChanged || !EqualityComparer.Default.Equals(value, _lastValue!)) + { + observer.OnNext(value); + } + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/PropertyChangingObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/PropertyChangingObservable.cs new file mode 100644 index 00000000..73636689 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/PropertyChangingObservable.cs @@ -0,0 +1,150 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// +/// Emits the current value of a property on subscribe, then its value as it stands before each change that an +/// source announces. +/// +/// The type of the property value. +/// +/// A notification with a null or empty property name applies +/// to every property. Consecutive equal values are not filtered, because the value has not changed when the event +/// fires. +/// +[DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class PropertyChangingObservable : IObservable +{ + /// The source object implementing . + private readonly INotifyPropertyChanging _source; + + /// The name of the property to observe. + private readonly string _propertyName; + + /// A delegate that reads the current property value from the source. + private readonly Func _getter; + + /// Initializes a new instance of the class. + /// The object implementing . + /// The property name to observe. + /// A delegate that reads the property value from the source. + /// , or is . + public PropertyChangingObservable( + INotifyPropertyChanging source, + string propertyName, + Func getter) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + ArgumentExceptionHelper.ThrowIfNull(getter); + _source = source; + _propertyName = propertyName; + _getter = getter; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer).Start(); + } + + /// Manages the event subscription for a single observer. + internal sealed class Subscription : IDisposable + { + /// The parent observable that owns the source and property metadata. + private readonly PropertyChangingObservable _parent; + + /// The downstream observer. + private readonly IObserver _observer; + + /// Serializes captured values and permits nested delivery before a property write. + private SerializedDelivery _delivery; + + /// Whether the subscription has been disposed. + private int _disposed; + + /// Initializes a new instance of the class. + /// The parent observable. + /// The downstream observer. + public Subscription(PropertyChangingObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _delivery = new(reentrant: true); + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + _delivery.Stop(); + _parent._source.PropertyChanging -= OnPropertyChanging; + } + + /// Attaches notifications and reads the initial value inside the delivery gate. + /// The subscription owning the event handler. + internal IDisposable Start() + { + try + { + _parent._source.PropertyChanging += OnPropertyChanging; + _delivery.Start(_observer, new Reader(this), new Drain(this)); + return this; + } + catch + { + Dispose(); + throw; + } + } + + /// Handles the event and forwards the current property value to the observer. + /// The event sender. + /// The event arguments containing the property name. + private void OnPropertyChanging(object? sender, PropertyChangingEventArgs e) + { + if (e.PropertyName != _parent._propertyName + && !string.IsNullOrEmpty(e.PropertyName)) + { + return; + } + + if (Volatile.Read(ref _disposed) == 0) + { + _delivery.OnNext(_observer, _parent._getter(_parent._source)!, new Drain(this)); + } + } + + /// Reads the initial value inside the delivery gate. + /// The subscription owning the getter. + private readonly record struct Reader(Subscription Owner) : ICurrentValueReader + { + /// + public T Read() => Owner._parent._getter(Owner._parent._source)!; + } + + /// Drains captured values into the observer. + /// The subscription owning delivery state. + private readonly record struct Drain(Subscription Owner) : IDrainTarget + { + /// + void IDrainTarget.Drain() => _ = Owner._delivery.DrainTo(Owner._observer); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/PropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/PropertyObservable.cs new file mode 100644 index 00000000..491453f9 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/PropertyObservable.cs @@ -0,0 +1,152 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Emits a property's value on subscribe, then its new value after each change the source announces. +/// The type of the property value. +/// +/// A notification with a null or empty property name applies +/// to every property. When distinct filtering is on, a value equal to the last emitted one is dropped. +/// +[DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class PropertyObservable : IObservable +{ + /// The source object implementing . + private readonly INotifyPropertyChanged _source; + + /// The name of the property to observe. + private readonly string _propertyName; + + /// A delegate that reads the current property value from the source. The value may be for reference-typed properties. + private readonly Func _getter; + + /// Whether to suppress duplicate consecutive values. + private readonly bool _distinctUntilChanged; + + /// Initializes a new instance of the class. + /// The object implementing . + /// The property name to observe. + /// A delegate that reads the property value from the source. + /// Whether to suppress duplicate consecutive values. + /// , or is . + public PropertyObservable( + INotifyPropertyChanged source, + string propertyName, + Func getter, + bool distinctUntilChanged) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(propertyName); + ArgumentExceptionHelper.ThrowIfNull(getter); + _source = source; + _propertyName = propertyName; + _getter = getter; + _distinctUntilChanged = distinctUntilChanged; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer).Start(); + } + + /// Manages the event subscription for a single observer, with optional distinct-until-changed filtering. + internal sealed class Subscription : IDisposable + { + /// The parent observable that owns the source and property metadata. + private readonly PropertyObservable _parent; + + /// The downstream observer. + private readonly IObserver _observer; + + /// Serializes reads and delivery without holding a lock across the observer. + private CurrentValueDelivery _delivery; + + /// Whether this subscription has been disposed. + private int _disposed; + + /// Initializes a new instance of the class. + /// The parent observable. + /// The downstream observer. + public Subscription(PropertyObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _delivery = new(parent._distinctUntilChanged); + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + _delivery.Stop(); + _parent._source.PropertyChanged -= OnPropertyChanged; + } + + /// Attaches notifications before reading the initial value inside the delivery gate. + /// The subscription owning the event handler. + internal IDisposable Start() + { + try + { + _parent._source.PropertyChanged += OnPropertyChanged; + _delivery.Start(new Drain(this)); + return this; + } + catch + { + Dispose(); + throw; + } + } + + /// + /// Handles the event + /// and forwards the current property value to the observer if it passes the distinct-until-changed filter. + /// + /// The event sender. + /// The event arguments containing the property name. + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e) + { + if (e.PropertyName != _parent._propertyName + && !string.IsNullOrEmpty(e.PropertyName)) + { + return; + } + + _delivery.Changed(new Drain(this)); + } + + /// Reads the current property value inside the delivery gate. + /// The subscription owning the getter. + private readonly record struct Reader(Subscription Owner) : ICurrentValueReader + { + /// + public T Read() => Owner._parent._getter(Owner._parent._source)!; + } + + /// Drains pending changes into the observer. + /// The subscription owning delivery state. + private readonly record struct Drain(Subscription Owner) : IDrainTarget + { + /// + void IDrainTarget.Drain() => _ = Owner._delivery.DrainTo(Owner._observer, new Reader(Owner)); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/UnchangingPropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/UnchangingPropertyObservable.cs new file mode 100644 index 00000000..116eda32 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/UnchangingPropertyObservable.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Observes a property that has no change notification: its value, once, and then silence. +/// The type of the property value. +/// +/// The sequence never completes, so a binding or chain that observes it stays subscribed. +/// +[DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class UnchangingPropertyObservable : IObservable +{ + /// The only value this observation will ever carry. + private readonly T _value; + + /// Initializes a new instance of the class. + /// The property's current value, which is also its final one. + public UnchangingPropertyObservable(T value) => _value = value; + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + observer.OnNext(_value); + + return new Subscription(); + } + + /// + /// The teardown for a subscription that holds nothing. Disposing it is what a caller does with the + /// handle it was given; there is no handler to unhook and no completion to suppress. + /// + private sealed class Subscription : IDisposable + { + /// + public void Dispose() + { + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16}.cs new file mode 100644 index 00000000..bcc5126c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16}.cs @@ -0,0 +1,65 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 16 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The type of the twelfth observed property. +/// The type of the thirteenth observed property. +/// The type of the fourteenth observed property. +/// The type of the fifteenth observed property. +/// The type of the sixteenth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +/// The value of the twelfth observed property. +/// The value of the thirteenth observed property. +/// The value of the fourteenth observed property. +/// The value of the fifteenth observed property. +/// The value of the sixteenth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11, + T12 Property12, + T13 Property13, + T14 Property14, + T15 Property15, + T16 Property16); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15}.cs new file mode 100644 index 00000000..46d985ef --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15}.cs @@ -0,0 +1,62 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 15 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The type of the twelfth observed property. +/// The type of the thirteenth observed property. +/// The type of the fourteenth observed property. +/// The type of the fifteenth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +/// The value of the twelfth observed property. +/// The value of the thirteenth observed property. +/// The value of the fourteenth observed property. +/// The value of the fifteenth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11, + T12 Property12, + T13 Property13, + T14 Property14, + T15 Property15); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14}.cs new file mode 100644 index 00000000..67eebdcc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14}.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 14 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The type of the twelfth observed property. +/// The type of the thirteenth observed property. +/// The type of the fourteenth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +/// The value of the twelfth observed property. +/// The value of the thirteenth observed property. +/// The value of the fourteenth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11, + T12 Property12, + T13 Property13, + T14 Property14); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13}.cs new file mode 100644 index 00000000..d69739c6 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13}.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 13 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The type of the twelfth observed property. +/// The type of the thirteenth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +/// The value of the twelfth observed property. +/// The value of the thirteenth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11, + T12 Property12, + T13 Property13); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12}.cs new file mode 100644 index 00000000..8f68ca2d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12}.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 12 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The type of the twelfth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +/// The value of the twelfth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11, + T12 Property12); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11}.cs new file mode 100644 index 00000000..615dcd43 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11}.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 11 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The type of the eleventh observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +/// The value of the eleventh observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10, + T11 Property11); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10}.cs new file mode 100644 index 00000000..0bb634c2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9, T10}.cs @@ -0,0 +1,47 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 10 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The type of the tenth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +/// The value of the tenth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9, + T10 Property10); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9}.cs new file mode 100644 index 00000000..ae7cf7cd --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8, T9}.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 9 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The type of the ninth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +/// The value of the ninth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8, + T9 Property9); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8}.cs new file mode 100644 index 00000000..e6862ad9 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7, T8}.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 8 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The type of the eighth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +/// The value of the eighth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7, + T8 Property8); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7}.cs new file mode 100644 index 00000000..57b84384 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6, T7}.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 7 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The type of the seventh observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +/// The value of the seventh observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6, + T7 Property7); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6}.cs new file mode 100644 index 00000000..5bb9d25f --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5, T6}.cs @@ -0,0 +1,35 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 6 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The type of the sixth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +/// The value of the sixth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5, + T6 Property6); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5}.cs new file mode 100644 index 00000000..e969729c --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4, T5}.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 5 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The type of the fifth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +/// The value of the fifth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4, + T5 Property5); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4}.cs new file mode 100644 index 00000000..ba3adbb3 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3, T4}.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 4 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The type of the fourth observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +/// The value of the fourth observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3, + T4 Property4); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3}.cs new file mode 100644 index 00000000..efe75b37 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2, T3}.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 3 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The type of the third observed property. +/// The value of the first observed property. +/// The value of the second observed property. +/// The value of the third observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] +[SuppressMessage( + "Design", + "CA1005:Avoid excessive parameters on generic types", + Justification = "One arity-expanded emission per observed-property count; the type parameters are the observed properties.")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2, + T3 Property3); diff --git a/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2}.cs b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2}.cs new file mode 100644 index 00000000..046f7166 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/Values/PropertyValues{T1, T2}.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// The values of 2 observed properties, as one emission. +/// The type of the first observed property. +/// The type of the second observed property. +/// The value of the first observed property. +/// The value of the second observed property. +[DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] +public readonly record struct PropertyValues( + T1 Property1, + T2 Property2); diff --git a/src/ReactiveUI.Binding.Shared/Observables/ViewThreadObservable.cs b/src/ReactiveUI.Binding.Shared/Observables/ViewThreadObservable.cs new file mode 100644 index 00000000..35f4245a --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Observables/ViewThreadObservable.cs @@ -0,0 +1,278 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Delivers each notification on the thread that owns the object a binding writes to, or on a sequencer. +/// The type of the observed values. +/// +/// Both forms deliver only the latest value that is waiting. A delivery on a sequencer never runs inline, so a +/// two-way binding that names a sequencer writes each side once with the newest value rather than replaying +/// every value the other side raised in between. +/// +internal sealed class ViewThreadObservable : IObservable +{ + /// The observable feeding the write. + private readonly IObservable _source; + + /// The object the write lands on, or null when a sequencer delivers. + private readonly object? _target; + + /// The invoker for the thread that owns , or null when a sequencer delivers. + private readonly IViewThreadInvoker? _invoker; + + /// The sequencer that delivers, or null when the owning thread does. + private readonly ISequencer? _sequencer; + + /// Initializes a new instance of the class that delivers on the thread owning an object. + /// The observable feeding the write. + /// The object the write lands on. + /// The invoker for the thread that owns . + internal ViewThreadObservable(IObservable source, object target, IViewThreadInvoker invoker) + { + _source = source; + _target = target; + _invoker = invoker; + } + + /// Initializes a new instance of the class that delivers on a sequencer. + /// The observable feeding the write. + /// The sequencer every delivery waits on. + internal ViewThreadObservable(IObservable source, ISequencer sequencer) + { + _source = source; + _sequencer = sequencer; + } + + /// + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + var sink = new Sink(observer, _target, _invoker, _sequencer); + sink.Attach(_source.Subscribe(sink)); + return sink; + } + + /// The subscription that writes inline on the owning thread and holds the latest value for it otherwise. + /// The observer applying the write. + /// The object the write lands on, or null when a sequencer delivers. + /// The invoker for the thread that owns , or null when a sequencer delivers. + /// The sequencer that delivers, or null when the owning thread does. + private sealed class Sink(IObserver observer, object? target, IViewThreadInvoker? invoker, ISequencer? sequencer) : IObserver, IDisposable + { + /// Guards the waiting notifications and the scheduled flag. + private readonly Lock _gate = new(); + + /// The upstream subscription, or null once disposed. + private IDisposable? _upstream; + + /// The latest value waiting for the owning thread. + private T? _value; + + /// Whether holds a value. + private bool _hasValue; + + /// The error waiting for the owning thread, or null. + private Exception? _error; + + /// Whether completion is waiting for the owning thread. + private bool _completed; + + /// Whether a drain is scheduled or running. + private bool _scheduled; + + /// Non-zero once the subscription is disposed. + private int _disposed; + + /// Takes ownership of the upstream subscription. + /// The subscription to the source. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Attach(IDisposable upstream) => Volatile.Write(ref _upstream, upstream); + + /// + public void OnNext(T value) + { + if (Admit(NotificationKind.Next, value, null)) + { + observer.OnNext(value); + } + } + + /// + public void OnError(Exception error) + { + if (Admit(NotificationKind.Error, default, error)) + { + observer.OnError(error); + } + } + + /// + public void OnCompleted() + { + if (Admit(NotificationKind.Completed, default, null)) + { + observer.OnCompleted(); + } + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + // The caller only holds this subscription once Subscribe has attached the upstream one. + Interlocked.Exchange(ref _upstream, null)!.Dispose(); + } + + /// Decides whether a notification runs on the calling thread, and holds it for the owning thread otherwise. + /// Which notification arrived. + /// The value, for a next notification. + /// The error, for an error notification. + /// when the caller should deliver the notification now. + private bool Admit(NotificationKind kind, T? value, Exception? error) + { + if (Volatile.Read(ref _disposed) != 0) + { + return false; + } + + bool startDrain; + lock (_gate) + { + if (!_scheduled && sequencer is null && invoker!.CheckAccess(target!)) + { + return true; + } + + Hold(kind, value, error); + startDrain = !_scheduled; + _scheduled = true; + } + + if (startDrain) + { + ScheduleDrain(); + } + + return false; + } + + /// Holds a notification until the drain runs. + /// Which notification arrived. + /// The value, for a next notification. + /// The error, for an error notification. + private void Hold(NotificationKind kind, T? value, Exception? error) + { + switch (kind) + { + case NotificationKind.Next: + { + // A newer value replaces a waiting one, so an echo of an earlier write never writes an old value back. + _value = value; + _hasValue = true; + break; + } + + case NotificationKind.Error: + { + _error = error; + break; + } + + default: + { + _completed = true; + break; + } + } + } + + /// Schedules the drain on the sequencer when one is named, on the host's main thread when one is set, and through the invoker otherwise. + private void ScheduleDrain() + { + var deliverOn = sequencer ?? BindingSchedulers.MainThread; + if (deliverOn is null) + { + invoker!.Post(target!, static state => ((Sink)state!).Drain(), this); + return; + } + + _ = deliverOn.Schedule( + this, + static (_, sink) => + { + sink.Drain(); + return EmptyDisposable.Instance; + }); + } + + /// Delivers what is waiting until nothing is left, including anything held while a write runs. + private void Drain() + { + while (true) + { + T? value; + bool hasValue; + Exception? error; + bool completed; + + lock (_gate) + { + if (!_hasValue && _error is null && !_completed) + { + _scheduled = false; + return; + } + + value = _value; + hasValue = _hasValue; + error = _error; + completed = _completed; + _value = default; + _hasValue = false; + _error = null; + _completed = false; + } + + if (Volatile.Read(ref _disposed) != 0) + { + continue; + } + + Deliver(value, hasValue, error, completed); + } + } + + /// Hands the waiting value, then any terminal notification, to the observer. + /// The waiting value. + /// Whether a value was waiting. + /// The waiting error, or null. + /// Whether completion was waiting. + private void Deliver(T? value, bool hasValue, Exception? error, bool completed) + { + if (hasValue) + { + observer.OnNext(value!); + } + + if (error is not null) + { + observer.OnError(error); + } + else if (completed) + { + observer.OnCompleted(); + } + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Platforms/Platforms.targets b/src/ReactiveUI.Binding.Shared/Platforms/Platforms.targets new file mode 100644 index 00000000..e8e1e100 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Platforms/Platforms.targets @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoCallbackObserver.cs b/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoCallbackObserver.cs new file mode 100644 index 00000000..1f1ced81 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoCallbackObserver.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Foundation; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Receives key-value observing callbacks and forwards each to a delegate. +internal sealed class KvoCallbackObserver : NSObject +{ + /// Runs on each change the registration reports. + private readonly Action _callback; + + /// Initializes a new instance of the class. + /// Runs on each change the registration reports. + public KvoCallbackObserver(Action callback) => _callback = callback; + + /// + public override void ObserveValue(NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context) => _callback(); +} diff --git a/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoPropertyObservable.cs b/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoPropertyObservable.cs new file mode 100644 index 00000000..23590714 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Platforms/apple-common/KvoPropertyObservable.cs @@ -0,0 +1,135 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.InteropServices; +using Foundation; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Observables; +#else +namespace ReactiveUI.Binding.Observables; +#endif + +/// Observes an Apple object's property through key-value observing. +/// The type of the property value. +/// +/// Each subscription registers its own observer for the key path and delivers the current value straight away. The +/// sequence never completes. Disposing a subscription removes the observer once, however many times it is disposed. +/// +[DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class KvoPropertyObservable : IObservable +{ + /// The object whose property is observed. + private readonly NSObject _source; + + /// The key path of the observed property. + private readonly NSString _keyPath; + + /// Reads the property from the source. + private readonly Func _getter; + + /// Whether a value equal to the last one delivered is suppressed. + private readonly bool _distinct; + + /// Which value the observer registration asks KVO to report. + private readonly NSKeyValueObservingOptions _options; + + /// Initializes a new instance of the class. + /// The object whose property is observed. + /// The key path of the observed property. + /// Reads the property from the source. + /// Whether a value equal to the last one delivered is suppressed. + /// Whether the observation reports the value before a change rather than after it. + /// , or is . + public KvoPropertyObservable(NSObject source, string keyPath, Func getter, bool distinct, bool beforeChange) + { + ArgumentExceptionHelper.ThrowIfNull(source); + ArgumentExceptionHelper.ThrowIfNull(keyPath); + ArgumentExceptionHelper.ThrowIfNull(getter); + + _source = source; + _keyPath = (NSString)keyPath; + _getter = getter; + _distinct = distinct; + _options = beforeChange ? NSKeyValueObservingOptions.Old : NSKeyValueObservingOptions.New; + } + + /// + /// is . + public IDisposable Subscribe(IObserver observer) + { + ArgumentExceptionHelper.ThrowIfNull(observer); + + return new Subscription(this, observer); + } + + /// One subscriber's key-value observer registration. + private sealed class Subscription : IDisposable + { + /// The observation this subscription belongs to. + private readonly KvoPropertyObservable _parent; + + /// The native observer registered for the key path. + private readonly KvoCallbackObserver _kvoObserver; + + /// Keeps the native observer alive while it is registered. + private readonly GCHandle _handle; + + /// The subscriber, or null once disposed. + private IObserver? _observer; + + /// The last value delivered. + private T _lastValue; + + /// Initializes a new instance of the class, registering and delivering the current value. + /// The observation this subscription belongs to. + /// The subscriber. + public Subscription(KvoPropertyObservable parent, IObserver observer) + { + _parent = parent; + _observer = observer; + _kvoObserver = new(OnValueChanged); + _handle = GCHandle.Alloc(_kvoObserver); + + parent._source.AddObserver(_kvoObserver, parent._keyPath, parent._options, IntPtr.Zero); + + _lastValue = parent._getter(parent._source); + observer.OnNext(_lastValue); + } + + /// + public void Dispose() + { + if (Interlocked.Exchange(ref _observer, null) is null) + { + return; + } + + _parent._source.RemoveObserver(_kvoObserver, _parent._keyPath); + _handle.Free(); + _kvoObserver.Dispose(); + } + + /// Reads the property and delivers it, unless disposed or unchanged under distinct delivery. + private void OnValueChanged() + { + var observer = Volatile.Read(ref _observer); + if (observer is null) + { + return; + } + + var value = _parent._getter(_parent._source); + if (_parent._distinct && EqualityComparer.Default.Equals(value, _lastValue)) + { + return; + } + + _lastValue = value; + observer.OnNext(value); + } + } +} diff --git a/src/ReactiveUI.Binding.Shared/Platforms/mac/AppKitCommandTarget.cs b/src/ReactiveUI.Binding.Shared/Platforms/mac/AppKitCommandTarget.cs new file mode 100644 index 00000000..07625671 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Platforms/mac/AppKitCommandTarget.cs @@ -0,0 +1,70 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Windows.Input; +using AppKit; +using Foundation; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.CommandBinding; +#else +namespace ReactiveUI.Binding.CommandBinding; +#endif + +/// The Cocoa target/action receiver that runs a command when an AppKit control or menu item fires its action. +/// +/// Generated command bindings set a control's Target to an instance and its Action to the +/// theAction: selector, and keep in step with the command, which is what +/// validateMenuItem: answers for a menu item. +/// +[DebuggerDisplay("AppKitCommandTarget: IsEnabled = {IsEnabled}")] +[EditorBrowsable(EditorBrowsableState.Never)] +public sealed class AppKitCommandTarget : NSObject +{ + /// The selector the target exports for the control's action. + private const string ActionSelectorName = "theAction:"; + + /// The command the action runs. + private readonly ICommand _command; + + /// Reads the parameter the command runs with. + private readonly Func _parameter; + + /// Initializes a new instance of the class. + /// The command the action runs. + /// Reads the parameter the command runs with. + /// or is . + public AppKitCommandTarget(ICommand command, Func parameter) + { + ArgumentExceptionHelper.ThrowIfNull(command); + ArgumentExceptionHelper.ThrowIfNull(parameter); + + _command = command; + _parameter = parameter; + IsEnabled = command.CanExecute(null); + } + + /// Gets or sets a value indicating whether the command can run, which a menu item's validation reports. + public bool IsEnabled { get; set; } + + /// Runs the command with the current parameter when it can execute. + /// The control or menu item that fired the action. + [Export(ActionSelectorName)] + public void Execute(NSObject sender) + { + var parameter = _parameter(); + if (_command.CanExecute(parameter)) + { + _command.Execute(parameter); + } + } + + /// Reports whether a menu item bound to this target is enabled. + /// The menu item being validated. + /// when the command can run. + [Export("validateMenuItem:")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool ValidateMenuItem(NSMenuItem item) => IsEnabled; +} diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/CallerArgumentExpressionAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/CallerArgumentExpressionAttribute.cs new file mode 100644 index 00000000..b8e42d13 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/CallerArgumentExpressionAttribute.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET5_0_OR_GREATER +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; + +namespace System.Runtime.CompilerServices; + +/// Indicates that a parameter captures the expression passed for another parameter as a string. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Parameter)] +internal sealed class CallerArgumentExpressionAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The name of the parameter whose expression should be captured as a string. + public CallerArgumentExpressionAttribute(string parameterName) => + ParameterName = parameterName; + + /// Gets the name of the parameter whose expression should be captured as a string. + public string ParameterName { get; } +} + +#else +[assembly: TypeForwardedTo(typeof(CallerArgumentExpressionAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/DoesNotReturnIfAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/DoesNotReturnIfAttribute.cs new file mode 100644 index 00000000..a6dd55bb --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/DoesNotReturnIfAttribute.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NETCOREAPP3_0_OR_GREATER && !NETSTANDARD2_1_OR_GREATER +using System.Diagnostics; + +namespace System.Diagnostics.CodeAnalysis; + +/// Specifies that the method will not return if the associated parameter is passed the specified value. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Parameter)] +internal sealed class DoesNotReturnIfAttribute : Attribute +{ + /// Initializes a new instance of the class with the specified parameter value. + /// The argument value for which the method does not return. + public DoesNotReturnIfAttribute(bool parameterValue) => + ParameterValue = parameterValue; + + /// Gets the argument value for which the method does not return. + public bool ParameterValue { get; } +} +#else +[assembly: TypeForwardedTo(typeof(DoesNotReturnIfAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMemberTypes.cs b/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMemberTypes.cs new file mode 100644 index 00000000..d5dde2d0 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMemberTypes.cs @@ -0,0 +1,76 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET +namespace System.Diagnostics.CodeAnalysis; + +/// +/// Specifies the types of members that are dynamically accessed. +/// This enumeration has a attribute that allows a +/// bitwise combination of its member values. +/// +[Flags] +[SuppressMessage("Design", "SST2303:Flags enum members should be distinct bit values", Justification = "Mirrors the framework enum bit-for-bit, including its composite members.")] +[SuppressMessage( + "Correctness", + "SST2461:A combined flags value should only set bits the enum defines", + Justification = "Bit 1 is only ever set as part of PublicConstructors, exactly as in the BCL type this mirrors." + + " Every value must stay numerically identical because the newer targets type-forward to the real" + + " enum, and naming that bit would invent a member the BCL does not have.")] +internal enum DynamicallyAccessedMemberTypes +{ + /// Specifies no members. + None = 0, + + /// Specifies the default, parameterless public constructor. + PublicParameterlessConstructor = 1 << 0, + + /// Specifies all public constructors. + PublicConstructors = 0x0002 | PublicParameterlessConstructor, + + /// Specifies all non-public constructors. + NonPublicConstructors = 1 << 2, + + /// Specifies all public methods. + PublicMethods = 1 << 3, + + /// Specifies all non-public methods. + NonPublicMethods = 1 << 4, + + /// Specifies all public fields. + PublicFields = 1 << 5, + + /// Specifies all non-public fields. + NonPublicFields = 1 << 6, + + /// Specifies all public nested types. + PublicNestedTypes = 1 << 7, + + /// Specifies all non-public nested types. + NonPublicNestedTypes = 1 << 8, + + /// Specifies all public properties. + PublicProperties = 1 << 9, + + /// Specifies all non-public properties. + NonPublicProperties = 1 << 10, + + /// Specifies all public events. + PublicEvents = 1 << 11, + + /// Specifies all non-public events. + NonPublicEvents = 1 << 12, + + /// Specifies all interfaces implemented by the type. + Interfaces = 1 << 13, + + /// Specifies all members. + All = ~None, +} + +#else +[assembly: TypeForwardedTo(typeof(DynamicallyAccessedMemberTypes))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMembersAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMembersAttribute.cs new file mode 100644 index 00000000..cf945d36 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/DynamicallyAccessedMembersAttribute.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET + +namespace System.Diagnostics.CodeAnalysis; + +/// Indicates which members of a type are accessed dynamically. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + validOn: AttributeTargets.Class + | AttributeTargets.Field + | AttributeTargets.GenericParameter + | AttributeTargets.Interface + | AttributeTargets.Method + | AttributeTargets.Parameter + | AttributeTargets.Property + | AttributeTargets.ReturnValue + | AttributeTargets.Struct, + Inherited = false)] +internal sealed class DynamicallyAccessedMembersAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The kinds of members accessed dynamically. + public DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes memberTypes) => + MemberTypes = memberTypes; + + /// Gets the kinds of members accessed dynamically. + public DynamicallyAccessedMemberTypes MemberTypes { get; } +} + +#else +[assembly: TypeForwardedTo(typeof(DynamicallyAccessedMembersAttribute))] +#endif diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Index.cs b/src/ReactiveUI.Binding.Shared/Polyfills/Index.cs similarity index 96% rename from src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Index.cs rename to src/ReactiveUI.Binding.Shared/Polyfills/Index.cs index 841e0eda..2b1d34d8 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Index.cs +++ b/src/ReactiveUI.Binding.Shared/Polyfills/Index.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. // Polyfill implementation adapted from SimonCropp/Polyfill diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/IsExternalInit.cs b/src/ReactiveUI.Binding.Shared/Polyfills/IsExternalInit.cs similarity index 81% rename from src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/IsExternalInit.cs rename to src/ReactiveUI.Binding.Shared/Polyfills/IsExternalInit.cs index b8afe37e..40fc8aea 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/IsExternalInit.cs +++ b/src/ReactiveUI.Binding.Shared/Polyfills/IsExternalInit.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. // Polyfill implementation adapted from SimonCropp/Polyfill diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/MaybeNullWhenAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/MaybeNullWhenAttribute.cs new file mode 100644 index 00000000..cded1eef --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/MaybeNullWhenAttribute.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NETCOREAPP3_0_OR_GREATER && !NETSTANDARD2_1_OR_GREATER +using System.Diagnostics; + +namespace System.Diagnostics.CodeAnalysis; + +/// Specifies that when a method returns , the parameter may be even if the corresponding type disallows it. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Parameter)] +internal sealed class MaybeNullWhenAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The return value after which the parameter may be null. + public MaybeNullWhenAttribute(bool returnValue) => ReturnValue = returnValue; + + /// Gets the return value after which the parameter may be null. + public bool ReturnValue { get; } +} + +#else +[assembly: TypeForwardedTo(typeof(MaybeNullWhenAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/MemberNotNullAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/MemberNotNullAttribute.cs new file mode 100644 index 00000000..729d20c2 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/MemberNotNullAttribute.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET + +using Targets = System.AttributeTargets; + +namespace System.Diagnostics.CodeAnalysis; + +/// Specifies that the method or property will ensure that the listed field and property members have not- values. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + validOn: Targets.Method + | Targets.Property, + Inherited = false, + AllowMultiple = true)] +internal sealed class MemberNotNullAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// Field or property member names. + public MemberNotNullAttribute(params string[] members) => + Members = members; + + /// Gets field or property member names. + public string[] Members { get; } +} + +#else +[assembly: TypeForwardedTo(typeof(MemberNotNullAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/NotNullAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/NotNullAttribute.cs new file mode 100644 index 00000000..fec8156d --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/NotNullAttribute.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NETCOREAPP3_0_OR_GREATER && !NETSTANDARD2_1_OR_GREATER +using System.Diagnostics; + +namespace System.Diagnostics.CodeAnalysis; + +/// Specifies that an output is not even if the corresponding type allows it. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + validOn: AttributeTargets.Field + | AttributeTargets.Parameter + | AttributeTargets.Property + | AttributeTargets.ReturnValue)] +internal sealed class NotNullAttribute : Attribute; +#endif diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/NotNullWhenAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/NotNullWhenAttribute.cs similarity index 86% rename from src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/NotNullWhenAttribute.cs rename to src/ReactiveUI.Binding.Shared/Polyfills/NotNullWhenAttribute.cs index 8b6f0e51..8b2de593 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/NotNullWhenAttribute.cs +++ b/src/ReactiveUI.Binding.Shared/Polyfills/NotNullWhenAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. // Polyfill implementation adapted from SimonCropp/Polyfill diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/OverloadResolutionPriorityAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/OverloadResolutionPriorityAttribute.cs new file mode 100644 index 00000000..6e382fdb --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/OverloadResolutionPriorityAttribute.cs @@ -0,0 +1,27 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET9_0_OR_GREATER +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; + +namespace System.Runtime.CompilerServices; + +/// Gives a member priority over lower-priority overloads that are also applicable to a call. +/// The C# 13 compiler reads it by name, so an internal copy in the declaring assembly is enough. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Property, Inherited = false)] +internal sealed class OverloadResolutionPriorityAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The priority; higher wins over lower among applicable overloads. + public OverloadResolutionPriorityAttribute(int priority) => Priority = priority; + + /// Gets the priority; higher wins over lower among applicable overloads. + public int Priority { get; } +} +#endif diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Range.cs b/src/ReactiveUI.Binding.Shared/Polyfills/Range.cs similarity index 95% rename from src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Range.cs rename to src/ReactiveUI.Binding.Shared/Polyfills/Range.cs index def9f8b4..386505bf 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/Range.cs +++ b/src/ReactiveUI.Binding.Shared/Polyfills/Range.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. // Polyfill implementation adapted from SimonCropp/Polyfill diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/RequiresDynamicCodeAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/RequiresDynamicCodeAttribute.cs new file mode 100644 index 00000000..5fc40071 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/RequiresDynamicCodeAttribute.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET7_0_OR_GREATER +using System.Diagnostics; + +using Targets = System.AttributeTargets; + +namespace System.Diagnostics.CodeAnalysis; + +/// Indicates that the method requires generating code at run time. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + validOn: Targets.Method + | Targets.Constructor + | Targets.Class, + Inherited = false)] +internal sealed class RequiresDynamicCodeAttribute : Attribute +{ + /// Initializes a new instance of the class with the specified message. + /// A message that contains information about the usage of dynamic code. + public RequiresDynamicCodeAttribute(string message) => + Message = message; + + /// Gets or sets a value indicating whether the annotation should not apply to static members. + public bool ExcludeStatics { get; set; } + + /// Gets a message that contains information about the usage of dynamic code. + public string Message { get; } + + /// Gets or sets an optional URL with more information about the requirement. + public string? Url { get; set; } +} +#else +[assembly: TypeForwardedTo(typeof(RequiresDynamicCodeAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/RequiresUnreferencedCodeAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/RequiresUnreferencedCodeAttribute.cs new file mode 100644 index 00000000..87299efc --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/RequiresUnreferencedCodeAttribute.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET +using System.Diagnostics; + +namespace System.Diagnostics.CodeAnalysis; + +/// Indicates that the method requires access to code that is not statically referenced. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + AttributeTargets.Method + | AttributeTargets.Constructor + | AttributeTargets.Class, + Inherited = false)] +internal sealed class RequiresUnreferencedCodeAttribute : Attribute +{ + /// Initializes a new instance of the class with the specified message. + /// A message that contains information about the usage of unreferenced code. + public RequiresUnreferencedCodeAttribute(string message) => + Message = message; + + /// Gets a message that contains information about the usage of unreferenced code. + public string Message { get; } + + /// Gets or sets an optional URL with more information about the requirement. + internal string? Url { get; set; } +} + +#else +[assembly: TypeForwardedTo(typeof(RequiresUnreferencedCodeAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/UnconditionalSuppressMessageAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/UnconditionalSuppressMessageAttribute.cs new file mode 100644 index 00000000..15895735 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/UnconditionalSuppressMessageAttribute.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +// Polyfill implementation adapted from SimonCropp/Polyfill +// https://github.com/SimonCropp/Polyfill +#if !NET +using System.Diagnostics; + +namespace System.Diagnostics.CodeAnalysis; + +/// Suppresses reporting of a specific rule violation, allowing multiple suppressions on a single code artifact. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage( + AttributeTargets.All, + Inherited = false, + AllowMultiple = true)] +internal sealed class UnconditionalSuppressMessageAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The category identifying the classification of the attribute. + /// The identifier of the analysis tool rule to be suppressed. + public UnconditionalSuppressMessageAttribute(string category, string checkId) + { + Category = category; + CheckId = checkId; + } + + /// Gets the category identifying the classification of the attribute. + public string Category { get; } + + /// Gets the identifier of the analysis tool rule to be suppressed. + public string CheckId { get; } + + /// Gets or sets the scope of the code that is relevant for the attribute. + internal string? Scope { get; set; } + + /// Gets or sets a fully qualified path that represents the target of the attribute. + internal string? Target { get; set; } + + /// Gets or sets an optional argument expanding on exclusion criteria. + internal string? MessageId { get; set; } + + /// Gets or sets the justification for suppressing the code analysis message. + internal string? Justification { get; set; } +} + +#else +[assembly: TypeForwardedTo(typeof(UnconditionalSuppressMessageAttribute))] +#endif diff --git a/src/ReactiveUI.Binding.Shared/Polyfills/ValidatedNotNullAttribute.cs b/src/ReactiveUI.Binding.Shared/Polyfills/ValidatedNotNullAttribute.cs new file mode 100644 index 00000000..93ce9c36 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/Polyfills/ValidatedNotNullAttribute.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Helpers; +#else +namespace ReactiveUI.Binding.Helpers; +#endif + +/// +/// Indicates to CA1062 that a parameter has been validated as not null by the method. +/// When applied to a parameter of a null-check helper method, CA1062 recognizes +/// that callers have validated the argument after the call returns. +/// +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Parameter)] +internal sealed class ValidatedNotNullAttribute : Attribute; diff --git a/src/ReactiveUI.Binding.Shared/View/DefaultViewLocator.cs b/src/ReactiveUI.Binding.Shared/View/DefaultViewLocator.cs new file mode 100644 index 00000000..9ef8a686 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/DefaultViewLocator.cs @@ -0,0 +1,395 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Globalization; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Default implementation of that resolves views for view models +/// using a three-tier resolution strategy: source-generated AOT-safe dispatch, explicit runtime +/// mappings, and service locator fallback. +/// +/// +/// For a view model held as an , runs the first two +/// tiers, which are ahead-of-time safe. adds the service locator +/// tier, which closes IViewFor<> over the runtime type. +/// +[DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] +public sealed class DefaultViewLocator : IViewLocator +{ + /// The warning logged when a view model held as an object has no generated or mapped view. + private const string UnresolvedObjectViewMessage = + "Found no generated or mapped view for {0}. A view registered in the service locator as IViewFor<{0}> is only " + + "found by ResolveViewUnsafe; add it with Map, or let the generator register it."; + + /// + /// The source-generated lookups registered by the assemblies that contain views, in registration order. + /// Signature of each: (viewModelInstance, contract) returns IViewFor or null. + /// The array is immutable; registration swaps in a new one. + /// + private static Func[] _generatedDispatches = []; + + /// Synchronization lock for thread-safe access to this instance's mappings. + private readonly Lock _lock = new(); + + /// + /// Runtime explicit mappings from (viewModelType, contract) to view factory. + /// Uses copy-on-write semantics for thread safety. + /// + private Dictionary> _mappings = []; + + /// + /// Adds a source-generated view dispatch function. + /// Called by __ReactiveUIGeneratedBindings: from a module initializer in a C# 9 or newer project, + /// and from its static constructor in an older one. Each assembly that contains views registers its own. + /// + /// The dispatch function that resolves views by type-switching on the view model instance. + /// + /// Every registered function is consulted, the most recently registered first, and the first view it returns wins. + /// A view model that two assemblies both have a view for therefore resolves to the view of the assembly that registered last. + /// Registering a function that is already registered has no effect. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(Func dispatch) + { + ArgumentExceptionHelper.ThrowIfNull(dispatch); + + var current = Volatile.Read(ref _generatedDispatches); + while (Array.IndexOf(current, dispatch) < 0) + { + var next = new Func[current.Length + 1]; + Array.Copy(current, next, current.Length); + next[current.Length] = dispatch; + + var witnessed = Interlocked.CompareExchange(ref _generatedDispatches, next, current); + if (ReferenceEquals(witnessed, current)) + { + return; + } + + current = witnessed; + } + } + + /// Registers an explicit view mapping for a view model type. + /// The view model type. + /// The view type. Must implement . + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Map() + where TViewModel : class + where TView : IViewFor, new() => Map(null); + + /// Registers an explicit view mapping for a view model type. + /// The view model type. + /// The view type. Must implement . + /// A contract string for named registrations. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public void Map(string? contract) + where TViewModel : class + where TView : IViewFor, new() + { + var key = new ViewMappingKey(typeof(TViewModel), contract ?? string.Empty); + lock (_lock) + { + _mappings = new(_mappings) { [key] = static () => new TView() }; + } + } + + /// Registers an explicit view mapping with a custom factory for a view model type. + /// The view model type. + /// A factory function that creates the view. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Map(Func factory) + where TViewModel : class => Map(factory, null); + + /// Registers an explicit view mapping with a custom factory for a view model type. + /// The view model type. + /// A factory function that creates the view. + /// A contract string for named registrations. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public void Map(Func factory, string? contract) + where TViewModel : class + { + ArgumentExceptionHelper.ThrowIfNull(factory); + + var key = new ViewMappingKey(typeof(TViewModel), contract ?? string.Empty); + lock (_lock) + { + _mappings = new(_mappings) { [key] = factory }; + } + } + + /// Removes an explicit view mapping for a view model type. + /// The view model type. + /// if the mapping was removed; otherwise, . + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Unmap() + where TViewModel : class => Unmap(null); + + /// Removes an explicit view mapping for a view model type. + /// The view model type. + /// A contract string for named registrations. + /// if the mapping was removed; otherwise, . + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public bool Unmap(string? contract) + where TViewModel : class + { + var key = new ViewMappingKey(typeof(TViewModel), contract ?? string.Empty); + lock (_lock) + { + var copy = new Dictionary>(_mappings); + var removed = copy.Remove(key); + _mappings = copy; + return removed; + } + } + + /// + public IViewFor? ResolveView(TViewModel viewModel, string? contract) + where TViewModel : class + { + if (viewModel is null) + { + return null; + } + + var normalizedContract = contract ?? string.Empty; + + // 1. Source-generated dispatch (AOT-safe) + var result = TryResolveFromGeneratedDispatches(viewModel, normalizedContract); + if (result is not null) + { + SetViewModelOnView(result, viewModel); + return result; + } + + // 2. Explicit runtime mappings (AOT-safe) + var view = TryResolveFromMappings(typeof(TViewModel), normalizedContract); + if (view is not null) + { + SetViewModelOnView(view, viewModel); + return view; + } + + // 3. Service locator lookup (AOT-safe for registered types) + view = AppLocator.Current.GetService>( + normalizedContract.Length == 0 ? null : normalizedContract); + if (view is null) + { + return null; + } + + SetViewModelOnView(view, viewModel); + return view; + } + + /// Resolves a view for a view model type under the default contract, without a view model instance. + /// The view model type. + /// The resolved view, or when nothing maps or registers one. + /// + /// The generated lookups dispatch on a view model instance, so without one this asks the explicit mappings and + /// then the service locator. The view's ViewModel is left unset: there is no instance to give it. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the view model type.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? ResolveView() + where TViewModel : class => ResolveView(null); + + /// Resolves a view for a view model type under a contract, without a view model instance. + /// The view model type. + /// The contract to resolve under, or null for the default view. + /// The resolved view, or when nothing maps or registers one. + /// + /// The generated lookups dispatch on a view model instance, so without one this asks the explicit mappings and + /// then the service locator. A mapping whose view does not implement for the type is + /// skipped. The view's ViewModel is left unset: there is no instance to give it. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the view model type.")] + public IViewFor? ResolveView(string? contract) + where TViewModel : class + { + var normalizedContract = contract ?? string.Empty; + + if (TryResolveFromMappings(typeof(TViewModel), normalizedContract) is IViewFor mapped) + { + this.Log().Debug(CultureInfo.InvariantCulture, "Resolved IViewFor<{0}> from an explicit mapping", typeof(TViewModel).Name); + return mapped; + } + + var view = AppLocator.Current.GetService>(normalizedContract.Length == 0 ? null : normalizedContract); + if (view is not null) + { + this.Log().Debug(CultureInfo.InvariantCulture, "Resolved IViewFor<{0}> from the service locator", typeof(TViewModel).Name); + return view; + } + + this.Log().Warn( + CultureInfo.InvariantCulture, + "Failed to resolve a view for {0}. Map it on the locator or register IViewFor<{0}> in the service locator.", + typeof(TViewModel).Name); + return null; + } + + /// Resolves a view for the view model using its runtime type, without building any type at run time. + /// The view model instance to resolve a view for. + /// The contract to resolve under, or null for the default view. + /// The resolved view with its ViewModel set, or if no view is found. + /// + /// This asks the source-generated lookups, then the mappings added with Map for the view model's runtime + /// type. Both are safe in a trimmed or native AOT application. It never asks the service locator: a view + /// registered there only as needs . + /// When neither finds a view, a warning is logged that says so. + /// + /// + /// + /// var locator = new DefaultViewLocator(); + /// locator.Map<TodoViewModel, TodoView>(); + /// + /// object viewModel = new TodoViewModel(); + /// var view = locator.ResolveView(viewModel, contract: null); // a TodoView + /// + /// + public IViewFor? ResolveView(object? viewModel, string? contract) + { + if (viewModel is null) + { + return null; + } + + var view = ResolveGeneratedOrMapped(viewModel, contract ?? string.Empty); + if (view is null) + { + this.Log().Warn(CultureInfo.InvariantCulture, UnresolvedObjectViewMessage, viewModel.GetType().Name); + } + + return view; + } + + /// Resolves a view for the view model using its runtime type, and falls back to the service locator through a type built at run time. + /// The view model instance to resolve a view for. + /// The contract to resolve under, or null for the default view. + /// The resolved view with its ViewModel set, or if no view is found. + /// + /// This runs first. When it finds nothing, this closes + /// IViewFor<> over the view model's runtime type and asks the service locator for it. A native AOT + /// application cannot build that type, so prefer a generated view or a Map registration. + /// + /// + /// + /// AppLocator.CurrentMutable.Register<IViewFor<TodoViewModel>>(static () => new TodoView()); + /// + /// object viewModel = new TodoViewModel(); + /// var view = new DefaultViewLocator().ResolveViewUnsafe(viewModel, contract: null); // a TodoView + /// + /// + [RequiresDynamicCode(ViewLocatorMixins.ResolveViewUnsafeMessage)] + public IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) + { + if (viewModel is null) + { + return null; + } + + var normalizedContract = contract ?? string.Empty; + return ResolveGeneratedOrMapped(viewModel, normalizedContract) ?? TryResolveViaReflection(viewModel, normalizedContract); + } + + /// Creates a new for fluent registration of view-to-view-model mappings. + /// A new targeting this locator instance. + public ViewMappingBuilder CreateMappingBuilder() => new(this); + + /// Removes every registered generated view dispatch for testing purposes. + [EditorBrowsable(EditorBrowsableState.Never)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void ResetGeneratedViewDispatchForTesting() => Volatile.Write(ref _generatedDispatches, []); + + /// Asks each registered generated lookup for a view, the most recently registered first. + /// The view model instance. + /// The normalized contract string. + /// The first view a lookup returns, or . + private static IViewFor? TryResolveFromGeneratedDispatches(object viewModel, string contract) + { + var dispatches = Volatile.Read(ref _generatedDispatches); + for (var i = dispatches.Length - 1; i >= 0; i--) + { + var view = dispatches[i](viewModel, contract); + if (view is not null) + { + return view; + } + } + + return null; + } + + /// Sets the view model on the resolved view. + /// The view to set the view model on. + /// The view model instance. + private static void SetViewModelOnView(IViewFor view, object viewModel) => view.ViewModel = viewModel; + + /// The service locator tier of , which closes IViewFor<> with MakeGenericType. + /// The view model instance. + /// The normalized contract string. + /// The resolved view, or . + /// + /// Closing IViewFor<> over a runtime type needs the runtime to build an instantiation the + /// compiler never saw, which an ahead-of-time build cannot do. Asking the runtime whether it can rather + /// than attempting it and catching keeps this tier off the AOT analyser's books and off the exception path. + /// + [ExcludeFromCodeCoverage] + [RequiresDynamicCode("Closes IViewFor<> over the view model's runtime type, which needs an instantiation the compiler never saw.")] + private static IViewFor? TryResolveViaReflection(object viewModel, string contract) + { + try + { + var viewModelType = viewModel.GetType(); + var viewForType = typeof(IViewFor<>).MakeGenericType(viewModelType); + var view = AppLocator.Current.GetService(viewForType, contract.Length == 0 ? null : contract) as IViewFor; + if (view is not null) + { + SetViewModelOnView(view, viewModel); + return view; + } + } + catch (Exception ex) when (ex is InvalidOperationException or NotSupportedException or TypeLoadException or ArgumentException) + { + // A closed IViewFor<> the compiler never saw cannot be built where its instantiation was trimmed, + // so the caller falls back to the other resolution tiers + } + + return null; + } + + /// Resolves a view from the generated lookups, then the explicit mappings, and sets its view model. + /// The view model instance. + /// The normalized contract string. + /// The view, or when neither tier has one. + private IViewFor? ResolveGeneratedOrMapped(object viewModel, string contract) + { + var view = TryResolveFromGeneratedDispatches(viewModel, contract) ?? TryResolveFromMappings(viewModel.GetType(), contract); + if (view is not null) + { + SetViewModelOnView(view, viewModel); + } + + return view; + } + + /// Tries to resolve a view from the explicit runtime mappings dictionary. + /// The type of the view model. + /// The normalized contract string. + /// The resolved view, or . + private IViewFor? TryResolveFromMappings(Type viewModelType, string contract) => + !_mappings.TryGetValue(new(viewModelType, contract), out var factory) ? null : factory(); +} diff --git a/src/ReactiveUI.Binding.Shared/View/ExcludeFromViewRegistrationAttribute.cs b/src/ReactiveUI.Binding.Shared/View/ExcludeFromViewRegistrationAttribute.cs new file mode 100644 index 00000000..4f9ded19 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ExcludeFromViewRegistrationAttribute.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Leaves a view class out of the view dispatch the source generator builds from implementations. +[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] +public sealed class ExcludeFromViewRegistrationAttribute : Attribute; diff --git a/src/ReactiveUI.Binding.Shared/View/SingleInstanceViewAttribute.cs b/src/ReactiveUI.Binding.Shared/View/SingleInstanceViewAttribute.cs new file mode 100644 index 00000000..e370a3a5 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/SingleInstanceViewAttribute.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Indicates that this View should be constructed once and then reused +/// every time its ViewModel's View is resolved. The source generator will +/// emit a cached singleton pattern instead of creating a new instance per resolution. +/// +/// +/// This is not supported on Views that may be reused multiple +/// times in the Visual Tree. +/// +[AttributeUsage(AttributeTargets.Class)] +public sealed class SingleInstanceViewAttribute : Attribute; diff --git a/src/ReactiveUI.Binding.Shared/View/ViewContractAttribute.cs b/src/ReactiveUI.Binding.Shared/View/ViewContractAttribute.cs new file mode 100644 index 00000000..937086f4 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ViewContractAttribute.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// +/// Registers an view in the generated view dispatch under a contract string, +/// so one view model can have a different view per contract. +/// +/// The contract value for view resolution. +[DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] +[AttributeUsage(AttributeTargets.Class)] +public sealed class ViewContractAttribute(string contract) : Attribute +{ + /// Gets the contract to use when resolving the view. + public string Contract { get; } = contract; +} diff --git a/src/ReactiveUI.Binding.Shared/View/ViewLocator.cs b/src/ReactiveUI.Binding.Shared/View/ViewLocator.cs new file mode 100644 index 00000000..eaa0c3d1 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ViewLocator.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Static accessor for the current instance. +public static class ViewLocator +{ + /// Gets the current from the service locator. + /// The current instance. + /// + /// Thrown when no is registered. + /// + public static IViewLocator GetCurrent() => + AppLocator.Current.GetService() ?? throw new ViewLocatorNotFoundException(); +} diff --git a/src/ReactiveUI.Binding.Shared/View/ViewLocatorNotFoundException.cs b/src/ReactiveUI.Binding.Shared/View/ViewLocatorNotFoundException.cs new file mode 100644 index 00000000..4c855bb7 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ViewLocatorNotFoundException.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Exception thrown when a view locator is not registered with the dependency resolver. +#if !NET8_0_OR_GREATER +[Serializable] +#endif +public class ViewLocatorNotFoundException : Exception +{ + /// Initializes a new instance of the class with a message naming the builder calls that register the default locator. + public ViewLocatorNotFoundException() + : base( + "No IViewLocator is registered. Call RxBindingBuilder.CreateReactiveUIBindingBuilder().WithCoreServices().BuildApp() to register default services.") + { + } + + /// Initializes a new instance of the class with a specified error message. + /// The message that describes the error. + public ViewLocatorNotFoundException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class with a specified error message and a reference to the inner exception. + /// The message that describes the error. + /// The exception that is the cause of the current exception. + public ViewLocatorNotFoundException(string message, Exception innerException) + : base(message, innerException) + { + } +} diff --git a/src/ReactiveUI.Binding.Shared/View/ViewMappingBuilder.cs b/src/ReactiveUI.Binding.Shared/View/ViewMappingBuilder.cs new file mode 100644 index 00000000..9dd65183 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ViewMappingBuilder.cs @@ -0,0 +1,127 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Fluent builder for registering view-to-view-model mappings on a . +[DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] +public sealed class ViewMappingBuilder +{ + /// The view locator to register mappings on. + private readonly DefaultViewLocator _locator; + + /// Initializes a new instance of the class. + /// The view locator to register mappings on. + internal ViewMappingBuilder(DefaultViewLocator locator) => _locator = locator; + + /// Maps a view model type to a view type constructed with its parameterless constructor, replacing an existing mapping for the same view model type. + /// The view model type. + /// The view type. Must have a parameterless constructor. + /// This builder for chaining. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ViewMappingBuilder Map() + where TViewModel : class + where TView : IViewFor, new() => Map(null); + + /// Maps a view model type and contract to a view type constructed with its parameterless constructor, replacing an existing mapping for the same pair. + /// The view model type. + /// The view type. Must have a parameterless constructor. + /// The contract the mapping is registered under; null registers the default mapping. + /// This builder for chaining. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public ViewMappingBuilder Map(string? contract) + where TViewModel : class + where TView : IViewFor, new() + { + _locator.Map(contract); + return this; + } + + /// Maps a view model type to a view created by a factory, replacing an existing mapping for the same view model type. + /// The view model type. + /// A factory function that creates the view. + /// This builder for chaining. + /// is null. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ViewMappingBuilder Map(Func factory) + where TViewModel : class => Map(factory, null); + + /// Maps a view model type and contract to a view created by a factory, replacing an existing mapping for the same pair. + /// The view model type. + /// A factory function that creates the view. + /// The contract the mapping is registered under; null registers the default mapping. + /// This builder for chaining. + /// is null. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public ViewMappingBuilder Map(Func factory, string? contract) + where TViewModel : class + { + _locator.Map(factory, contract); + return this; + } + + /// Maps a view model type to a view the service locator creates, replacing an existing mapping for the same view model type. + /// The view model type. + /// The view type, as registered in the service locator. + /// This builder for chaining. + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ViewMappingBuilder MapFromServiceLocator() + where TViewModel : class + where TView : class, IViewFor => MapFromServiceLocator(null); + + /// Maps a view model type and contract to a view the service locator creates, replacing an existing mapping for the same pair. + /// The view model type. + /// The view type, as registered in the service locator. + /// The contract the mapping is registered under; null registers the default mapping. + /// This builder for chaining. + /// + /// The service locator is asked for with no contract. To tell apart views registered + /// under one type, such as IViewFor<TViewModel>, pass the service locator contract to + /// . The view is asked for each time the + /// mapping resolves, so the service locator's lifetime for it applies. A view that is not registered throws + /// when the mapping resolves, rather than resolving to nothing. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ViewMappingBuilder MapFromServiceLocator(string? contract) + where TViewModel : class + where TView : class, IViewFor => MapFromServiceLocator(contract, null); + + /// + /// Maps a view model type and contract to a view the service locator creates under its own contract, replacing an + /// existing mapping for the same pair. + /// + /// The view model type. + /// The view type, as registered in the service locator. + /// The contract the mapping is registered under; null registers the default mapping. + /// The contract the view is registered under in the service locator; null asks for the registration with no contract. + /// This builder for chaining. + /// + /// The view is asked for each time the mapping resolves, so the service locator's lifetime for it applies. A view + /// that is not registered under throws + /// when the mapping resolves, rather than resolving to nothing or to a view registered under another contract. + /// + [SuppressMessage("Design", "SST2307:Type parameters should be inferable", Justification = "Specified explicitly by the caller; it identifies the mapping.")] + public ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) + where TViewModel : class + where TView : class, IViewFor + { + _locator.Map( + () => AppLocator.Current.GetService(serviceContract) + ?? throw new InvalidOperationException(serviceContract is null + ? $"View {typeof(TView).Name} is not registered in the service locator." + : $"View {typeof(TView).Name} is not registered in the service locator under contract '{serviceContract}'."), + contract); + return this; + } +} diff --git a/src/ReactiveUI.Binding.Shared/View/ViewMappingKey.cs b/src/ReactiveUI.Binding.Shared/View/ViewMappingKey.cs new file mode 100644 index 00000000..a2477e36 --- /dev/null +++ b/src/ReactiveUI.Binding.Shared/View/ViewMappingKey.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive; +#else +namespace ReactiveUI.Binding; +#endif + +/// Identifies one registered view mapping: the view model it serves, under which contract. +/// The view model type the mapping resolves a view for. +/// The contract the mapping is registered under, empty for the default. +[DebuggerDisplay("ViewMappingKey: {ViewModelType.Name,nq} ({Contract})")] +internal readonly record struct ViewMappingKey(Type ViewModelType, string Contract); diff --git a/src/ReactiveUI.Binding.SourceGenerators.Roslyn413/ReactiveUI.Binding.SourceGenerators.Roslyn413.csproj b/src/ReactiveUI.Binding.SourceGenerators.Roslyn413/ReactiveUI.Binding.SourceGenerators.Roslyn413.csproj new file mode 100644 index 00000000..b3c906bc --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators.Roslyn413/ReactiveUI.Binding.SourceGenerators.Roslyn413.csproj @@ -0,0 +1,55 @@ + + + netstandard2.0 + ReactiveUI.Binding.SourceGenerators + ReactiveUI.Binding.SourceGenerators + false + true + true + false + $(NoWarn);AD0001 + full + true + + + + + $(DefineConstants);ROSLYN_4_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Shipped.md b/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Shipped.md new file mode 100644 index 00000000..f50bb1fe --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Shipped.md @@ -0,0 +1,2 @@ +; Shipped analyzer releases +; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md diff --git a/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Unshipped.md b/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Unshipped.md new file mode 100644 index 00000000..ffed4bd6 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/AnalyzerReleases.Unshipped.md @@ -0,0 +1,25 @@ +### New Rules + + Rule ID | Category | Severity | Notes +-------------|----------|----------|----------------------------------------------------------------------------------------- + RXUIBIND001 | Usage | Error | Expression must be inline lambda for compile-time optimization + RXUIBIND002 | Usage | Warning | Type has no observable properties + RXUIBIND003 | Usage | Error | Expression contains private/protected member + RXUIBIND004 | Usage | Warning | Type does not support before-change notifications + RXUIBIND005 | Usage | Info | Source type implements INotifyDataErrorInfo; validation binding requires runtime engine + RXUIBIND006 | Usage | Error | Expression contains unsupported path segment (indexer, static field, read-only leaf field, or method call) + RXUIBIND007 | Usage | Warning | Control has no bindable event + RXUIBIND008 | Usage | Warning | Property is not an IInteraction + RXUIBIND009 | Usage | Error | Generated binding dispatch is out of reach for this file + RXUIBIND010 | Usage | Warning | Observed path passes through a type that raises no notification + RXUIBIND011 | Usage | Warning | Binding call resolved to ReactiveUI's own mixin + RXUIBIND012 | Usage | Error | ToProperty source raises no notification generated code can reach + RXUIBIND013 | Usage | Error | ToProperty property must be named directly + RXUIBIND014 | Usage | Error | Name the ToProperty initial value below C# 13 + RXUIBIND015 | Usage | Error | Binding call names a type generated code cannot reach + RXUIBIND016 | Usage | Error | Binding call is made through a type parameter + RXUIBIND017 | Usage | Warning | Binding writes to a UI object without its platform package + RXUIBIND018 | Usage | Warning | ObservableAsProperty needs a partial get-only property + RXUIBIND019 | Usage | Warning | ObservableAsProperty method takes parameters + RXUIBIND020 | Usage | Info | View is registered only in the service locator + RXUIBIND021 | Usage | Error | Binding call has no generated binding diff --git a/src/ReactiveUI.Binding.SourceGenerators/BindingGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/BindingGenerator.cs new file mode 100644 index 00000000..7f8ddf85 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/BindingGenerator.cs @@ -0,0 +1,630 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Diagnostics; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Generators; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Invocations; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators; + +/// +/// The main incremental source generator entry point for ReactiveUI property observation and binding. +/// Invocation extraction captures notification mechanisms from each bound property's owner. +/// View detection supplies the independent IViewFor<T> dispatch mappings. +/// +[Generator] +public class BindingGenerator : IIncrementalGenerator +{ + /// Capacity for the small file carrying the namespace declaration and its import. + private const int AttributeFileCapacity = 512; + + /// The generic arity of the single-property WhenAnyValue stub. + private const int SinglePropertyObservationArity = 2; + + /// + public void Initialize(IncrementalGeneratorInitializationContext context) + { + var languageFeatures = SelectLanguageFeatures(in context); + + RegisterSharedAttributeOutput(in context, languageFeatures); + + // Pipeline C: View locator dispatch (IViewFor scanning) + ViewLocatorDispatchGenerator.Register(context, languageFeatures); + + // Partial properties marked [ObservableAsProperty]: their bodies and helper fields. + ObservableAsPropertyGenerator.Register(context, languageFeatures); + + // Pipeline B: Invocation detection, one provider per API. The scan lives here rather than inside each + // generator so that everything this generator looks at in the consumer's syntax is visible in one + // place; each generator is handed the invocations it asked for and only turns them into source. + // The four property-binding APIs differ only in which call sites they match, so one extraction + // delegate serves all of them rather than a conversion per scan. + Func extractBinding = + BindingExtractor.ExtractBindInvocation; + + // Call sites that bind a member ReactiveUI.SourceGenerators writes are read from a compilation declaring it. + var sg = SourceGeneratorsCompilation.Register(in context); + + var whenChanged = Detect(in context, RoslynHelpers.IsWhenChangedInvocation, ObservationExtractor.ExtractWhenChangedInvocation, sg); + var whenChanging = Detect(in context, RoslynHelpers.IsWhenChangingInvocation, ObservationExtractor.ExtractWhenChangingInvocation, sg); + var whenAnyValue = Detect(in context, RoslynHelpers.IsWhenAnyValueInvocation, ObservationExtractor.ExtractWhenAnyValueInvocation, sg); + var whenAny = Detect(in context, RoslynHelpers.IsWhenAnyInvocation, ObservationExtractor.ExtractWhenAnyInvocation, sg); + var whenAnyObservable = Detect(in context, RoslynHelpers.IsWhenAnyObservableInvocation, WhenAnyObservableExtractor.ExtractWhenAnyObservableInvocation, sg); + var bindOneWay = Detect(in context, RoslynHelpers.IsBindOneWaySpecificInvocation, extractBinding, sg); + var bindTwoWay = Detect(in context, RoslynHelpers.IsBindTwoWaySpecificInvocation, extractBinding, sg); + var oneWayBind = Detect(in context, RoslynHelpers.IsOneWayBindSpecificInvocation, extractBinding, sg); + var bind = Detect(in context, RoslynHelpers.IsBindSpecificInvocation, extractBinding, sg); + var bindCommand = Detect(in context, RoslynHelpers.IsBindCommandInvocation, CommandExtractor.ExtractBindCommandInvocation, sg); + var bindInteraction = Detect(in context, RoslynHelpers.IsBindInteractionInvocation, InteractionExtractor.ExtractBindInteractionInvocation, sg); + var bindTo = Detect(in context, RoslynHelpers.IsBindToInvocation, BindToExtractor.ExtractBindToInvocation, sg); + var invokeCommand = Detect(in context, RoslynHelpers.IsInvokeCommandInvocation, InvokeCommandExtractor.ExtractInvokeCommandInvocation, sg); + var toProperty = Detect(in context, RoslynHelpers.IsToPropertyInvocation, ToPropertyExtractor.ExtractToPropertyInvocation, sg); + + // Each invocation generator receives the language-feature snapshot to control dispatch/output + WhenChangedInvocationGenerator.Register(context, whenChanged, languageFeatures); + WhenChangingInvocationGenerator.Register(context, whenChanging, languageFeatures); + BindOneWayInvocationGenerator.Register(context, bindOneWay, languageFeatures); + BindTwoWayInvocationGenerator.Register(context, bindTwoWay, languageFeatures); + OneWayBindInvocationGenerator.Register(context, oneWayBind, languageFeatures); + BindInvocationGenerator.Register(context, bind, languageFeatures); + WhenAnyValueInvocationGenerator.Register(context, whenAnyValue, languageFeatures); + WhenAnyInvocationGenerator.Register(context, whenAny, languageFeatures); + WhenAnyObservableInvocationGenerator.Register(context, whenAnyObservable, languageFeatures); + BindInteractionInvocationGenerator.Register(context, bindInteraction, languageFeatures); + BindCommandInvocationGenerator.Register(context, bindCommand, languageFeatures); + BindToInvocationGenerator.Register(context, bindTo, languageFeatures); + InvokeCommandInvocationGenerator.Register(context, invokeCommand, languageFeatures); + ToPropertyInvocationGenerator.Register(context, toProperty, languageFeatures); + } + + /// Reads the C# language version the consumer is compiling with. + /// The parse options the compilation was built with. + /// The consumer's language version, or the compiler default when the options are not C#'s. + /// + /// Everything downstream keys on the language version, so options belonging to another language - or none + /// at all - resolve to the default rather than failing the whole generation pass. + /// + internal static LanguageVersion ReadLanguageVersion(ParseOptions? parseOptions) => + (parseOptions as CSharpParseOptions)?.LanguageVersion ?? LanguageVersion.Default; + + /// Determines whether generated code can apply CallerArgumentExpression. + /// The consumer compilation. + /// when the attribute is present and the consumer can apply it. + /// + /// Accessibility is part of the test: on a target framework without the attribute, the only one in reach + /// may be the runtime library's own internal copy, which generated code cannot apply. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool HasAccessibleExpressionAttribute(Compilation compilation) => + HasAccessibleAttribute(compilation, Constants.CallerArgumentExpressionAttributeMetadataName); + + /// Reads the expression-parameter shape from the referenced runtime stub. + /// The runtime extension type selected for this flavor. + /// Whether its single-property observation overload declares an expression-text parameter. + /// + /// A consumer can see CallerArgumentExpressionAttribute even when it references a net4x runtime + /// asset built without expression parameters. Interceptors must match the referenced method exactly. + /// + internal static bool StubHasExpressionParameters(INamedTypeSymbol? runtimeStub) + { + if (runtimeStub is null) + { + return false; + } + + foreach (var member in runtimeStub.GetMembers("WhenAnyValue")) + { + if (member is not IMethodSymbol { Arity: SinglePropertyObservationArity } method) + { + continue; + } + + foreach (var parameter in method.Parameters) + { + if (parameter.Name == "property1Expression") + { + return true; + } + } + } + + return false; + } + + /// Determines whether the consumer can apply an attribute type, wherever it is declared. + /// The consumer compilation. + /// The metadata name of the attribute type. + /// when the type resolves and is accessible from the consumer's assembly. + internal static bool HasAccessibleAttribute(Compilation compilation, string metadataName) + { + var attribute = compilation.GetTypeByMetadataName(metadataName); + + return attribute is not null + && compilation.IsSymbolAccessibleWithin(attribute, compilation.Assembly); + } + + /// Selects the referenced runtime extension type and its flavor. + /// The consumer compilation. + /// Whether only the System.Reactive flavor is referenced. + /// The extension type whose method signatures generated interceptors must match. + private static INamedTypeSymbol? SelectRuntimeStub(Compilation compilation, out bool usesReactiveRuntime) + { + var reactiveStub = compilation.GetTypeByMetadataName(Constants.ReactiveStubMetadataName); + var leanStub = compilation.GetTypeByMetadataName(Constants.LeanStubMetadataName); + usesReactiveRuntime = reactiveStub is not null && leanStub is null; + return usesReactiveRuntime ? reactiveStub : leanStub; + } + + /// Picks the namespace and class the generated code is emitted into. + /// The analyzer config options, which carry the consumer's root namespace. + /// The consumer compilation. + /// Whether the generated code intercepts its call sites. + /// Whether the consumer can scope a namespace import to its compilation. + /// The runtime library's own namespace, which every consumer imports. + /// The namespace and the class name. + /// + /// Every assembly's generated type has a fully qualified name of its own, so an assembly granted + /// InternalsVisibleTo never sees two types by one name. Interceptors sit in a per-assembly namespace below + /// the one the consumer opts into interception. Otherwise the overloads have to be reached by lookup: from C# 10 + /// in the consumer's root namespace or a per-assembly one, and before that in a namespace other assemblies may + /// share. Wherever the namespace is not the assembly's own, the class name carries the assembly instead. + /// + private static (string Namespace, string ClassName) SelectGeneratedPlacement( + AnalyzerConfigOptionsProvider configOptions, + Compilation compilation, + bool supportsInterceptors, + bool supportsGlobalUsings, + string sharedNamespace) + { + var assemblySegments = ToNamespaceSegments(compilation.AssemblyName); + if (supportsInterceptors) + { + return ($"{Constants.InterceptorNamespace}.{assemblySegments}", Constants.GeneratedExtensionClassName); + } + + var perAssemblyNamespace = $"{Constants.GeneratedNamespaceRoot}.{assemblySegments}"; + var generatedNamespace = supportsGlobalUsings + ? SelectGeneratedNamespace(configOptions, compilation, perAssemblyNamespace) + : SelectSharedTierNamespace(configOptions, compilation, sharedNamespace); + return ( + generatedNamespace, + string.Equals(generatedNamespace, perAssemblyNamespace, StringComparison.Ordinal) + ? Constants.GeneratedExtensionClassName + : $"{Constants.GeneratedExtensionClassName}_{assemblySegments.Replace('.', '_')}"); + } + + /// + /// Picks the namespace the dispatch overloads are emitted into: the consumer's own root namespace when the + /// build exposes one, and a namespace derived from the assembly name when it does not. + /// + /// The analyzer config options, which carry the consumer's root namespace. + /// The consumer compilation. + /// The namespace derived from the assembly name. + /// The namespace to emit the dispatch overloads into. + /// + /// + /// Extension-method lookup walks the enclosing namespaces of the call site from the inside out and stops at + /// the first level that yields any candidate. The runtime stub lives in ReactiveUI.Binding, so a + /// consumer whose own code sits under that namespace reaches the stub at an enclosing level and the lookup + /// stops there - a namespace brought in by a global using is only ever consulted at the outermost + /// level, so the generated overload would never be considered and the call would fall through to the stub's + /// runtime throw. Emitting into the consumer's root namespace puts the overload at a level at or inside + /// their own code, so it is reached first whatever they have named their namespaces. + /// + /// + /// The global using is still emitted, and still carries files whose namespace sits outside the root + /// namespace. Both routes land the concrete overload in the same candidate set as the generic stub, where + /// it wins outright: a non-generic candidate is preferred over a generic one. + /// + /// + /// Two assemblies sharing a root namespace would land in the same place, and if one also exposes its + /// internals to the other, both would answer the same call (CS0121). That is detectable - the other + /// assembly's dispatch class is already there to be found - so this steps aside to the per-assembly + /// namespace when it sees one, at the cost of the reach a root namespace buys. The class in a root namespace + /// carries the assembly's name, so the type names never collide either way. + /// + /// + private static string SelectGeneratedNamespace( + AnalyzerConfigOptionsProvider configOptions, + Compilation compilation, + string perAssemblyNamespace) + { + var hasRootNamespace = configOptions.GlobalOptions.TryGetValue( + "build_property.RootNamespace", + out var rootNamespace) + && !string.IsNullOrWhiteSpace(rootNamespace); + + if (!hasRootNamespace) + { + return perAssemblyNamespace; + } + + // Another assembly that shares this root namespace and exposes its internals here has already put its + // dispatch class where this one would go, and both would then answer the same call. Nothing rules that + // out at the language level, so ask whether it has actually happened and step aside when it has. + var candidate = ToNamespaceSegments(rootNamespace); + return HasGeneratedClassIn(compilation, candidate) ? perAssemblyNamespace : candidate; + } + + /// Determines whether a referenced assembly already declares a generated class in a namespace. + /// The consumer compilation. + /// The namespace to look in. + /// when a type named for this generator is already there. + private static bool HasGeneratedClassIn(Compilation compilation, string namespaceName) + { + var current = compilation.GlobalNamespace; + foreach (var segment in namespaceName.Split('.')) + { + if (FindChildNamespace(current, segment) is not { } child) + { + return false; + } + + current = child; + } + + foreach (var type in current.GetTypeMembers()) + { + if (type.Name.StartsWith(Constants.GeneratedExtensionClassName, StringComparison.Ordinal)) + { + return true; + } + } + + return false; + } + + /// Finds a namespace's child namespace by name. + /// The namespace to look in. + /// The child namespace's name. + /// The child namespace, or null when there is none. + private static INamespaceSymbol? FindChildNamespace(INamespaceSymbol parent, string name) + { + foreach (var child in parent.GetNamespaceMembers()) + { + if (string.Equals(child.Name, name, StringComparison.Ordinal)) + { + return child; + } + } + + return null; + } + + /// Runs one syntax scan and keeps the call sites it could extract. + /// The extracted call-site model. + /// The generator initialization context. + /// The syntactic filter for this API. + /// The semantic extraction for this API. + /// The compilation that declares ReactiveUI.SourceGenerators' members, or null. + /// The extracted call sites, with the unanalyzable ones dropped. + /// + /// Each call site is read from the compilation that declares ReactiveUI.SourceGenerators' members when the consumer + /// uses that generator, so a call site binding one of its properties is read like any other. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IncrementalValuesProvider Detect( + in IncrementalGeneratorInitializationContext context, + Func predicate, + Func transform, + IncrementalValueProvider sourceGenerators) + where T : class => + context.SyntaxProvider + .CreateSyntaxProvider(predicate, static (syntaxContext, _) => syntaxContext) + .Combine(sourceGenerators) + .Select((data, ct) => transform(CallSiteContext.From(data.Left, data.Right), ct)) + .Where(static x => x is not null) + .Select(static (x, _) => x!); + + /// + /// Emits the one part of the dispatch class that carries [ExcludeFromCodeCoverage], plus the + /// global using that puts the generated namespace in scope for this compilation. + /// + /// The generator initialization context. + /// The consumer's language-feature snapshot, which names the namespace. + /// + /// Driven off the compilation rather than post-initialization output because the namespace depends on the + /// consumer's root namespace, which post-initialization cannot see. The attribute goes on exactly one part: + /// it is not AllowMultiple, so repeating it across the dispatch files would be a duplicate-attribute + /// error. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void RegisterSharedAttributeOutput( + in IncrementalGeneratorInitializationContext context, + IncrementalValueProvider languageFeatures) => + context.RegisterSourceOutput( + languageFeatures, + static (ctx, features) => + { + var sb = SourceWriter.Rent(AttributeFileCapacity) + .FileHeader(features.EmitGeneratedCodeMarkers, enableNullable: false); + + if (features.EmitGeneratedNamespaceImport) + { + // Compilation-scoped, so a referencing assembly never gains this import and therefore never + // sees these overloads - which is what keeps two generator-running assemblies apart. + _ = sb.Append("global using global::") + .Append(features.GeneratedNamespace) + .Line(";") + .BlankLine(); + } + + CodeGeneratorHelpers.OpenGeneratedClass( + sb.OpenNamespace(features.GeneratedNamespace).Attribute("global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage"), + features); + _ = sb.CloseBlock().CloseBlock(); + + CodeGeneratorHelpers.AddGeneratedSource( + ctx, + "GeneratedBindingsAttributes.g.cs", + sb.ToStringAndReturn(), + features); + }); + + /// + /// Snapshots the consumer's relevant C# language capabilities once, to flow through every + /// invocation pipeline. CallerArgumentExpression (C# 10+ and the attribute being available) + /// selects expression-text dispatch over file and line dispatch; nullable reference types + /// (C# 8+) makes the generated files emit #nullable enable. + /// + /// The generator initialization context. + /// A provider yielding the consumer's language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IncrementalValueProvider SelectLanguageFeatures( + in IncrementalGeneratorInitializationContext context) => + context.ParseOptionsProvider + .Combine(context.CompilationProvider) + .Combine(context.AnalyzerConfigOptionsProvider) + .Select(static (data, _) => + { + var parseOptions = data.Left.Left; + var compilation = data.Left.Right; + var configOptions = data.Right; + + var languageVersion = ReadLanguageVersion(parseOptions); + var callerArgExprAvailable = HasAccessibleExpressionAttribute(compilation); + + // A framework that predates ModuleInitializerAttribute gets a file-local declaration, which needs + // C# 11; below that such a consumer registers its views from a static constructor instead. + var hasModuleInitializerAttribute = HasAccessibleAttribute(compilation, Constants.ModuleInitializerAttributeMetadataName); + var supportsModuleInitializer = languageVersion >= LanguageVersion.CSharp9 + && (hasModuleInitializerAttribute || languageVersion >= LanguageVersion.CSharp11); + + // Generated-file markers (// + #pragma warning disable) are emitted by default + // (the shipping convention); consumers opt out with ReactiveUIBindingEmitGeneratedCodeMarkers=false + // to surface analyzer diagnostics in the generated code. Absent property => default (markers on). + var emitGeneratedCodeMarkers = !(configOptions.GlobalOptions.TryGetValue( + "build_property.ReactiveUIBindingEmitGeneratedCodeMarkers", + out var markersValue) + && string.Equals(markersValue, "false", System.StringComparison.OrdinalIgnoreCase)); + + // Which of the two runtime packages is referenced decides every type name in the generated + // output, and where the overloads have to live to be found from a call site. + var runtimeStub = SelectRuntimeStub(compilation, out var usesReactiveRuntime); + var stubHasExpressionParameters = StubHasExpressionParameters(runtimeStub); + var supportsCallerArgExpr = languageVersion >= LanguageVersion.CSharp10 + && callerArgExprAvailable + && stubHasExpressionParameters; + var runtimeNamespaceMembers = usesReactiveRuntime + ? CollectNamespaceMemberNames(runtimeStub!.ContainingNamespace) + : default; + + // The Primitives stack ships the same two flavours, so the same shift applies to the operators + // and signal factories the generated code calls. Anchored on what the reactive flavour offers, + // which is what leaves the shared core - the disposables among it - unshifted. + var primitivesAnchor = usesReactiveRuntime + ? compilation.GetTypeByMetadataName(Constants.PrimitivesReactiveAnchorMetadataName) + : null; + var primitivesNamespaceMembers = primitivesAnchor is not null + ? CollectTypePaths(primitivesAnchor.ContainingNamespace) + : default; + + // A global using is scoped to the compilation that declares it and is never exported to a + // referencing assembly, so it is what lets each assembly reach its own generated overloads + // and nobody else's. It needs C# 10; older consumers share the runtime library's namespace. + var supportsGlobalUsings = languageVersion >= LanguageVersion.CSharp10; + var sharedNamespace = usesReactiveRuntime + ? Constants.ReactiveRuntimeNamespace + : Constants.SharedGeneratedNamespace; + + // An interceptor claims its call site outright, so where one can be emitted there is no namespace + // for lookup to reach and no import to scope. Each intercepting file declares its own file-local + // interception attribute, which needs C# 11. + var supportsInterceptors = InterceptableLocationReader.IsInterceptionEnabled(parseOptions) + && languageVersion >= LanguageVersion.CSharp11; + var (generatedNamespace, generatedClassName) = + SelectGeneratedPlacement(configOptions, compilation, supportsInterceptors, supportsGlobalUsings, sharedNamespace); + + return new LanguageFeatures( + supportsCallerArgExpr, + languageVersion >= LanguageVersion.CSharp8, + emitGeneratedCodeMarkers, + generatedNamespace, + supportsGlobalUsings && !supportsInterceptors, + stubHasExpressionParameters, + usesReactiveRuntime, + runtimeNamespaceMembers, + primitivesNamespaceMembers, + supportsInterceptors, + supportsModuleInitializer, + supportsModuleInitializer && !hasModuleInitializerAttribute, + languageVersion > LanguageVersion.CSharp12 + && HasAccessibleAttribute(compilation, Constants.OverloadResolutionPriorityAttributeMetadataName), + generatedClassName); + }); + + /// + /// Picks the namespace for a consumer that predates global usings, where there is no way to scope a + /// namespace to one compilation. + /// + /// The analyzer config options, which carry the consumer's root namespace. + /// The consumer compilation. + /// The runtime library's own namespace, which every consumer imports. + /// The namespace to emit the dispatch overloads into. + /// + /// + /// The runtime library's namespace is the one place every call site can reach without an import of its own, + /// so it is where these overloads belong - except that it is also the one place another assembly can see + /// them. Identical overloads visible from two assemblies make every matching call ambiguous (CS0121), and + /// without global usings there is nothing to scope them with. + /// + /// + /// The overloads are only visible to another assembly if this one grants it InternalsVisibleTo, so + /// that is the condition to move them out of the shared namespace for. An assembly that grants it emits + /// into its own root namespace instead, which its own code sits under and no one else's does. The cost is + /// that a file declared outside the root namespace no longer reaches them and falls back to the runtime + /// path; the alternative for those assemblies is not universal reach but a build that does not compile. + /// + /// + /// Everyone else - which is nearly everyone - keeps the shared namespace and reaches the overloads from + /// any file, exactly as before. + /// + /// + private static string SelectSharedTierNamespace( + AnalyzerConfigOptionsProvider configOptions, + Compilation compilation, + string sharedNamespace) + { + if (!GrantsInternalsVisibleTo(compilation)) + { + return sharedNamespace; + } + + var hasRootNamespace = configOptions.GlobalOptions.TryGetValue( + "build_property.RootNamespace", + out var rootNamespace) + && !string.IsNullOrWhiteSpace(rootNamespace); + + // With no root namespace there is nowhere else the call sites could reach, so the shared namespace and + // its collision risk is still better than emitting somewhere nothing can see. + return hasRootNamespace ? ToNamespaceSegments(rootNamespace) : sharedNamespace; + } + + /// Determines whether the compilation exposes its internals to another assembly. + /// The consumer compilation. + /// when the assembly grants InternalsVisibleTo to anyone. + private static bool GrantsInternalsVisibleTo(Compilation compilation) + { + foreach (var attribute in compilation.Assembly.GetAttributes()) + { + if (NativeTypeIdentity.Matches(attribute.AttributeClass, Constants.InternalsVisibleToAttributeName)) + { + return true; + } + } + + return false; + } + + /// + /// Collects the names a namespace declares - its types and its nested namespaces - so generated references + /// to the runtime library can be told apart from consumer code sitting under the same root. + /// + /// The referenced runtime library's own namespace. + /// The declared names, ordered so the pipeline sees a stable value. + private static EquatableArray CollectNamespaceMemberNames(INamespaceSymbol runtimeNamespace) + { + var names = new SortedSet(System.StringComparer.Ordinal); + foreach (var member in runtimeNamespace.GetMembers()) + { + _ = names.Add(member.Name); + } + + var ordered = new string[names.Count]; + names.CopyTo(ordered); + return new(ordered); + } + + /// + /// Collects every public type a namespace offers, keyed by its path below that namespace, so a generated + /// reference can be matched as a whole rather than by its leading segment. + /// + /// The namespace to walk. + /// The type paths, ordered so the pipeline sees a stable value. + /// + /// The Primitives stack splits a single namespace across two assemblies: the shared core contributes types + /// that keep their names in both flavours, while the flavoured package contributes the ones that shift. Only + /// the whole path tells the two apart, so the leading segment is not enough to decide. + /// + private static EquatableArray CollectTypePaths(INamespaceSymbol root) + { + var names = new SortedSet(System.StringComparer.Ordinal); + var pending = new Stack(); + pending.Push(new(root, string.Empty)); + + while (pending.Count > 0) + { + var (current, prefix) = pending.Pop(); + foreach (var member in current.GetMembers()) + { + if (member is INamespaceSymbol child) + { + pending.Push(new(child, $"{prefix}{child.Name}.")); + } + else if (member is INamedTypeSymbol { DeclaredAccessibility: Accessibility.Public } type) + { + _ = names.Add(prefix + type.MetadataName); + } + } + } + + var ordered = new string[names.Count]; + names.CopyTo(ordered); + return new(ordered); + } + + /// + /// Renders a root namespace or assembly name as namespace segments, so the generated namespace is one the + /// consumer's own code sits under and is still a legal namespace. + /// + /// The root namespace or assembly name, either of which may be absent. + /// Dot-separated identifier segments. + /// + /// Dots are kept as segment separators rather than flattened, so My.App and My_App stay + /// distinct; collapsing both to one segment would give two assemblies the same generated namespace and + /// bring back the very ambiguity the per-assembly namespace exists to prevent. + /// + private static string ToNamespaceSegments(string? name) + { + if (string.IsNullOrWhiteSpace(name)) + { + return Constants.AnonymousAssemblyNamespaceSegment; + } + + var segments = name!.Split('.'); + for (var i = 0; i < segments.Length; i++) + { + segments[i] = ToIdentifier(segments[i]); + } + + return string.Join(".", segments); + } + + /// Renders one namespace segment as a legal identifier. + /// The raw segment, which may be empty or start with a digit. + /// A legal C# identifier. + private static string ToIdentifier(string segment) + { + var builder = new PooledStringBuilder(segment.Length + 1); + + // An identifier cannot be empty, start with a digit or be a keyword, so lead with an underscore where needed. + if (segment.Length == 0 || (!char.IsLetter(segment[0]) && segment[0] != '_') || SyntaxFacts.GetKeywordKind(segment) != SyntaxKind.None) + { + _ = builder.Append('_'); + } + + foreach (var character in segment) + { + _ = builder.Append(char.IsLetterOrDigit(character) || character == '_' ? character : '_'); + } + + return builder.ToStringAndReturn(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCodeGenerator.cs new file mode 100644 index 00000000..3d45ab72 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCodeGenerator.cs @@ -0,0 +1,220 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads and binding methods for Bind (view-first two-way) invocations. +/// The generated methods return IReactiveBinding<TView, BindingChange> and use view-first parameter ordering. +/// +internal static class BindCodeGenerator +{ + /// Gets what distinguishes this API's generated dispatch overload from the other three. + internal static readonly BindingEmitterHelpers.BindingDispatchApi DispatchApi = new() + { + Name = "Bind", + ReceiverParameterName = "view", + OtherParameterName = "viewModel", + ReceiverIsTarget = true, + SourceSelectorName = "viewModelProperty", + TargetSelectorName = "viewProperty", + WorkerMethodPrefix = "__Bind_", + WorkerSourceParameterName = "viewModel", + WorkerTargetParameterName = "view", + IsTwoWay = true, + HookRefusalValue = "null", + SourceObservableName = ViewModelObservableName, + TargetObservableName = ViewObservableName, + SourceConvertedName = "__vmSelected", + TargetConvertedName = "__viewSelected", + SourceScheduledName = "vmBind", + TargetScheduledName = "viewBind", + ForwardConverterArgument = ForwardConverterName, + ReverseConverterArgument = ReverseConverterName, + OverrideForwardName = ForwardConverterName, + OverrideReverseName = ReverseConverterName, + FormatReturnType = FormatReturnType, + FormatWorkerReturnType = FormatMethodReturnType, + AppendExtraParameters = AppendExtraParameters, + FormatWorkerParameters = FormatExtraMethodParams, + FormatExtraArguments = FormatExtraArgs, + }; + + /// The local a two-way callback holds the value it applies in. + private const string AppliedValueLocal = "value"; + + /// What this API calls the view-model-to-view converter in its generated signatures. + private const string ForwardConverterName = "viewModelToViewConverter"; + + /// What this API calls the view-to-view-model converter in its generated signatures. + private const string ReverseConverterName = "viewToViewModelConverter"; + + /// Name of the generated local holding the view model side observable. + private const string ViewModelObservableName = "vmObs"; + + /// Name of the generated local holding the view side observable. + private const string ViewObservableName = "viewObs"; + + /// Generates a private Bind method for a specific invocation. + /// The string builder to append to. + /// The binding invocation info. + /// The source type class binding info. + /// The target type class binding info. + /// The stable method name suffix. + internal static void GenerateBindMethod( + SourceWriter sb, + BindingInvocationInfo inv, + ClassBindingInfo? sourceClassInfo, + ClassBindingInfo? targetClassInfo, + string suffix) + { + // Both directions follow the view's current view model, so the write walks the same re-rooted path the + // observation does and its guard drops the write while the view holds none. + var observation = BindingEmitterHelpers.ResolveViewModelObservation(inv, sourceClassInfo, targetClassInfo); + BindingEmitterHelpers.AppendWorkerMethodHeader(sb, DispatchApi, inv, suffix); + + // Emit inline observation code instead of delegating to WhenChanged dispatch + ObservationCodeGenerator.EmitInlineObservation( + sb, + observation.RootVariable, + observation.Path, + inv.SourcePropertyTypeFullName, + observation.RootClassInfo, + ViewModelObservableName, + NullParentObservationBehavior.SuppressEmission); + + ObservationCodeGenerator.EmitInlineObservation( + sb, + "view", + inv.TargetPropertyPath, + inv.TargetPropertyTypeFullName, + targetClassInfo, + ViewObservableName); + + var (viewModelVar, viewVar) = BindingEmitterHelpers.EmitDualStreamStages(sb, DispatchApi, inv); + + EmitTwoWaySubscription(sb, inv, viewModelVar, viewVar, observation); + } + + /// Appends extra parameters (converters, scheduler) to the concrete overload signature. + /// The string builder to append to. + /// The binding type group. + /// Whether the target supports nullable reference types (C# 8+). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtraParameters(SourceWriter sb, BindingTypeGroup group, bool supportsNullable) => + BindingEmitterHelpers.AppendTwoWayExtraParameters(sb, group, ForwardConverterName, ReverseConverterName, supportsNullable); + + /// Formats extra arguments (converters, scheduler) for forwarding to the binding method. + /// The binding type group. + /// Extra arguments string or empty. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraArgs(BindingTypeGroup group) => + BindingEmitterHelpers.FormatTwoWayExtraArgs(group, ForwardConverterName, ReverseConverterName); + + /// Formats extra method parameters for the private binding method signature. + /// The binding invocation info. + /// Extra parameters string for converter and scheduler parameters. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraMethodParams(BindingInvocationInfo inv) => + BindingEmitterHelpers.FormatTwoWayExtraMethodParams(inv, ForwardConverterName, ReverseConverterName); + + /// Formats the return type for a concrete Bind overload. + /// The binding type group. + /// The fully qualified return type string. + internal static string FormatReturnType(BindingTypeGroup group) => + $"{IReactiveBinding}<{group.TargetTypeFullName}, {BindingChange}>"; + + /// Formats the return type for a private Bind method. + /// The binding invocation info. + /// The fully qualified return type string. + internal static string FormatMethodReturnType(BindingInvocationInfo inv) => + $"{IReactiveBinding}<{inv.TargetTypeFullName}, {BindingChange}>"; + + /// Emits the two-way pipeline and the ReactiveBinding return block. + /// The string builder to append to. + /// The binding invocation info. + /// The view model observable variable name. + /// The view observable variable name. + /// The re-rooted path the view model side is written through. + /// + /// Both directions become one stream, which is then routed once and applied once. Three things follow from + /// that, and none of them hold when each direction is wired on its own. + /// + /// The view model side is merged first, so its value reaches the view before the view's own first value is + /// weighed - and the guard, seeing them equal, drops that one. Dropping the view's first value by position + /// would eat a real change wherever the view reports nothing to begin with, which a chain through a null + /// intermediate does. + /// + /// + /// Routing the merged stream carries the view's read and the view model's write, not just the write to the + /// view. Routing one direction leaves the other running wherever its notification was raised. + /// + /// + /// What was applied is published to a subject the caller subscribes to, so a subscriber shares the one + /// upstream subscription rather than attaching another set of handlers, and never sees a value the guard + /// refused to write. + /// + /// + private static void EmitTwoWaySubscription( + SourceWriter sb, + BindingInvocationInfo inv, + string viewModelVar, + string viewVar, + in BindingEmitterHelpers.ViewModelObservation observation) + { + var changeType = $"global::System.ValueTuple"; + _ = sb.BlankLine() + .BeginVar("__vmTagged").Append("new ").Append(MapSignal).Append('<').Append(inv.TargetPropertyTypeFullName).Append(", ") + .Append(changeType).Append(">(").Append(viewModelVar).Append(", v => new ").Append(changeType) + .Append("(true, v, default(").Append(inv.SourcePropertyTypeFullName).Line(")));") + .BeginVar("__viewTagged").Append("new ").Append(MapSignal).Append('<').Append(inv.SourcePropertyTypeFullName).Append(", ") + .Append(changeType).Append(">(").Append(viewVar).Append(", v => new ").Append(changeType) + .Append("(false, default(").Append(inv.TargetPropertyTypeFullName).Line("), v));") + .BeginVar("__sides").Append("new ").Append(MergeSignal).Append('<').Append(changeType).Line(">(__vmTagged, __viewTagged);"); + + var routedVar = BindingEmitterHelpers.EmitViewThreadStage(sb, inv, "__sides", "__routed", "view", inv.TargetViewThreadInvoker); + + _ = sb.Var("changed", $"new {Observables}.AppliedChangeObservable()") + .BlankLine() + .BeginVar("disposable").Append(BindingErrors).Append(".Subscribe(").Append(routedVar).Line(", __change =>") + .OpenBlock() + .If("__change.Item1") + .Var(AppliedValueLocal, "__change.Item2"); + CodeGeneratorHelpers.AppendGuardedAssignment(sb, "view", inv.TargetPropertyPath, AppliedValueLocal); + _ = AppendAppliedChange(sb, fromViewModel: true) + .CloseBlock() + .Else() + .Var(AppliedValueLocal, "__change.Item3"); + CodeGeneratorHelpers.AppendGuardedAssignment(sb, observation.RootVariable, observation.Path, AppliedValueLocal); + _ = AppendAppliedChange(sb, fromViewModel: false) + .CloseBlock() + .CloseBlockInline().Append(", \"").AppendEscaped(inv.SourceExpressionText).Append(" / ") + .AppendEscaped(inv.TargetExpressionText).Line("\");") + .BlankLine() + .BeginReturn().Append($"new {ReactiveBinding}<").Append(inv.TargetTypeFullName).Append(", ") + .Append(BindingChange).Append(">(").OpenContinuation() + .Line("view,") + .Line("changed,") + .Line($"{BindingDirection}.TwoWay,") + .Line("disposable);") + .Outdent() + .CloseBlock() + .BlankLine(); + } + + /// Writes the publication of a change the guard let through, to whoever subscribed to the binding. + /// The writer, inside the branch that applied the change. + /// Whether the change travelled from the view model to the view. + /// The writer, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendAppliedChange(SourceWriter sb, bool fromViewModel) => + sb.If("changed.HasObservers") + .Append("changed.OnNext(new ").Append(BindingChange).Append("(value, ").AppendLiteral(fromViewModel).Line("));") + .CloseBlock(); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCommandCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCommandCodeGenerator.cs new file mode 100644 index 00000000..a1d57b83 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCommandCodeGenerator.cs @@ -0,0 +1,588 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Generates concrete typed extension method overloads and binding methods for BindCommand invocations. +internal static class BindCommandCodeGenerator +{ + /// The parameter carrying the text of the selector naming the command. + private const string CommandExpressionParameter = "propertyNameExpression"; + + /// The parameter carrying the text of the selector naming the control. + private const string ControlExpressionParameter = "controlNameExpression"; + + /// The parameter carrying the text of the selector naming the command parameter. + private const string ParameterExpressionParameter = "withParameterExpression"; + + /// The generated worker each dispatch branch hands the binding to. + private const string WorkerMethodPrefix = "__BindCommand_"; + + /// The two objects a generated worker binds, in its own parameter order. + private const string WorkerArguments = "view, viewModel"; + + /// Closes the view parameter of a generated binding worker. + private const string ViewParameterSuffix = " view,"; + + /// The caller-supplied parameter stream a worker takes on top of the two bound objects. + private const string ObservableParameterArgument = ", withParameter"; + + /// Generates concrete typed overloads and binding methods for BindCommand invocations. + /// All detected BindCommand invocations. + /// All detected class binding info. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + BindCommandInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) => + CodeGeneratorHelpers.GenerateDispatchFile( + invocations, + features, + GroupByTypeSignature, + (sb, group, snapshot) => EmitGroup(sb, group, allClasses, snapshot)); + + /// Groups BindCommand invocations by their type signature for overload generation. + /// The BindCommand invocations to group. + /// A list of grouped invocations sharing the same type signature. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature( + BindCommandInvocationInfo[] invocations) => + SignatureGrouping.Group( + invocations, + static (key, inv) => _ = key + .Append(inv.ViewTypeFullName).Append('|') + .Append(inv.ViewModelTypeFullName).Append('|') + .Append(inv.CommandTypeFullName).Append('|') + .Append(inv.ControlTypeFullName).Append('|') + .Append(inv.HasObservableParameter).Append('|') + .Append(inv.HasExpressionParameter).Append('|') + .Append(inv.ParameterTypeFullName ?? string.Empty), + static (first, members) => new BindCommandTypeGroup( + first.ViewTypeFullName, + first.ViewModelTypeFullName, + first.CommandTypeFullName, + first.ControlTypeFullName, + first.HasObservableParameter, + first.HasExpressionParameter, + first.ParameterTypeFullName, + members)); + + /// Generates the concrete typed overload the consumer's language features call for. + /// The string builder to append to. + /// The BindCommand type group. + /// The consumer compilation's language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void GenerateConcreteOverload(SourceWriter sb, BindCommandTypeGroup group, in LanguageFeatures features) => + GenerateConcreteOverload(sb, group, features.SupportsCallerArgExpr, features.SupportsNullable, features.StubHasExpressionParameters); + + /// Generates the concrete typed overload using the appropriate dispatch strategy. + /// The string builder to append to. + /// The BindCommand type group. + /// Whether CallerArgumentExpression is available. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateConcreteOverload( + SourceWriter sb, + BindCommandTypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + if (supportsCallerArgExpr) + { + GenerateCallerArgExprOverload(sb, group, supportsNullable); + } + else + { + GenerateCallerFilePathOverload(sb, group, supportsNullable, stubHasExpressionParameters); + } + } + + /// Generates the CallerArgumentExpression-based overload for BindCommand dispatch. + /// The writer, at the class's member level. + /// The BindCommand type group. + /// Whether the target supports nullable reference types (C# 8+). + internal static void GenerateCallerArgExprOverload( + SourceWriter sb, + BindCommandTypeGroup group, + bool supportsNullable) + { + AppendOverloadSummary(sb, group, "Uses CallerArgumentExpression for dispatch."); + AppendParameterList(sb, group, true, supportsNullable, true); + + _ = sb.OpenBlock(); + + EmitExpressionDispatchBranches(sb, group); + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates the CallerFilePath-based overload for BindCommand dispatch. + /// The writer, at the class's member level. + /// The BindCommand type group. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateCallerFilePathOverload( + SourceWriter sb, + BindCommandTypeGroup group, + bool supportsNullable, + bool stubHasExpressionParameters) + { + AppendOverloadSummary(sb, group, "Uses CallerFilePath + CallerLineNumber for dispatch."); + AppendParameterList(sb, group, false, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + + EmitFilePathDispatchBranches(sb, group); + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates a private BindCommand method for a specific invocation. + /// The writer, at the class's member level. + /// The BindCommand invocation info. + /// The view model type class binding info. + /// The view type class binding info, which says whether it exposes a view model. + /// The stable method name suffix. + /// Whether the target supports nullable reference types (C# 8+). + internal static void GenerateBindCommandMethod( + SourceWriter sb, + BindCommandInvocationInfo inv, + ClassBindingInfo? viewModelClassInfo, + ClassBindingInfo? viewClassInfo, + string suffix, + bool supportsNullable) + { + var commandObservation = BindingEmitterHelpers.ResolveViewModelObservation( + inv.ViewModelTypeFullName, + inv.ViewTypeFullName, + inv.CommandPropertyPath, + viewModelClassInfo, + viewClassInfo); + + _ = sb.Append("private static ").Append(GeneratedTypeNames.IDisposable).Append(" __BindCommand_").Append(suffix).OpenParameterList() + .Append(inv.ViewTypeFullName).Line(ViewParameterSuffix) + .Append(inv.ViewModelTypeFullName).Append(" viewModel"); + + // Only a caller-supplied stream is passed in; a parameter named as a property is observed inside the worker. + if (inv.HasObservableParameter) + { + _ = sb.Line(",").Append(GeneratedTypeNames.IObservable).Append('<').Append(inv.ParameterTypeFullName).Append("> withParameter"); + } + + _ = sb.Line(")").Outdent().OpenBlock() + .BeginComment().Append("BindCommand: "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.CommandPropertyPath).Append(" -> "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.ControlPropertyPath) + .Append(" (event: ").Append(inv.ResolvedEventName ?? "none").Line(")"); + + if (commandObservation.RootVariable == "viewModel") + { + _ = sb.If("viewModel == null").Return(GeneratedTypeNames.EmptyDisposableInstance).CloseBlock(); + } + + _ = sb.BlankLine(); + + EmitViewModelObservations(sb, inv, viewModelClassInfo, viewClassInfo, in commandObservation); + CommandControlEmitter.EmitRebinding(sb, inv, viewClassInfo, suffix); + + var plugin = CommandBindingPluginRegistry.GetBestPlugin(inv); + var generatedAffinity = plugin is not null ? plugin.Affinity : -1; + EmitCommandAffinityCheck(sb, inv, "__control", generatedAffinity, inv.HasExplicitEvent); + + if (plugin is not null) + { + plugin.EmitBinding(sb, inv, "__control", supportsNullable); + } + else + { + // No plugin matched — throw after the affinity check fallback + _ = sb.Append("throw new ").Append(GeneratedTypeNames.InvalidOperationException).Append('(') + .OpenContinuation() + .Line("\"No bindable event found on the control. Specify the 'toEvent' parameter.\");") + .Outdent() + .CloseBlock(); + } + + _ = sb.BlankLine(); + } + + /// Emits the check that hands the binding to a registered ICreatesCommandBinding with a higher affinity. + /// The writer, inside the worker's body. + /// The BindCommand invocation info. + /// The control access chain (e.g., "view.MyButton"). + /// The affinity of the source-generated plugin, or -1 if none. + /// Whether a resolved event was found at compile time. + internal static void EmitCommandAffinityCheck( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + int generatedAffinity, + bool hasEvent) + { + _ = sb.BlankLine() + .Line("if (global::ReactiveUI.Binding.Fallback.CommandBindingAffinityChecker") + .Indent() + .Append(".HasHigherAffinityPlugin<").Append(inv.ControlTypeFullName).Append(">(").Append(generatedAffinity).Append(", ") + .AppendLiteral(hasEvent).Line("))") + .Outdent() + .OpenBlock() + .Line("var __customBinder = global::ReactiveUI.Binding.CommandBinding.CommandBinderService") + .Indent() + .Append(".GetBinder<").Append(inv.ControlTypeFullName).Append(">(").AppendLiteral(hasEvent).Line(");") + .Outdent() + .If("__customBinder != null") + .Var("__serial", $"new {GeneratedTypeNames.SwapDisposable}()") + .Line($"var __binderCmdSub = {GeneratedTypeNames.Subscribe}(commandObs, __cmd =>") + .OpenBlock() + .Append("__serial.Disposable = ").Append(GeneratedTypeNames.EmptyDisposableInstance).EndStatement() + .Append($"{GeneratedTypeNames.IObservable} __paramObs = "); + _ = AppendParameterObservable(sb, inv).EndStatement() + .Append("__serial.Disposable = __customBinder.BindCommandToObject<").Append(inv.ControlTypeFullName); + if (hasEvent) + { + _ = sb.Append(", ").Append(inv.ResolvedEventArgsTypeFullName ?? GeneratedTypeNames.EventArgs); + } + + _ = sb.Append(">(").OpenContinuation() + .Append("__cmd, ").Append(controlAccess).Append(", __paramObs"); + if (hasEvent) + { + _ = sb.Append(", \"").Append(inv.ResolvedEventName).Append('"'); + } + + _ = sb.Line(")") + .Append("?? ").Append(GeneratedTypeNames.EmptyDisposableInstance).EndStatement() + .Outdent() + .CloseBlock(");") + .Return($"new {GeneratedTypeNames.MultipleDisposable}(__binderCmdSub, __serial)") + .CloseBlock() + .CloseBlock() + .BlankLine(); + } + + /// Writes the parameter observable a custom binder is handed. + /// The writer, part way through the line the expression belongs to. + /// The BindCommand invocation info. + /// The writer, for chaining. + internal static SourceWriter AppendParameterObservable(SourceWriter sb, BindCommandInvocationInfo inv) => + inv.HasObservableParameter || inv is { HasExpressionParameter: true, ParameterPropertyPath: not null } + ? sb.Append($"new {GeneratedTypeNames.MapSignal}<").Append(inv.ParameterTypeFullName).Append(", object>(withParameter, __p => __p)") + : sb.Append($"{GeneratedTypeNames.ImmutableEmptySignal}.Instance"); + + /// Emits the observations of the command, and of a parameter named as a property, through the view's current view model. + /// The writer, inside the worker's body. + /// The BindCommand invocation info. + /// The view model type class binding info. + /// The view type class binding info, which says whether it exposes a view model. + /// The command path rooted at the view or the supplied model. + private static void EmitViewModelObservations( + SourceWriter sb, + BindCommandInvocationInfo inv, + ClassBindingInfo? viewModelClassInfo, + ClassBindingInfo? viewClassInfo, + in BindingEmitterHelpers.ViewModelObservation commandObservation) + { + ObservationCodeGenerator.EmitInlineObservation( + sb, + commandObservation.RootVariable, + commandObservation.Path, + inv.CommandTypeFullName, + commandObservation.RootClassInfo, + "__commandChanges"); + + // Each rebind touches the control, so the command arrives on the view's thread. + _ = BindingEmitterHelpers.AppendViewThreadCall(sb.BeginVar("commandObs"), "__commandChanges", "view", inv.ViewThreadInvoker) + .EndStatement(); + + if (inv is not { HasObservableParameter: false, HasExpressionParameter: true, ParameterPropertyPath: not null }) + { + return; + } + + // Observed rather than read once, so the control sees every value the parameter takes. + var parameterObservation = BindingEmitterHelpers.ResolveViewModelObservation( + inv.ViewModelTypeFullName, + inv.ViewTypeFullName, + inv.ParameterPropertyPath.Value, + viewModelClassInfo, + viewClassInfo); + + ObservationCodeGenerator.EmitInlineObservation( + sb, + parameterObservation.RootVariable, + parameterObservation.Path, + inv.ParameterTypeFullName ?? GeneratedTypeNames.ObjectType, + parameterObservation.RootClassInfo, + "withParameter"); + } + + /// Writes the summary and signature both dispatch overloads declare, opening the parameter list. + /// The writer, at the class's member level; left inside the parameter list. + /// The BindCommand type group. + /// The documentation line naming what the overload matches a call site on. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendOverloadSummary( + SourceWriter sb, + BindCommandTypeGroup group, + string dispatchSummaryLine) => + sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for BindCommand on ").Append(group.ViewTypeFullName).Line(".") + .DocLine(dispatchSummaryLine) + .CloseSummary() + .Append("public static ").Append(GeneratedTypeNames.IDisposable).Append(" BindCommand").OpenParameterList(); + + /// Writes the stub's parameter list, which the overload and the interceptor both have to match exactly. + /// The writer, inside the parameter list. + /// The BindCommand type group whose types the parameters are written from. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters. + private static void AppendParameterList( + SourceWriter sb, + BindCommandTypeGroup group, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + // The command and parameter selectors are nullable and the control selector is not, as the stub declares them. + var commandType = CodeGeneratorHelpers.NullableSelectorLeafType(group.Invocations[0].CommandPropertyPath, supportsNullable); + + _ = sb.Append("this ").Append(group.ViewTypeFullName).Line(ViewParameterSuffix) + .Append(CodeGeneratorHelpers.NullableSelectorType(group.ViewModelTypeFullName, true, supportsNullable)).Line(" viewModel,") + .Append(GeneratedSyntax.SelectorTypeOpen).Append(group.ViewModelTypeFullName).Append(", ") + .Append(commandType).Line(">> propertyName,") + .Append(GeneratedSyntax.SelectorTypeOpen).Append(group.ViewTypeFullName).Append(", ").Append(group.ControlTypeFullName).Line(">> controlName,"); + + if (group.HasObservableParameter) + { + _ = sb.Append(GeneratedTypeNames.IObservable).Append('<').Append(group.ParameterTypeFullName).Line("> withParameter,"); + } + else if (group.HasExpressionParameter) + { + _ = sb.Append(GeneratedSyntax.SelectorTypeOpen).Append(group.ViewModelTypeFullName).Append(", ").Append(group.ParameterTypeFullName) + .Append(supportsNullable && group.Invocations[0].ParameterIsReferenceType ? "?" : string.Empty).Line(">> withParameter,"); + } + + _ = sb.Append("string").Append(supportsNullable ? "?" : string.Empty).Line(" toEvent = null,"); + + if (dispatchesOnExpressionText || stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, "propertyName", CommandExpressionParameter, dispatchesOnExpressionText); + CodeGeneratorHelpers.AppendExpressionParameter(sb, "controlName", ControlExpressionParameter, dispatchesOnExpressionText); + + if (group.HasExpressionParameter) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, "withParameter", ParameterExpressionParameter, dispatchesOnExpressionText); + } + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Emits one interceptor per generated binding, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The group of call sites being claimed. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors(SourceWriter sb, BindCommandTypeGroup group, in LanguageFeatures features) + { + var extraArgs = group.HasObservableParameter ? ObservableParameterArgument : string.Empty; + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in InterceptorEmitter.GroupCallSites(group.Invocations, static x => x.Interceptor, MethodSuffix)) + { + InterceptorEmitter.AppendClaimingMethodOpen( + sb, + entry.Value, + static x => x.Interceptor, + $"internal static {GeneratedTypeNames.IDisposable} __Intercept_BindCommand_", + entry.Key); + AppendParameterList(sb, group, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.Indent() + .Append("=> ").Append(WorkerMethodPrefix).Append(entry.Key).Append('(').Append(WorkerArguments).Append(extraArgs).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Emits the overload and the workers for one group of call sites. + /// The writer, at the class's member level. + /// The group of call sites that share an overload. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + private static void EmitGroup( + SourceWriter sb, + BindCommandTypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) + { + var collapsed = features.CollapsesIndistinguishableCallSites + ? group with { Invocations = ExplicitEventsFirst(CodeGeneratorHelpers.CollapseIndistinguishableCallSites(group.Invocations, DispatchKey)) } + : group; + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, collapsed, in features); + } + else + { + GenerateConcreteOverload(sb, collapsed, in features); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < collapsed.Invocations.Length; i++) + { + var inv = collapsed.Invocations[i]; + GenerateBindCommandMethod( + sb, + inv, + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.ViewModelTypeFullName, inv.CommandPropertyPath), + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.ViewTypeFullName, inv.ControlPropertyPath), + MethodSuffix(inv), + features.SupportsNullable); + } + } + + /// Emits one expression-text comparison branch per call site in the group. + /// The writer, inside the overload's body. + /// The BindCommand type group. + private static void EmitExpressionDispatchBranches(SourceWriter sb, BindCommandTypeGroup group) + { + var extraArgs = group.HasObservableParameter ? ObservableParameterArgument : string.Empty; + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + AppendExpressionCondition(sb, i, inv, group.HasExpressionParameter); + CodeGeneratorHelpers.AppendDispatchReturn(sb, WorkerMethodPrefix + MethodSuffix(inv), WorkerArguments + extraArgs); + } + } + + /// Opens the branch that matches a call site by everything that shapes what it binds. + /// The writer, inside the overload's body; left inside the branch's block. + /// The branch's position, which decides whether it opens with if or else if. + /// The call site the branch stands for. + /// Whether the overload captures the text of the parameter selector. + /// + /// The command and control selectors are not all of it. A parameter selector picks which property feeds the + /// control, and an explicit event replaces the mechanism the control would have bound through, so two call + /// sites that spell the same command and control differently in either bind differently. A call site that + /// names no event carries no event condition, which is why the ones that do are tried first. + /// + private static void AppendExpressionCondition( + SourceWriter sb, + int index, + BindCommandInvocationInfo inv, + bool comparesParameter) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(index), CommandExpressionParameter, inv.CommandExpressionText) + .OpenContinuation() + .Append("&& "); + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb, ControlExpressionParameter, inv.ControlExpressionText); + + if (comparesParameter && inv.ParameterExpressionText is not null) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.EndLine().Append("&& "), ParameterExpressionParameter, inv.ParameterExpressionText); + } + + if (inv.HasExplicitEvent && inv.ResolvedEventName is not null) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.EndLine().Append("&& "), "toEvent", inv.ResolvedEventName); + } + + _ = sb.Outdent().CloseCondition(); + } + + /// Keys a call site by everything the condition that dispatches on it compares. + /// The call site. + /// The key two call sites share only when nothing can tell them apart. + private static string DispatchKey(BindCommandInvocationInfo inv) => + $"{inv.CommandExpressionText}|{inv.ControlExpressionText}|{inv.ParameterExpressionText}|{(inv.HasExplicitEvent ? inv.ResolvedEventName : null)}"; + + /// Puts the call sites that name an event ahead of those that do not, keeping the order within each. + /// The call sites of one group. + /// The same call sites, with the explicit-event ones first. + private static BindCommandInvocationInfo[] ExplicitEventsFirst(BindCommandInvocationInfo[] invocations) + { + var ordered = new List(invocations.Length); + + for (var i = 0; i < invocations.Length; i++) + { + if (invocations[i].HasExplicitEvent) + { + ordered.Add(invocations[i]); + } + } + + for (var i = 0; i < invocations.Length; i++) + { + if (!invocations[i].HasExplicitEvent) + { + ordered.Add(invocations[i]); + } + } + + return [.. ordered]; + } + + /// Emits one file-and-line comparison branch per call site in the group. + /// The string builder to append to. + /// The BindCommand type group. + private static void EmitFilePathDispatchBranches(SourceWriter sb, BindCommandTypeGroup group) + { + var extraArgs = group.HasObservableParameter ? ObservableParameterArgument : string.Empty; + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + CodeGeneratorHelpers.AppendCallerInfoDispatchBranch( + sb, + i, + inv.CallerLineNumber, + inv.CallerFilePath, + WorkerMethodPrefix + MethodSuffix(inv), + WorkerArguments + extraArgs); + } + } + + /// Names the generated worker a call site dispatches to. + /// The call site. + /// The stable suffix its worker is named with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string MethodSuffix(BindCommandInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.ViewTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + $"{inv.CommandExpressionText}|{inv.ControlExpressionText}"); + + /// Groups BindCommand invocations by type signature for overload generation. + /// The fully qualified view type. + /// The fully qualified view model type. + /// The fully qualified type of the bound command property. + /// The fully qualified type of the control the command binds to. + /// Whether the overload takes an observable command parameter. + /// Whether the overload takes an expression command parameter. + /// The fully qualified command parameter type, when the overload has one. + /// The call sites sharing this group's shape. + internal sealed record BindCommandTypeGroup( + string ViewTypeFullName, + string ViewModelTypeFullName, + string CommandTypeFullName, + string ControlTypeFullName, + bool HasObservableParameter, + bool HasExpressionParameter, + string? ParameterTypeFullName, + BindCommandInvocationInfo[] Invocations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindInteractionCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindInteractionCodeGenerator.cs new file mode 100644 index 00000000..66cc0244 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindInteractionCodeGenerator.cs @@ -0,0 +1,400 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Generates concrete typed extension method overloads and binding methods for BindInteraction invocations. +internal static class BindInteractionCodeGenerator +{ + /// The generated worker each dispatch branch hands the binding to. + private const string WorkerMethodPrefix = "__BindInteraction_"; + + /// The arguments a generated worker takes, in its own parameter order. + /// + /// The view comes first because the interaction is observed through whichever view model the view holds, + /// so the worker needs the view itself rather than only the instance the call site handed over. + /// + private const string WorkerArguments = "view, viewModel, handler"; + + /// Closes the view parameter of a generated binding worker. + private const string ViewParameterSuffix = " view,"; + + /// Closes the view model parameter of a generated binding worker. + private const string ViewModelParameterSuffix = " viewModel,"; + + /// Generates concrete typed overloads and binding methods for BindInteraction invocations. + /// All detected BindInteraction invocations. + /// All detected class binding info. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + BindInteractionInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) => + CodeGeneratorHelpers.GenerateDispatchFile( + invocations, + features, + GroupByTypeSignature, + (sb, group, snapshot) => EmitGroup(sb, group, allClasses, snapshot)); + + /// Groups BindInteraction invocations by their type signature for overload generation. + /// The BindInteraction invocations to group. + /// A list of grouped invocations sharing the same type signature. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature( + BindInteractionInvocationInfo[] invocations) => + SignatureGrouping.Group( + invocations, + static (key, inv) => _ = key + .Append(inv.ViewTypeFullName).Append('|') + .Append(inv.ViewModelTypeFullName).Append('|') + .Append(inv.InputTypeFullName).Append('|') + .Append(inv.OutputTypeFullName).Append('|') + .Append(inv.IsTaskHandler).Append('|') + .Append(inv.DontCareTypeFullName), + static (first, members) => new BindInteractionTypeGroup( + first.ViewTypeFullName, + first.ViewModelTypeFullName, + first.InputTypeFullName, + first.OutputTypeFullName, + first.IsTaskHandler, + first.DontCareTypeFullName, + members)); + + /// Generates the concrete typed overload the consumer's language features call for. + /// The string builder to append to. + /// The BindInteraction type group. + /// The consumer compilation's language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void GenerateConcreteOverload(SourceWriter sb, BindInteractionTypeGroup group, in LanguageFeatures features) => + GenerateConcreteOverload(sb, group, features.SupportsCallerArgExpr, features.SupportsNullable, features.StubHasExpressionParameters); + + /// Generates the concrete typed overload using the appropriate dispatch strategy. + /// The string builder to append to. + /// The BindInteraction type group. + /// Whether CallerArgumentExpression is available. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateConcreteOverload( + SourceWriter sb, + BindInteractionTypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + if (supportsCallerArgExpr) + { + GenerateCallerArgExprOverload(sb, group, supportsNullable); + } + else + { + GenerateCallerFilePathOverload(sb, group, supportsNullable, stubHasExpressionParameters); + } + } + + /// Generates the CallerArgumentExpression-based overload for BindInteraction dispatch. + /// The string builder to append to. + /// The BindInteraction type group. + /// Whether the target supports nullable reference types (C# 8+). + internal static void GenerateCallerArgExprOverload( + SourceWriter sb, + BindInteractionTypeGroup group, + bool supportsNullable) + { + AppendOverloadSummary(sb, group, "Uses CallerArgumentExpression for dispatch."); + AppendParameterList(sb, group, true, supportsNullable, true); + + _ = sb.OpenBlock(); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(i), "propertyNameExpression", inv.ExpressionText) + .CloseCondition(); + CodeGeneratorHelpers.AppendDispatchReturn(sb, WorkerMethodPrefix + MethodSuffix(inv), WorkerArguments); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates the CallerFilePath-based overload for BindInteraction dispatch. + /// The writer, at the class's member level. + /// The BindInteraction type group. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateCallerFilePathOverload( + SourceWriter sb, + BindInteractionTypeGroup group, + bool supportsNullable, + bool stubHasExpressionParameters) + { + AppendOverloadSummary(sb, group, "Uses CallerFilePath + CallerLineNumber for dispatch."); + AppendParameterList(sb, group, false, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + CodeGeneratorHelpers.AppendCallerInfoDispatchBranch( + sb, + i, + inv.CallerLineNumber, + inv.CallerFilePath, + WorkerMethodPrefix + MethodSuffix(inv), + WorkerArguments); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates a private BindInteraction method for a specific invocation. + /// The writer, at the class's member level. + /// The BindInteraction invocation info. + /// The view model type class binding info. + /// The view type class binding info, which says whether it exposes a view model. + /// The stable method name suffix. + internal static void GenerateBindInteractionMethod( + SourceWriter sb, + BindInteractionInvocationInfo inv, + ClassBindingInfo? viewModelClassInfo, + ClassBindingInfo? viewClassInfo, + string suffix) + { + var handlerType = inv.IsTaskHandler + ? $"{Func}<{IInteractionContext}<{inv.InputTypeFullName}, {inv.OutputTypeFullName}>, {GeneratedTypeNames.Task}>" + : $"{Func}<{IInteractionContext}<{inv.InputTypeFullName}, {inv.OutputTypeFullName}>, {IObservable}<{inv.DontCareTypeFullName}>>"; + + var interactionType = + $"{IInteraction}<{inv.InputTypeFullName}, {inv.OutputTypeFullName}>"; + + _ = sb.Append($"private static {GeneratedTypeNames.IDisposable} __BindInteraction_").Append(suffix).OpenParameterList() + .Append(inv.ViewTypeFullName).Line(ViewParameterSuffix) + .Append(inv.ViewModelTypeFullName).Line(ViewModelParameterSuffix) + .Append(handlerType).Line(" handler)") + .Outdent() + .OpenBlock() + .BeginComment().Append("BindInteraction: "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.InteractionPropertyPath).EndLine() + .Var("serial", $"new {SwapDisposable}()") + .BlankLine(); + + EmitInteractionObservation(sb, inv, viewModelClassInfo, viewClassInfo, interactionType); + + // Subscribe to the interaction observable and register the handler + _ = sb.BlankLine() + .Line($"var sub = {Subscribe}(interactionObs, interaction =>") + .OpenBlock() + .Append("serial.Disposable = interaction != null").OpenContinuation() + .Line("? interaction.RegisterHandler(handler)") + .Line($": {EmptyDisposableInstance};") + .Outdent() + .CloseBlock(");") + .Return($"new {MultipleDisposable}(sub, serial)") + .CloseBlock() + .BlankLine(); + } + + /// Writes the summary and signature both dispatch overloads declare, opening the parameter list. + /// The writer, at the class's member level; left inside the parameter list. + /// The BindInteraction type group. + /// The documentation line naming what the overload matches a call site on. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendOverloadSummary( + SourceWriter sb, + BindInteractionTypeGroup group, + string dispatchSummaryLine) => + sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for BindInteraction on ").Append(group.ViewTypeFullName).Line(".") + .DocLine(dispatchSummaryLine) + .CloseSummary() + .Append($"public static {GeneratedTypeNames.IDisposable} BindInteraction").OpenParameterList(); + + /// Writes the parameters a BindInteraction member declares, closing the list. + /// The string builder to append to. + /// The BindInteraction type group whose types the parameters are written from. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameter. + /// + /// One list serves the overload and the interceptor, because both have to be the stub's signature: the + /// overload only wins resolution against a candidate it is otherwise indistinguishable from, and an + /// interceptor is refused outright unless its signature is the intercepted method's. The view model is + /// declared nullable, as the stub declares it: a view is bound before it has been given one. + /// + private static void AppendParameterList( + SourceWriter sb, + BindInteractionTypeGroup group, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var handlerType = group.IsTaskHandler + ? $"{Func}<{IInteractionContext}<{group.InputTypeFullName}, {group.OutputTypeFullName}>, {GeneratedTypeNames.Task}>" + : $"{Func}<{IInteractionContext}<{group.InputTypeFullName}, {group.OutputTypeFullName}>, {IObservable}<{group.DontCareTypeFullName}>>"; + + _ = sb.Append("this ").Append(group.ViewTypeFullName).Line(ViewParameterSuffix) + .Append(CodeGeneratorHelpers.NullableSelectorType(group.ViewModelTypeFullName, true, supportsNullable)).Line(ViewModelParameterSuffix) + .Append(Expression).Append('<').Append(Func).Append('<') + .Append(group.ViewModelTypeFullName).Append(", ").Append(IInteraction).Append('<').Append(group.InputTypeFullName).Append(", ") + .Append(group.OutputTypeFullName).Line(">>> propertyName,") + .Append(handlerType).Line(" handler,"); + + if (dispatchesOnExpressionText || stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, "propertyName", "propertyNameExpression", dispatchesOnExpressionText); + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Emits one interceptor per generated binding, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The group of call sites being claimed. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors(SourceWriter sb, BindInteractionTypeGroup group, in LanguageFeatures features) + { + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in InterceptorEmitter.GroupCallSites(group.Invocations, static x => x.Interceptor, MethodSuffix)) + { + InterceptorEmitter.AppendClaimingMethodOpen( + sb, + entry.Value, + static x => x.Interceptor, + $"internal static {GeneratedTypeNames.IDisposable} __Intercept_BindInteraction_", + entry.Key); + AppendParameterList(sb, group, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.Indent() + .Append("=> ").Append(WorkerMethodPrefix).Append(entry.Key).Append('(').Append(WorkerArguments).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Emits the overload and the workers for one group of call sites. + /// The string builder to append to. + /// The group of call sites that share an overload. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + private static void EmitGroup( + SourceWriter sb, + BindInteractionTypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) + { + var collapsed = features.CollapsesIndistinguishableCallSites + ? group with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + group.Invocations, + static x => x.ExpressionText), + } + : group; + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, collapsed, in features); + } + else + { + GenerateConcreteOverload(sb, collapsed, in features); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < collapsed.Invocations.Length; i++) + { + var inv = collapsed.Invocations[i]; + GenerateBindInteractionMethod( + sb, + inv, + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.ViewModelTypeFullName, inv.InteractionPropertyPath), + inv.ViewClassInfo, + MethodSuffix(inv)); + } + } + + /// Emits the null guard and the observation of the interaction property. + /// The string builder to append to. + /// The BindInteraction invocation info. + /// The view model type's binding info, when known. + /// The view type's binding info, which says whether it exposes a view model. + /// The fully qualified interaction type being observed. + /// + /// The shared chain emitter answers every path length, so a single-segment interaction property is offered + /// to a registered plugin on the same terms as a deeper one and as every other binding API. + /// + private static void EmitInteractionObservation( + SourceWriter sb, + BindInteractionInvocationInfo inv, + ClassBindingInfo? viewModelClassInfo, + ClassBindingInfo? viewClassInfo, + string interactionType) + { + var observation = BindingEmitterHelpers.ResolveViewModelObservation( + inv.ViewModelTypeFullName, + inv.ViewTypeFullName, + inv.InteractionPropertyPath, + viewModelClassInfo, + viewClassInfo); + + if (observation.RootVariable == "viewModel") + { + AppendViewModelGuard(sb); + } + + ObservationCodeGenerator.EmitInlineObservation( + sb, + observation.RootVariable, + observation.Path, + interactionType, + observation.RootClassInfo, + "interactionObs"); + } + + /// Writes the guard that leaves the binding inert until the view is given a view model. + /// The writer, inside the worker's body. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendViewModelGuard(SourceWriter sb) => + sb.If("viewModel == null").Return("serial").CloseBlock(); + + /// Names the generated worker a call site dispatches to. + /// The call site. + /// The stable suffix its worker is named with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string MethodSuffix(BindInteractionInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.ViewTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.ExpressionText); + + /// Groups BindInteraction invocations by type signature for overload generation. + /// The fully qualified view type. + /// The fully qualified view model type. + /// The fully qualified interaction input type. + /// The fully qualified interaction output type. + /// Whether the handler returns a task rather than an observable. + /// The fully qualified handler result type that the binding discards, when there is one. + /// The call sites sharing this group's shape. + internal sealed record BindInteractionTypeGroup( + string ViewTypeFullName, + string ViewModelTypeFullName, + string InputTypeFullName, + string OutputTypeFullName, + bool IsTaskHandler, + string? DontCareTypeFullName, + BindInteractionInvocationInfo[] Invocations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindOneWayCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindOneWayCodeGenerator.cs new file mode 100644 index 00000000..91025e39 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindOneWayCodeGenerator.cs @@ -0,0 +1,99 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads and binding methods for BindOneWay invocations. +/// Supports basic bindings, inline Func converters, and scheduler overloads. +/// +internal static class BindOneWayCodeGenerator +{ + /// Gets what distinguishes this API's generated dispatch overload from the other three. + internal static readonly BindingEmitterHelpers.BindingDispatchApi DispatchApi = new() + { + Name = "BindOneWay", + ReceiverParameterName = "source", + OtherParameterName = "target", + ReceiverIsTarget = false, + SourceSelectorName = "sourceProperty", + TargetSelectorName = "targetProperty", + WorkerMethodPrefix = "__BindOneWay_", + WorkerSourceParameterName = "source", + WorkerTargetParameterName = "target", + IsTwoWay = false, + HookRefusalValue = GeneratedTypeNames.EmptyDisposableInstance, + SourceObservableName = SourceObservableVariable, + SourceConvertedName = "__selected", + SourceScheduledName = "bindObs", + ForwardConverterArgument = ConversionParameterName, + OverrideForwardName = "converter", + AppendExtraParameters = AppendExtraParameters, + FormatWorkerParameters = FormatExtraMethodParams, + FormatExtraArguments = FormatExtraArgs, + }; + + /// What this API calls the conversion argument in its generated signatures. + private const string ConversionParameterName = "conversionFunc"; + + /// Name of the emitted local holding the source property observation, before conversion or scheduling. + private const string SourceObservableVariable = "sourceObs"; + + /// + /// Generates the BindOneWay method used for binding a source property to a target property with optional conversion and scheduler. + /// + /// The SourceWriter for appending the generated code. + /// The invocation information containing details about the binding. + /// The class binding information of the source, or null if not applicable. + /// The suffix to append to the generated method name for uniqueness. + internal static void GenerateBindOneWayMethod( + SourceWriter sb, + BindingInvocationInfo inv, + ClassBindingInfo? sourceClassInfo, + string suffix) + { + BindingEmitterHelpers.AppendWorkerMethodHeader(sb, DispatchApi, inv, suffix); + + // Emit inline observation code instead of delegating to WhenChanged dispatch + ObservationCodeGenerator.EmitInlineObservation( + sb, + "source", + inv.SourcePropertyPath, + inv.SourcePropertyTypeFullName, + sourceClassInfo, + SourceObservableVariable); + + var subscribeVar = BindingEmitterHelpers.EmitSingleStreamStages(sb, DispatchApi, inv); + + subscribeVar = BindingEmitterHelpers.EmitViewThreadStage(sb, inv, subscribeVar, "targetThreadObs", "target", inv.TargetViewThreadInvoker); + + BindingEmitterHelpers.AppendWriteSubscription(sb.BlankLine().BeginReturn(), subscribeVar, "target", inv.TargetPropertyPath, inv.TargetExpressionText); + _ = sb.CloseBlock().BlankLine(); + } + + /// Appends extra parameters (converter, scheduler) to the concrete overload signature. + /// The string builder to append to. + /// The binding type group. + /// Whether the target supports nullable reference types (C# 8+). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtraParameters(SourceWriter sb, BindingTypeGroup group, bool supportsNullable) => + BindingEmitterHelpers.AppendExtraParameters(sb, group, ConversionParameterName, supportsNullable); + + /// Formats extra arguments (converter, scheduler) for forwarding to the binding method. + /// The binding type group. + /// Extra arguments string like ", conversionFunc, scheduler" or empty. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraArgs(BindingTypeGroup group) => + BindingEmitterHelpers.FormatExtraArgs(group, ConversionParameterName); + + /// Formats extra method parameters for the private binding method signature. + /// The binding invocation info. + /// Extra parameters string like ", Func<int, string> conversionFunc, ISequencer scheduler" or empty. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraMethodParams(BindingInvocationInfo inv) => + BindingEmitterHelpers.FormatExtraMethodParams(inv, ConversionParameterName); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindToCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindToCodeGenerator.cs new file mode 100644 index 00000000..751f7328 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindToCodeGenerator.cs @@ -0,0 +1,448 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Generates the typed overloads, interceptors and binding methods for BindTo invocations. +internal static class BindToCodeGenerator +{ + /// The worker parameter naming the object a write lands on. + private const string TargetParameterName = "target"; + + /// The worker parameter naming the source observable. + private const string SourceParameterName = "source"; + + /// Generates concrete typed overloads and binding methods for BindTo invocations. + /// All detected BindTo invocations. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// Generated source code string, or null if no invocations. + internal static string? Generate( + BindToInvocationInfo[] invocations, + in LanguageFeatures features) + { + if (invocations.Length == 0) + { + return null; + } + + var sb = SourceWriter.Rent(invocations.Length * CodeGeneratorHelpers.PerInvocationBufferCapacity); + var supportsCallerArgExpr = features.SupportsCallerArgExpr; + CodeGeneratorHelpers.AppendExtensionClassHeader(sb, features); + + var groups = GroupByTypeSignature(invocations); + + for (var g = 0; g < groups.Count; g++) + { + var group = features.CollapsesIndistinguishableCallSites + ? groups[g] with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + groups[g].Invocations, + static x => x.TargetExpressionText), + } + : groups[g]; + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, group, in features); + } + else + { + GenerateConcreteOverload(sb, group, supportsCallerArgExpr, features.SupportsNullable, features.StubHasExpressionParameters); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + var suffix = CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.TargetTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.TargetExpressionText); + GenerateBindToMethod(sb, inv, suffix); + } + } + + CodeGeneratorHelpers.AppendExtensionClassFooter(sb); + + return sb.ToStringAndReturn(); + } + + /// + /// Groups BindTo invocations by source value type, target type, target property type, and + /// overload shape (conversion hint / converter override), so each group produces one concrete overload. + /// + /// The collection of BindTo invocation details to be grouped. + /// A list of grouped invocations, where each group shares the same overload signature. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature(BindToInvocationInfo[] invocations) => + SignatureGrouping.Group( + invocations, + static (key, inv) => _ = key + .Append(inv.SourceValueTypeFullName).Append('|') + .Append(inv.TargetTypeFullName).Append('|') + .Append(inv.TargetPropertyTypeFullName).Append('|') + .Append(inv.HasConversionHint).Append('|') + .Append(inv.HasConverterOverride), + static (first, members) => new BindToTypeGroup( + first.SourceValueTypeFullName, + first.TargetTypeFullName, + first.TargetPropertyTypeFullName, + first.TargetPropertyIsReferenceType, + first.HasConversionHint, + first.HasConverterOverride, + members)); + + /// + /// Generates the concrete typed BindTo overload for a group, choosing the dispatch strategy + /// based on whether CallerArgumentExpression is available. + /// + /// The string builder to append to. + /// The group of invocations sharing one overload signature. + /// Whether CallerArgumentExpression is supported. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateConcreteOverload( + SourceWriter sb, + BindToTypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + if (supportsCallerArgExpr) + { + GenerateCallerArgExprOverload(sb, group, supportsNullable); + } + else + { + GenerateCallerFilePathOverload(sb, group, supportsNullable, stubHasExpressionParameters); + } + } + + /// Generates a concrete BindTo overload that dispatches using CallerArgumentExpression. + /// The writer, at the class's member level. + /// The group of invocations sharing one overload signature. + /// Whether the target supports nullable reference types (C# 8+). + internal static void GenerateCallerArgExprOverload(SourceWriter sb, BindToTypeGroup group, bool supportsNullable) + { + AppendOverloadOpen(sb, group, true, supportsNullable, true); + + var extraArguments = FormatExtraArgs(group); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(i), "propertyExpression", inv.TargetExpressionText) + .CloseCondition(); + AppendWorkerInvocation(sb.BeginReturn(), BindToMethodSuffix(inv), extraArguments); + _ = sb.CloseBlock(); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates a concrete BindTo overload that dispatches using CallerFilePath + CallerLineNumber. + /// The writer, at the class's member level. + /// The group of invocations sharing one overload signature. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateCallerFilePathOverload( + SourceWriter sb, + BindToTypeGroup group, + bool supportsNullable, + bool stubHasExpressionParameters) + { + AppendOverloadOpen(sb, group, false, supportsNullable, stubHasExpressionParameters); + + var extraArguments = FormatExtraArgs(group); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + CodeGeneratorHelpers.AppendCallerInfoDispatchCondition( + sb, + i, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + AppendWorkerInvocation(sb.BeginReturn(), BindToMethodSuffix(inv), extraArguments); + _ = sb.CloseBlock(); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Generates the binding method that writes each source value to the target property on the target's thread. + /// The writer, at the class's member level. + /// The invocation info. + /// The stable method-name suffix. + internal static void GenerateBindToMethod(SourceWriter sb, BindToInvocationInfo inv, string suffix) + { + var extraParams = FormatExtraMethodParams(inv); + + // Direct assignment is only safe when the value type matches the property type and the caller did + // not supply an explicit converter. A conversion hint alone is meaningless for identity assignment. + var directAssign = inv.SourceValueTypeFullName == inv.TargetPropertyTypeFullName && !inv.HasConverterOverride; + var sourceVariable = SourceParameterName; + + _ = sb.Append("private static ").Append(GeneratedTypeNames.IDisposable).Append(" __BindTo_").Append(suffix).Append('(') + .Append(ObservableOf(inv.SourceValueTypeFullName)).Append(" source, ").Append(inv.TargetTypeFullName).Append(" target").Append(extraParams) + .Line(")").OpenBlock() + .BeginComment().Append("BindTo: observable -> "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.TargetPropertyPath).EndLine(); + + EmitBindingHookGuard(sb, inv); + _ = sb.BlankLine(); + + if (inv.SetMethod is { } setMethod) + { + _ = BindingEmitterHelpers.AppendViewThreadCall(sb.BeginVar("__setSource"), "source", TargetParameterName, inv.TargetViewThreadInvoker).EndStatement(); + CollectionSetMethodEmitter.EmitSubscription(sb, new(TargetParameterName, inv.TargetPropertyPath, inv.SourceValueTypeFullName, setMethod, inv.TargetExpressionText, false), "__setSource"); + _ = sb.Return("__setSubscription").CloseBlock(); + return; + } + + if (inv.Conversion is not null) + { + ConversionEmitter.EmitStage( + sb, + sourceVariable, + "__convertedSource", + inv.SourceValueTypeFullName, + inv.TargetPropertyTypeFullName, + inv.Conversion, + new(inv.HasConversionHint ? "conversionHint" : "null", inv.HasConverterOverride ? "converterOverride" : "null")); + sourceVariable = "__convertedSource"; + directAssign = true; + } + + _ = BindingEmitterHelpers.AppendViewThreadCall(sb.BeginReturn().Append(BindingErrors).Append(".Subscribe("), sourceVariable, TargetParameterName, inv.TargetViewThreadInvoker) + .Line(", value =>").OpenBlock(); + + if (directAssign) + { + CodeGeneratorHelpers.AppendGuardedAssignment(sb, TargetParameterName, inv.TargetPropertyPath, "value"); + } + else + { + _ = sb.BeginIf().Append(RuntimeBindingConverter).Append(".TryConvert<").Append(inv.SourceValueTypeFullName).Append(", ") + .Append(inv.TargetPropertyTypeFullName).Append(">(value, ").Append(FormatConversionArguments(inv)).Append(", out var __converted)") + .CloseCondition(); + CodeGeneratorHelpers.AppendGuardedAssignment(sb, TargetParameterName, inv.TargetPropertyPath, "__converted"); + _ = sb.CloseBlock(); + } + + _ = sb.CloseBlockInline().Append(", ").AppendQuoted(inv.TargetExpressionText).Line(");") + .CloseBlock() + .BlankLine(); + } + + /// Writes the conversion-hint and converter-override parameters of the concrete overload signature. + /// The writer, inside the parameter list. + /// The binding type group. + internal static void AppendExtraParameters(SourceWriter sb, BindToTypeGroup group) + { + if (group.HasConversionHint) + { + _ = sb.Parameter("object conversionHint"); + } + + if (!group.HasConverterOverride) + { + return; + } + + _ = sb.Append(IBindingTypeConverter).Line(" converterOverride,"); + } + + /// Formats the extra arguments forwarded from the concrete overload to the worker method. + /// The binding type group. + /// An argument list fragment like ", conversionHint, converterOverride", or empty. + internal static string FormatExtraArgs(BindToTypeGroup group) + { + var sb = new PooledStringBuilder(); + if (group.HasConversionHint) + { + _ = sb.Append(", conversionHint"); + } + + if (group.HasConverterOverride) + { + _ = sb.Append(", converterOverride"); + } + + return sb.ToStringAndReturn(); + } + + /// Formats the extra parameters for the private worker method signature. + /// The binding invocation info. + /// A parameter list fragment like ", object conversionHint, ... converterOverride", or empty. + internal static string FormatExtraMethodParams(BindToInvocationInfo inv) + { + var sb = new PooledStringBuilder(); + if (inv.HasConversionHint) + { + _ = sb.Append(", object conversionHint"); + } + + if (inv.HasConverterOverride) + { + _ = sb.Append(", ").Append(IBindingTypeConverter).Append(" converterOverride"); + } + + return sb.ToStringAndReturn(); + } + + /// Offers the target property path to registered hooks before a BindTo subscription is created. + /// The generated source builder. + /// The binding invocation being emitted. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void EmitBindingHookGuard(SourceWriter sb, BindToInvocationInfo inv) => + BindingEmitterHelpers.EmitBindingHookGuard( + sb, + SourceParameterName, + default, + TargetParameterName, + inv.TargetPropertyPath, + "OneWay", + EmptyDisposableInstance); + + /// Emits one interceptor per generated binding, claiming every call site that reaches it. + /// The string builder to append to. + /// The group of call sites being claimed. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors(SourceWriter sb, BindToTypeGroup group, in LanguageFeatures features) + { + var extraArguments = FormatExtraArgs(group); + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in InterceptorEmitter.GroupCallSites(group.Invocations, static x => x.Interceptor, BindToMethodSuffix)) + { + foreach (var callSite in entry.Value) + { + InterceptorEmitter.AppendAttribute(sb, callSite.Interceptor); + } + + _ = sb.Append("internal static ").Append(GeneratedTypeNames.IDisposable).Append(" __Intercept_BindTo_") + .Append(entry.Key).OpenParameterList(); + + AppendParameterList(sb, group, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + AppendWorkerInvocation(sb.Indent().Append("=> "), entry.Key, extraArguments); + _ = sb.Outdent().BlankLine(); + } + } + + /// Writes the summary and signature of a concrete overload, and opens its body. + /// The writer, at the class's member level; left inside the overload's body. + /// The group whose types the signature is written from. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameter. + private static void AppendOverloadOpen( + SourceWriter sb, + BindToTypeGroup group, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + _ = sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for BindTo of ").Append(IObservable).Append("<") + .Append(group.SourceValueTypeFullName).Append("> to ").Append(group.TargetTypeFullName).Line(".") + .DocLine(dispatchesOnExpressionText + ? "Uses CallerArgumentExpression for dispatch." + : "Uses CallerFilePath + CallerLineNumber for dispatch.") + .CloseSummary() + .Append("public static ").Append(GeneratedTypeNames.IDisposable).Append(" BindTo").OpenParameterList(); + + AppendParameterList(sb, group, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + } + + /// Writes the stub's parameter list, which the overload and the interceptor both have to match exactly. + /// The writer, inside the parameter list. + /// The group whose types the parameters are written from. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameter. + private static void AppendParameterList( + SourceWriter sb, + BindToTypeGroup group, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var targetPropType = CodeGeneratorHelpers.NullableSelectorType( + group.TargetPropertyTypeFullName, + group.TargetPropertyIsReferenceType, + supportsNullable); + + _ = sb.Append("this ").Append(ObservableOf(group.SourceValueTypeFullName)).Line(" source,") + .Append(CodeGeneratorHelpers.NullableSelectorType(group.TargetTypeFullName, true, supportsNullable)).Line(" target,") + .Append(PropertyExpression(group.TargetTypeFullName, targetPropType)).Line(" property,"); + + AppendExtraParameters(sb, group); + + if (dispatchesOnExpressionText || stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, "property", "propertyExpression", dispatchesOnExpressionText); + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Writes the call forwarding the bound stream and target on to the generated worker, ending the statement. + /// The writer, after the keyword or arrow the call sits behind. + /// The stable suffix naming the worker. + /// The conversion-hint and converter-override arguments, if any. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendWorkerInvocation(SourceWriter sb, string methodSuffix, string extraArguments) => + sb.Append("__BindTo_").Append(methodSuffix).Append("(source, target").Append(extraArguments).Line(");"); + + /// Names the generated binding a call site reaches. + /// The call site. + /// The stable method-name suffix. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string BindToMethodSuffix(BindToInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.TargetTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.TargetExpressionText); + + /// Formats the conversion-hint and converter-override arguments handed to the runtime converter. + /// The invocation info. + /// The two arguments, comma separated. + private static string FormatConversionArguments(BindToInvocationInfo inv) => + $"{(inv.HasConversionHint ? "conversionHint" : "null")}, {(inv.HasConverterOverride ? "converterOverride" : "null")}"; + + /// Groups BindTo invocations sharing source value type, target type, target property type, and overload shape. + /// The fully qualified observable value type. + /// The fully qualified target object type. + /// The fully qualified target property type. + /// Whether that type is a reference type, which annotates the selector parameter. + /// Whether this group's overload takes a conversion hint. + /// Whether this group's overload takes an explicit converter. + /// All invocations sharing this overload signature. + internal sealed record BindToTypeGroup( + string SourceValueTypeFullName, + string TargetTypeFullName, + string TargetPropertyTypeFullName, + bool TargetPropertyIsReferenceType, + bool HasConversionHint, + bool HasConverterOverride, + BindToInvocationInfo[] Invocations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindTwoWayCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindTwoWayCodeGenerator.cs new file mode 100644 index 00000000..b3774890 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindTwoWayCodeGenerator.cs @@ -0,0 +1,162 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads and binding methods for BindTwoWay invocations. +/// Supports basic bindings, inline Func converters (source-to-target and target-to-source), and scheduler overloads. +/// +internal static class BindTwoWayCodeGenerator +{ + /// Gets what distinguishes this API's generated dispatch overload from the other three. + internal static readonly BindingEmitterHelpers.BindingDispatchApi DispatchApi = new() + { + Name = "BindTwoWay", + ReceiverParameterName = "source", + OtherParameterName = "target", + ReceiverIsTarget = false, + SourceSelectorName = "sourceProperty", + TargetSelectorName = "targetProperty", + WorkerMethodPrefix = "__BindTwoWay_", + WorkerSourceParameterName = SourceParameterName, + WorkerTargetParameterName = TargetParameterName, + IsTwoWay = true, + HookRefusalValue = GeneratedTypeNames.EmptyDisposableInstance, + SourceObservableName = BindTwoWayCodeGenerator.SourceObservableName, + TargetObservableName = BindTwoWayCodeGenerator.TargetObservableName, + SourceConvertedName = "__srcSelected", + TargetConvertedName = "__tgtSelected", + SourceScheduledName = "sourceBind", + TargetScheduledName = "targetBind", + ForwardConverterArgument = ForwardConverterName, + ReverseConverterArgument = ReverseConverterName, + OverrideForwardName = "sourceToTargetConverter", + OverrideReverseName = "targetToSourceConverter", + AppendExtraParameters = AppendExtraParameters, + FormatWorkerParameters = FormatExtraMethodParams, + FormatExtraArguments = FormatExtraArgs, + }; + + /// What this API calls the source-to-target converter in its generated signatures. + private const string ForwardConverterName = "sourceToTargetConv"; + + /// What this API calls the target-to-source converter in its generated signatures. + private const string ReverseConverterName = "targetToSourceConv"; + + /// Name of the source parameter on the generated binding method. + private const string SourceParameterName = "source"; + + /// Name of the target parameter on the generated binding method. + private const string TargetParameterName = "target"; + + /// Name of the generated local holding the source side observable. + private const string SourceObservableName = "sourceObs"; + + /// Name of the generated local holding the target side observable. + private const string TargetObservableName = "targetObs"; + + /// Generates a private BindTwoWay method for a specific invocation. + /// The string builder to append to. + /// The binding invocation info. + /// The source type class binding info. + /// The target type class binding info. + /// The stable method name suffix. + internal static void GenerateBindTwoWayMethod( + SourceWriter sb, + BindingInvocationInfo inv, + ClassBindingInfo? sourceClassInfo, + ClassBindingInfo? targetClassInfo, + string suffix) + { + BindingEmitterHelpers.AppendWorkerMethodHeader(sb, DispatchApi, inv, suffix); + + // Emit inline observation code instead of delegating to WhenChanged dispatch + ObservationCodeGenerator.EmitInlineObservation( + sb, + SourceParameterName, + inv.SourcePropertyPath, + inv.SourcePropertyTypeFullName, + sourceClassInfo, + SourceObservableName); + + ObservationCodeGenerator.EmitInlineObservation( + sb, + TargetParameterName, + inv.TargetPropertyPath, + inv.TargetPropertyTypeFullName, + targetClassInfo, + TargetObservableName); + + var (sourceVar, targetVar) = BindingEmitterHelpers.EmitDualStreamStages(sb, DispatchApi, inv); + + // Both directions are routed, and the source direction first, so its initial value is queued ahead of + // the target's. That ordering is what seeds the target before the target's own first value is weighed. + sourceVar = BindingEmitterHelpers.EmitViewThreadStage(sb, inv, sourceVar, "targetThreadObs", TargetParameterName, inv.TargetViewThreadInvoker); + targetVar = BindingEmitterHelpers.EmitViewThreadStage(sb, inv, targetVar, "sourceThreadObs", SourceParameterName, inv.SourceViewThreadInvoker); + + EmitTwoWaySubscription(sb, inv, sourceVar, targetVar); + } + + /// Appends extra parameters (converters, scheduler) to the concrete overload signature. + /// The string builder to append to. + /// The binding type group. + /// Whether the target supports nullable reference types (C# 8+). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtraParameters(SourceWriter sb, BindingTypeGroup group, bool supportsNullable) => + BindingEmitterHelpers.AppendTwoWayExtraParameters(sb, group, ForwardConverterName, ReverseConverterName, supportsNullable); + + /// Formats extra arguments (converters, scheduler) for forwarding to the binding method. + /// The binding type group. + /// Extra arguments string like ", sourceToTargetConv, targetToSourceConv, scheduler" or empty. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraArgs(BindingTypeGroup group) => + BindingEmitterHelpers.FormatTwoWayExtraArgs(group, ForwardConverterName, ReverseConverterName); + + /// Formats extra method parameters for the private binding method signature. + /// The binding invocation info. + /// Extra parameters string for two-way converter and scheduler parameters. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraMethodParams(BindingInvocationInfo inv) => + BindingEmitterHelpers.FormatTwoWayExtraMethodParams(inv, ForwardConverterName, ReverseConverterName); + + /// Emits the two-way subscription and MultipleDisposable return block, and closes the worker. + /// The writer, inside the worker's body. + /// The call site, naming the paths written and the expressions a faulting write is reported against. + /// The source observable variable name to subscribe to. + /// The target observable variable name to subscribe to. + /// + /// The target's own first value is weighed rather than dropped by position. Both observations report what + /// they hold when subscribed, and the source is subscribed first, so by the time the target reports the + /// target already carries the source's value and the equality guard drops it. Dropping the first value + /// positionally instead would eat a real change wherever the target reports nothing to begin with - a chain + /// through a null intermediate does exactly that. + /// + private static void EmitTwoWaySubscription( + SourceWriter sb, + BindingInvocationInfo inv, + string sourceVar, + string targetVar) + { + BindingEmitterHelpers.AppendWriteSubscription( + sb.BlankLine().BeginVar("d1"), + sourceVar, + TargetParameterName, + inv.TargetPropertyPath, + inv.TargetExpressionText); + BindingEmitterHelpers.AppendWriteSubscription( + sb.BlankLine().BeginVar("d2"), + targetVar, + SourceParameterName, + inv.SourcePropertyPath, + inv.SourceExpressionText); + _ = sb.BlankLine() + .Return($"new {GeneratedTypeNames.MultipleDisposable}(d1, d2)") + .CloseBlock() + .BlankLine(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingEmitterHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingEmitterHelpers.cs new file mode 100644 index 00000000..20e88b24 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingEmitterHelpers.cs @@ -0,0 +1,1298 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// The emission the four property-binding APIs share: grouping call sites, and the optional conversion and +/// scheduler parameters that trail every overload. +/// +/// +/// BindOneWay, BindTwoWay, OneWayBind and Bind each emit a different signature, but +/// the grouping is the same and the trailing parameters differ only in what the conversion argument is called - +/// a converting binding names it conversionFunc, a projecting one names it selector. Passing that +/// name in is the whole of the difference, so the emission lives here once rather than four times. +/// +internal static class BindingEmitterHelpers +{ + /// The name a view exposes its view model under. + private const string ViewModelPropertyName = "ViewModel"; + + /// The type the non-generic view interface declares the view model as, which names no view model. + private const string WeaklyTypedViewModel = "object"; + + /// Opens a delegate parameter, ready for the two type arguments and the parameter name. + private const string FuncParameterPrefix = $", {GeneratedTypeNames.Func}<"; + + /// The stream carrying values converted for the target. + private const string ConvertedForwardName = "__convertedForward"; + + /// The stream carrying values converted for the source. + private const string ConvertedReverseName = "__convertedReverse"; + + /// Follows a scheduler's type where a worker declares it. + private const string SchedulerDeclarationSuffix = " scheduler"; + + /// What a converter overload calls the hint it hands its converters. + private const string ConversionHintName = "conversionHint"; + + /// The list a hook reader collects the changes along its path into. + private const string HookChangesName = "__hookChanges"; + + /// What a hook reader returns: the changes it reached. + private const string HookChangesResult = "__hookChanges.ToArray()"; + + /// Names the local holding the owner a hook reader reads one segment from, before its index. + private const string HookOwnerPrefix = "__hookOwner"; + + /// Names the local holding the value a hook reader read for one segment, before its index. + private const string HookValuePrefix = "__hookValue"; + + /// Emits a whole binding dispatch file, claiming its call sites through one API's dispatch. + /// The detected call sites for this API. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + /// The API whose overload or interceptors claim the call sites. + /// Emits the binding method for one call site. + /// The generated source, or null when there are no call sites. + /// + /// Every binding API claims a group the same way, so how the claim is emitted follows from the API rather + /// than being written out again at each registration. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + BindingInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features, + BindingDispatchApi api, + Action emitMethod) => + Generate( + invocations, + allClasses, + in features, + (sb, group, f) => EmitOverloadOrInterceptors(sb, group, api, in f), + emitMethod); + + /// + /// Emits a whole binding dispatch file: the extension class, one concrete overload per group of + /// call sites, and one binding method per call site. + /// + /// The detected call sites for this API. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + /// Emits the concrete typed overload for one group. + /// Emits the binding method for one call site. + /// The generated source, or null when there are no call sites. + internal static string? Generate( + BindingInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features, + Action emitOverload, + Action emitMethod) + { + if (invocations.Length == 0) + { + return null; + } + + var snapshot = features; + var sb = SourceWriter.Rent(invocations.Length * CodeGeneratorHelpers.PerInvocationBufferCapacity); + CodeGeneratorHelpers.AppendExtensionClassHeader(sb, snapshot); + + var groups = GroupByTypeSignature(invocations); + + for (var g = 0; g < groups.Count; g++) + { + var group = snapshot.CollapsesIndistinguishableCallSites && !groups[g].HasConverterOverride + ? groups[g] with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + groups[g].Invocations, + static x => $"{x.SourceExpressionText}|{x.TargetExpressionText}"), + } + : groups[g]; + + emitOverload(sb, group, snapshot); + _ = sb.BlankLine(); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + var suffix = CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + $"{inv.SourceExpressionText}|{inv.TargetExpressionText}"); + + emitMethod( + sb, + new( + inv, + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.SourceTypeFullName, inv.SourcePropertyPath), + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.TargetTypeFullName, inv.TargetPropertyPath), + suffix, + snapshot)); + } + } + + CodeGeneratorHelpers.AppendExtensionClassFooter(sb); + + return sb.ToStringAndReturn(); + } + + /// Emits the guard that lets a registered binding hook refuse this binding. + /// The string builder to append to. + /// The generated name of the source object. + /// The source property path supplied to hooks. + /// The generated name of the target object. + /// The target property path supplied to hooks. + /// The binding direction reported to the hook. + /// What the generated method returns when a hook refuses. + /// + /// The Any test comes first so the closures are only built once a hook is registered. Each reader + /// walks its path when requested, returning the changes reached before a null intermediate. The readers + /// capture copies declared inside the guard's block rather than the method's parameters: a captured parameter + /// shares its closure with every other lambda in the method, so the binding's subscription would keep the + /// source object alive for as long as the target lives. + /// + internal static void EmitBindingHookGuard( + SourceWriter sb, + string sourceVar, + EquatableArray sourcePath, + string targetVar, + EquatableArray targetPath, + string direction, + string earlyReturn) + { + const string HookSource = "__hookSource"; + const string HookTarget = "__hookTarget"; + + _ = sb.BeginIf().Append(GeneratedTypeNames.BindingHooks).Append(".Any").CloseCondition() + .Var(HookSource, sourceVar) + .Var(HookTarget, targetVar) + .BeginIf().Append('!').Append(GeneratedTypeNames.BindingHooks).Append(".ShouldBind(").OpenContinuation() + .Append(HookSource).Line(",") + .Append(HookTarget).Line(","); + + AppendHookPropertyReader(sb, HookSource, sourcePath); + _ = sb.Line(","); + AppendHookPropertyReader(sb, HookTarget, targetPath); + + _ = sb.Line(",") + .Append(GeneratedTypeNames.BindingDirection).Append('.').Append(direction).Append(')') + .Outdent().CloseCondition() + .BeginReturn().Append(earlyReturn).EndStatement() + .CloseBlock() + .CloseBlock(); + } + + /// Emits a lazy reader whose changes retain each segment's owner, expression and value. + /// The writer, at the level of the argument the reader is passed as. + /// The object at the start of the path. + /// The property path, empty when the source is already an observable. + /// Leaves the line open after the reader, for the caller to separate or close the argument list. + internal static void AppendHookPropertyReader(SourceWriter sb, string root, EquatableArray path) + { + if (path.IsEmpty) + { + _ = sb.Append("() => global::System.Array.Empty<") + .Append(GeneratedTypeNames.IObservedChange).Append(">()"); + return; + } + + _ = sb.Line("() =>") + .OpenBlock() + .BeginVar(HookChangesName).Append("new global::System.Collections.Generic.List<") + .Append(GeneratedTypeNames.IObservedChange).Append(">(").Append(path.Length).Line(");"); + + for (var i = 0; i < path.Length; i++) + { + AppendHookPropertySegment(sb, root, path, i); + } + + _ = sb.Return(HookChangesResult) + .CloseBlockInline(); + } + + /// Emits one guarded property read and the change describing it. + /// The writer, inside the reader's body. + /// The first owner in the path. + /// The property path being read. + /// The segment to emit. + internal static void AppendHookPropertySegment( + SourceWriter sb, + string root, + EquatableArray path, + int index) + { + var segment = path[index]; + + _ = sb.Append("var ").Append(HookOwnerPrefix).Append(index).Append(" = "); + _ = index == 0 ? sb.Append(root) : sb.Append(HookValuePrefix).Append(index - 1); + _ = sb.EndStatement() + .BeginIf().Append(HookOwnerPrefix).Append(index).Append(" is null").CloseCondition() + .Return(HookChangesResult) + .CloseBlock() + .Append("var ").Append(HookValuePrefix).Append(index).Append(" = ") + .Append(HookOwnerPrefix).Append(index).Append('.').Append(segment.PropertyName).EndStatement() + .Append(HookChangesName).Append(".Add(new ").Append(GeneratedTypeNames.ObservedChange).Append("(") + .Append(HookOwnerPrefix).Append(index).Append($", (({GeneratedTypeNames.Expression}<{GeneratedTypeNames.Func}<") + .Append(segment.DeclaringTypeFullName).Append(", ").Append(segment.PropertyTypeFullName) + .Append(">>)(__property => __property.").Append(segment.PropertyName).Append(")).Body, ") + .Append(HookValuePrefix).Append(index).Line("));"); + } + + /// Groups call sites that can share one generated overload. + /// The detected call sites. + /// The groups, in the order their signatures were first seen. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature(BindingInvocationInfo[] invocations) => + SignatureGrouping.Group( + invocations, + static (key, inv) => _ = key + .Append(inv.SourceTypeFullName).Append('|') + .Append(inv.TargetTypeFullName).Append('|') + .Append(inv.SourcePropertyTypeFullName).Append('|') + .Append(inv.TargetPropertyTypeFullName).Append('|') + .Append(inv.HasConversion).Append('|') + .Append(inv.HasScheduler).Append('|') + .Append(inv.HasConverterOverride), + static (first, members) => new BindingTypeGroup( + first.SourceTypeFullName, + first.TargetTypeFullName, + first.SourcePropertyTypeFullName, + first.TargetPropertyTypeFullName, + first.HasConversion, + first.HasScheduler, + members) { HasConverterOverride = first.HasConverterOverride }); + + /// Writes the optional converters and scheduler of a two-way overload's parameter list. + /// The writer, inside the parameter list. + /// The binding type group. + /// What this API calls the source-to-target converter. + /// What this API calls the target-to-source converter. + /// Whether the target supports nullable reference types (C# 8+). + internal static void AppendTwoWayExtraParameters( + SourceWriter sb, + BindingTypeGroup group, + string forwardName, + string reverseName, + bool supportsNullable) + { + if (group.HasConversion) + { + AppendFuncParameter(sb, group.SourcePropertyTypeFullName, group.TargetPropertyTypeFullName, forwardName); + AppendFuncParameter(sb, group.TargetPropertyTypeFullName, group.SourcePropertyTypeFullName, reverseName); + } + + if (!group.HasScheduler) + { + return; + } + + AppendSchedulerParameter(sb, supportsNullable); + } + + /// Formats the extra arguments a two-way overload forwards to its generated method. + /// The binding type group. + /// What this API calls the source-to-target converter. + /// What this API calls the target-to-source converter. + /// The argument list fragment, or empty when there is nothing extra to forward. + internal static string FormatTwoWayExtraArgs(BindingTypeGroup group, string forwardName, string reverseName) + { + if (!group.HasConversion && !group.HasScheduler) + { + return string.Empty; + } + + var sb = new PooledStringBuilder(); + + if (group.HasConversion) + { + _ = sb.Append(", ").Append(forwardName).Append(", ").Append(reverseName); + } + + if (group.HasScheduler) + { + _ = sb.Append(", scheduler"); + } + + return sb.ToStringAndReturn(); + } + + /// Formats the extra parameters a two-way generated method declares. + /// The call site, whose own flags decide what the method takes. + /// What this API calls the source-to-target converter. + /// What this API calls the target-to-source converter. + /// The parameter list fragment, or empty when there is nothing extra to declare. + internal static string FormatTwoWayExtraMethodParams( + BindingInvocationInfo inv, + string forwardName, + string reverseName) + { + if (!inv.HasConversion && !inv.HasScheduler) + { + return string.Empty; + } + + var sb = new PooledStringBuilder(); + + if (inv.HasConversion) + { + _ = sb.Append(FuncParameterPrefix) + .Append(inv.SourcePropertyTypeFullName).Append(", ").Append(inv.TargetPropertyTypeFullName) + .Append("> ").Append(forwardName) + .Append(FuncParameterPrefix) + .Append(inv.TargetPropertyTypeFullName).Append(", ").Append(inv.SourcePropertyTypeFullName) + .Append("> ").Append(reverseName); + } + + if (inv.HasScheduler) + { + _ = sb.Append(", ").Append(GeneratedTypeNames.ISequencer).Append(SchedulerDeclarationSuffix); + } + + return sb.ToStringAndReturn(); + } + + /// Writes the optional conversion and scheduler parameters of an overload's parameter list. + /// The writer, inside the parameter list. + /// The binding type group. + /// What this API calls its conversion argument. + /// Whether the target supports nullable reference types (C# 8+). + internal static void AppendExtraParameters( + SourceWriter sb, + BindingTypeGroup group, + string conversionParameterName, + bool supportsNullable) + { + if (group.HasConversion) + { + AppendFuncParameter(sb, group.SourcePropertyTypeFullName, group.TargetPropertyTypeFullName, conversionParameterName); + } + + if (!group.HasScheduler) + { + return; + } + + AppendSchedulerParameter(sb, supportsNullable); + } + + /// Writes the required scheduler parameter, which the stub declares nullable. + /// The writer, inside the parameter list. + /// Whether the target supports nullable reference types (C# 8+). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendSchedulerParameter(SourceWriter sb, bool supportsNullable) => + sb.Append(GeneratedTypeNames.ISequencer).Line(supportsNullable ? "? scheduler," : " scheduler,"); + + /// Writes a conversion delegate parameter that another parameter follows. + /// The writer, inside the parameter list. + /// The type the delegate takes. + /// The type the delegate returns. + /// The parameter's name. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendFuncParameter(SourceWriter sb, string fromType, string toType, string name) => + sb.Append(GeneratedSyntax.FuncTypeOpen).Append(fromType).Append(", ").Append(toType).Append("> ").Append(name).Line(","); + + /// Formats the extra arguments for forwarding to the generated binding method. + /// The binding type group. + /// What this API calls its conversion argument. + /// The argument list fragment, or empty when there is nothing extra to forward. + internal static string FormatExtraArgs(BindingTypeGroup group, string conversionParameterName) + { + if (!group.HasConversion && !group.HasScheduler) + { + return string.Empty; + } + + var sb = new PooledStringBuilder(); + + if (group.HasConversion) + { + _ = sb.Append(", ").Append(conversionParameterName); + } + + if (group.HasScheduler) + { + _ = sb.Append(", scheduler"); + } + + return sb.ToStringAndReturn(); + } + + /// Formats the extra parameters for the generated binding method's own signature. + /// The call site, whose own flags decide what the method takes. + /// What this API calls its conversion argument. + /// The parameter list fragment, or empty when there is nothing extra to declare. + internal static string FormatExtraMethodParams(BindingInvocationInfo inv, string conversionParameterName) + { + if (!inv.HasConversion && !inv.HasScheduler) + { + return string.Empty; + } + + var sb = new PooledStringBuilder(); + + if (inv.HasConversion) + { + _ = sb.Append(FuncParameterPrefix) + .Append(inv.SourcePropertyTypeFullName) + .Append(", ") + .Append(inv.TargetPropertyTypeFullName) + .Append("> ") + .Append(conversionParameterName); + } + + if (inv.HasScheduler) + { + _ = sb.Append(", ").Append(GeneratedTypeNames.ISequencer).Append(SchedulerDeclarationSuffix); + } + + return sb.ToStringAndReturn(); + } + + /// Determines whether the two sides differ in type with no converter supplied to reconcile them. + /// The binding invocation info. + /// when the conversion has to come from the registry. + /// + /// A number bound to a text property is the archetypal binding, and the converter registry exists to serve + /// it. Assigning straight across instead is a type error inside a generated file, where the consumer can + /// neither see nor fix it. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool RequiresRegistryConversion(BindingInvocationInfo inv) => + !inv.HasConversion + && (inv.ForwardConversion is not null || !string.Equals(inv.SourcePropertyTypeFullName, inv.TargetPropertyTypeFullName, StringComparison.Ordinal)); + + /// + /// Writes the subscription that assigns each value to the end of a property path, reporting a faulting write + /// against the expression the call site bound. + /// + /// The writer, part way through the statement the subscription belongs to. + /// The local holding the values to write. + /// The object the path is walked from. + /// The property path the values are written to. + /// The expression a faulting write is reported against. + /// Ends the statement. + internal static void AppendWriteSubscription( + SourceWriter sb, + string observable, + string root, + EquatableArray path, + string reportedExpression) + { + _ = sb.Append(GeneratedTypeNames.BindingErrors).Append(".Subscribe(").Append(observable).Line(", value =>").OpenBlock(); + CodeGeneratorHelpers.AppendGuardedAssignment(sb, root, path, "value"); + _ = sb.CloseBlockInline().Append(", ").AppendQuoted(reportedExpression).Line(");"); + } + + /// Emits the stage that delivers a write on the owning thread of the object it lands on. + /// The string builder to append to. + /// The binding invocation info. + /// The variable holding the values being written. + /// The name to give the routed observable. + /// The worker parameter naming the object the write lands on. + /// The invoker class that object's type carries, or null for none. + /// The variable to subscribe the write to. + internal static string EmitViewThreadStage( + SourceWriter sb, + BindingInvocationInfo inv, + string sourceVar, + string resultVar, + string targetVar, + string? invoker) + { + // A scheduler named at the call site decides where the write lands. The parameter is nullable, and a call + // site that passes null or leaves it out leaves the write to the thread that owns the target. + if (inv.HasScheduler) + { + _ = AppendViewThreadCall(sb.BeginVar(resultVar).Append("scheduler == null ? "), sourceVar, targetVar, invoker) + .Append(" : ").Append(sourceVar).EndStatement(); + + return resultVar; + } + + _ = AppendViewThreadCall(sb.BeginVar(resultVar), sourceVar, targetVar, invoker).EndStatement(); + + return resultVar; + } + + /// Appends the call that routes an observable onto the owning thread of the object it writes to. + /// The string builder to append to. + /// The variable holding the values being written. + /// The variable naming the object the write lands on. + /// The invoker class that object's type carries, or null for none. + /// The string builder. + internal static SourceWriter AppendViewThreadCall(SourceWriter sb, string sourceVar, string targetVar, string? invoker) + { + _ = sb.Append(GeneratedTypeNames.BindingSchedulers).Append(".ObserveOnViewThread(").Append(sourceVar).Append(", ").Append(targetVar); + + return invoker is null + ? sb.Append(')') + : sb.Append(", ").Append(invoker).Append(".Instance)"); + } + + /// Decides what a view-first binding observes: the view model it was handed, or the view's own. + /// The call site being emitted. + /// The view model type's binding info, when it was detected. + /// The view type's binding info, which lists the properties it declares. + /// The root to observe from, the path to walk, and the root type's binding info. + /// + /// A view that exposes the view model is observed through that property, so the binding follows whichever + /// view model the view currently holds. Setting the view model after construction and replacing it later is + /// the ordinary view lifecycle, and a binding that captured the instance it was handed goes on driving the + /// view from the replaced one with nothing raised to say so. + /// + /// The rewritten path is the same shape the chain emitters already handle - one more segment, whose parent + /// may be null - so the switch onto the current view model, and the detach from the previous one, come from + /// the machinery a deep chain already uses. + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ViewModelObservation ResolveViewModelObservation( + BindingInvocationInfo inv, + ClassBindingInfo? sourceClassInfo, + ClassBindingInfo? targetClassInfo) => + ResolveViewModelObservation( + inv.SourceTypeFullName, + inv.TargetTypeFullName, + inv.SourcePropertyPath, + sourceClassInfo, + targetClassInfo); + + /// Decides what a view-first API observes: the view model it was handed, or the view's own. + /// The fully qualified view model type the call site named. + /// The fully qualified view type the call site was made on. + /// The path the call site walks from the view model. + /// The view model type's binding info, when it was detected. + /// The view type's binding info, which lists the properties it declares. + /// The root to observe from, the path to walk, and the root type's binding info. + /// + /// Every view-first API resolves this the same way, so the property binders, the command binder and the + /// interaction binder share one answer rather than each deciding for itself. A registration or a view model + /// swap that reached a bound property but not a bound command would be the kind of divergence nobody could + /// see from the call site. + /// + internal static ViewModelObservation ResolveViewModelObservation( + string viewModelTypeFullName, + string viewTypeFullName, + EquatableArray viewModelPropertyPath, + ClassBindingInfo? viewModelClassInfo, + ClassBindingInfo? viewClassInfo) + { + var declaredType = viewClassInfo is null ? null : FindViewModelPropertyType(viewClassInfo); + if (declaredType is null) + { + return new("viewModel", viewModelPropertyPath, viewModelClassInfo); + } + + // The stage below is typed as the view model the call site named, so a view exposing it as a base or + // an interface has to narrow on the way out. Observables convert the other way, so the read does it. + var readCast = string.Equals(declaredType, viewModelTypeFullName, StringComparison.Ordinal) + ? null + : viewModelTypeFullName; + + // The view declares this property, so the view's mechanism is the one that reports it changing. Taking + // the view model's would observe the wrong type - a dependency-object view holding a notifying view + // model would be watched as though the view notified the way its view model does. + var viewModelSegment = new PropertyPathSegment( + ViewModelPropertyName, + viewModelTypeFullName, + viewTypeFullName, + true, + viewClassInfo, + readCast); + + var rooted = new PropertyPathSegment[viewModelPropertyPath.Length + 1]; + rooted[0] = viewModelSegment; + for (var i = 0; i < viewModelPropertyPath.Length; i++) + { + rooted[i + 1] = viewModelPropertyPath[i]; + } + + return new("view", new(rooted), viewClassInfo); + } + + /// Emits the whole concrete typed overload one binding API dispatches through. + /// The string builder to append to. + /// The binding type group, which fixes the bound types for the whole overload. + /// What distinguishes this API's overload from the other three. + /// Whether dispatch keys on expression text rather than file and line. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + /// + /// The four property-binding APIs emit one overload shape between them: a receiver, the object it binds + /// against, a selector per side, whatever conversion and scheduler arguments the API takes, and then the + /// dispatch table. What actually differs is the naming and the trailing arguments, which + /// carries, so the shape is written here once. + /// + internal static void GenerateDispatchOverload( + SourceWriter sb, + BindingTypeGroup group, + BindingDispatchApi api, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendDispatchSummary( + sb, + api.Name, + group.SourceTypeFullName, + group.TargetTypeFullName, + dispatchesOnExpressionText); + + _ = sb.Append("public static ").Append(api.FormatReturnType(group)).Append(' ').Append(api.Name).OpenParameterList(); + + AppendParameterList(sb, group, api, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + + if (dispatchesOnExpressionText) + { + AppendExpressionDispatchBody(sb, group, api); + } + else + { + AppendCallerInfoDispatchBody(sb, group, api); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Writes the parameters a binding member declares, closing the list. + /// The writer, inside the parameter list. + /// The binding type group. + /// What distinguishes this API's output from the other three. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters. + /// + /// One list serves the overload and the interceptor, because both have to be the stub's signature: the + /// overload only wins resolution against a candidate it is otherwise indistinguishable from, and an + /// interceptor is refused outright unless its signature is the intercepted method's. + /// + internal static void AppendParameterList( + SourceWriter sb, + BindingTypeGroup group, + BindingDispatchApi api, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var first = group.Invocations[0]; + var sourceLeaf = CodeGeneratorHelpers.NullableSelectorLeafType(first.SourcePropertyPath, supportsNullable); + var targetLeaf = CodeGeneratorHelpers.NullableSelectorLeafType(first.TargetPropertyPath, supportsNullable); + + _ = sb.Append("this ").Append(api.ReceiverIsTarget ? group.TargetTypeFullName : group.SourceTypeFullName) + .Append(' ').Append(api.ReceiverParameterName).Line(",") + .Append(api.ReceiverIsTarget + ? CodeGeneratorHelpers.NullableSelectorType(group.SourceTypeFullName, true, supportsNullable) + : group.TargetTypeFullName) + .Append(' ').Append(api.OtherParameterName).Line(",") + .Append(GeneratedSyntax.SelectorTypeOpen).Append(group.SourceTypeFullName).Append(", ").Append(sourceLeaf) + .Append(">> ").Append(api.SourceSelectorName).Line(",") + .Append(GeneratedSyntax.SelectorTypeOpen).Append(group.TargetTypeFullName).Append(", ").Append(targetLeaf) + .Append(">> ").Append(api.TargetSelectorName).Line(","); + + if (group.HasConverterOverride) + { + AppendConverterOverrideParameters(sb, api, supportsNullable); + } + else + { + api.AppendExtraParameters(sb, group, supportsNullable); + + if (dispatchesOnExpressionText || stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, api.SourceSelectorName, api.SourceExpressionParameter, dispatchesOnExpressionText); + CodeGeneratorHelpers.AppendExpressionParameter(sb, api.TargetSelectorName, api.TargetExpressionParameter, dispatchesOnExpressionText); + } + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Writes the converter, hint and scheduler parameters a converter overload declares. + /// The writer, inside the parameter list. + /// What names this API gives its converters. + /// Whether the target supports nullable reference types (C# 8+). + /// + /// The stub declares the hint and the scheduler as optional and no expression parameters at all, so the + /// overload does the same: a call that leaves them out only resolves to this overload if it can leave them + /// out too, and it can only be told apart from the stub by file and line. + /// + internal static void AppendConverterOverrideParameters(SourceWriter sb, BindingDispatchApi api, bool supportsNullable) + { + var annotation = supportsNullable ? "?" : string.Empty; + + _ = sb.Append(GeneratedTypeNames.IBindingTypeConverter).Append(' ').Append(api.OverrideForwardName).Line(","); + + if (api.OverrideReverseName is not null) + { + _ = sb.Append(GeneratedTypeNames.IBindingTypeConverter).Append(' ').Append(api.OverrideReverseName).Line(","); + } + + _ = sb.Append("object").Append(annotation).Append(' ').Append(ConversionHintName).Line(" = null,") + .Append(GeneratedTypeNames.ISequencer).Append(annotation).Line(" scheduler = null,"); + } + + /// Formats the arguments a dispatch forwards to a generated worker beyond the two bound objects. + /// What distinguishes this API's overload from the other three. + /// The binding type group. + /// The argument list fragment, or empty when there is nothing extra to forward. + internal static string FormatDispatchArguments(BindingDispatchApi api, BindingTypeGroup group) => + group.HasConverterOverride + ? FormatConverterOverrideArguments(api) + : api.FormatExtraArguments(group); + + /// Formats the converter, hint and scheduler arguments a converter overload forwards. + /// What names this API gives its converters. + /// The argument list fragment. + internal static string FormatConverterOverrideArguments(BindingDispatchApi api) => + api.OverrideReverseName is null + ? $", {api.OverrideForwardName}, {ConversionHintName}, scheduler" + : $", {api.OverrideForwardName}, {api.OverrideReverseName}, {ConversionHintName}, scheduler"; + + /// Formats the converter, hint and scheduler parameters a generated worker declares. + /// What names this API gives its converters. + /// The parameter list fragment. + internal static string FormatConverterOverrideParameters(BindingDispatchApi api) + { + var sb = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + + _ = sb.Append(", ").Append(GeneratedTypeNames.IBindingTypeConverter).Append(' ').Append(api.OverrideForwardName); + + if (api.OverrideReverseName is not null) + { + _ = sb.Append(", ").Append(GeneratedTypeNames.IBindingTypeConverter).Append(' ').Append(api.OverrideReverseName); + } + + return sb.Append(", object ").Append(ConversionHintName).Append(", ").Append(GeneratedTypeNames.ISequencer).Append(SchedulerDeclarationSuffix) + .ToStringAndReturn(); + } + + /// Emits whichever of the two ways this group's call sites are reached. + /// The string builder to append to. + /// The binding type group. + /// What distinguishes this API's output from the other three. + /// The consumer compilation's language-feature snapshot. + /// + /// The four APIs choose between the same two shapes on the same condition, so the choice is made here + /// rather than repeated at each of their four call sites. + /// + internal static void EmitOverloadOrInterceptors( + SourceWriter sb, + BindingTypeGroup group, + BindingDispatchApi api, + in LanguageFeatures features) + { + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, group, api, in features); + return; + } + + GenerateDispatchOverload( + sb, + group, + api, + features.SupportsCallerArgExpr && !group.HasConverterOverride, + features.SupportsNullable, + features.StubHasExpressionParameters); + } + + /// Emits one interceptor per generated worker, claiming every call site that reaches it. + /// The string builder to append to. + /// The binding type group. + /// What distinguishes this API's output from the other three. + /// The consumer compilation's language-feature snapshot. + /// + /// The signature is the overload's, because the compiler refuses an interceptor whose signature is not the + /// intercepted method's. What the interceptor does with it differs: the call site is already known, so the + /// dispatch parameters go unread and the body forwards straight to the worker. + /// + internal static void GenerateInterceptors( + SourceWriter sb, + BindingTypeGroup group, + BindingDispatchApi api, + in LanguageFeatures features) + { + var extraArguments = FormatDispatchArguments(api, group); + var dispatchesOnExpressionText = features.SupportsCallerArgExpr && !group.HasConverterOverride; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in GroupCallSitesByWorker(group)) + { + foreach (var callSite in entry.Value) + { + InterceptorEmitter.AppendAttribute(sb, callSite.Interceptor); + } + + _ = sb.Append("internal static ").Append(api.FormatReturnType(group)).Append(" __Intercept_") + .Append(api.Name).Append('_').Append(entry.Key).OpenParameterList(); + + AppendParameterList(sb, group, api, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.Indent() + .Append("=> ").Append(api.WorkerMethodPrefix).Append(entry.Key).Append('(') + .Append(api.WorkerArguments).Append(extraArguments).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Emits the head of a generated worker: its signature, the path it binds, and the hook guard. + /// The writer, at the class's member level; left inside the worker's body. + /// What distinguishes this API's worker from the other three. + /// The call site being emitted. + /// The stable method-name suffix for this call site. + /// + /// Every binding worker opens the same way - it takes the two objects and whatever conversion and scheduler + /// arguments its API declares, records the path it binds, and offers the binding to a registered hook. What + /// varies is the naming and the direction, which carries. + /// + internal static void AppendWorkerMethodHeader( + SourceWriter sb, + BindingDispatchApi api, + BindingInvocationInfo inv, + string suffix) + { + _ = sb.Append("private static ").Append(api.FormatWorkerReturnType(inv)).Append(' ').Append(api.WorkerMethodPrefix).Append(suffix) + .Append('(').Append(inv.SourceTypeFullName).Append(' ').Append(api.WorkerSourceParameterName).Append(", ") + .Append(inv.TargetTypeFullName).Append(' ').Append(api.WorkerTargetParameterName) + .Append(inv.HasConverterOverride ? FormatConverterOverrideParameters(api) : api.FormatWorkerParameters(inv)) + .Line(")").OpenBlock() + .BeginComment().Append(api.Name).Append(": "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.SourcePropertyPath) + .Append(api.IsTwoWay ? " <-> " : " -> "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.TargetPropertyPath) + .Append(inv.HasConversion ? " (with conversion)" : string.Empty) + .Append(inv.HasConverterOverride ? " (with converter)" : string.Empty) + .Append(inv.HasScheduler ? " (with scheduler)" : string.Empty).EndLine(); + + EmitBindingHookGuard( + sb, + api.WorkerSourceParameterName, + inv.SourcePropertyPath, + api.WorkerTargetParameterName, + inv.TargetPropertyPath, + api.IsTwoWay ? "TwoWay" : "OneWay", + api.HookRefusalValue); + } + + /// Emits the conversion and scheduler stages a one-directional binding puts its values through. + /// The string builder to append to. + /// What this API calls the locals along the way. + /// The call site being emitted. + /// The local the subscription should read from. + internal static string EmitSingleStreamStages(SourceWriter sb, BindingDispatchApi api, BindingInvocationInfo inv) + { + var forward = ForwardStage(api, inv); + var currentVar = forward.ObservableName; + + if (inv.HasConverterOverride) + { + ConversionEmitter.EmitStage( + sb, + currentVar, + ConvertedForwardName, + inv.SourcePropertyTypeFullName, + inv.TargetPropertyTypeFullName, + inv.ForwardConversion, + new(ConversionHintName, api.OverrideForwardName)); + currentVar = ConvertedForwardName; + } + else if (inv.HasConversion) + { + currentVar = AppendMapStage(sb, forward, currentVar, inv.HasScheduler); + } + else if (inv.SetMethod is null && RequiresRegistryConversion(inv)) + { + ConversionEmitter.EmitStage(sb, currentVar, ConvertedForwardName, inv.SourcePropertyTypeFullName, inv.TargetPropertyTypeFullName, inv.ForwardConversion); + currentVar = ConvertedForwardName; + } + + if (inv.HasScheduler) + { + currentVar = AppendObserveOnStage(sb, forward, currentVar, false); + } + + return currentVar; + } + + /// Emits those same stages for a binding that drives both sides. + /// The string builder to append to. + /// What this API calls the locals along the way. + /// The call site being emitted. + /// The locals each direction's subscription should read from. + /// + /// Each direction assigns across the same type gap in the opposite sense, so the two run the same stages + /// with their type arguments and converter swapped. + /// + internal static BindingObservables EmitDualStreamStages(SourceWriter sb, BindingDispatchApi api, BindingInvocationInfo inv) + { + var forward = ForwardStage(api, inv); + var reverse = ReverseStage(api, inv); + var sourceVar = forward.ObservableName; + var targetVar = reverse.ObservableName; + + if (inv.HasConverterOverride) + { + ConversionEmitter.EmitStage( + sb, + sourceVar, + ConvertedForwardName, + inv.SourcePropertyTypeFullName, + inv.TargetPropertyTypeFullName, + inv.ForwardConversion, + new(ConversionHintName, api.OverrideForwardName)); + ConversionEmitter.EmitStage( + sb, + targetVar, + ConvertedReverseName, + inv.TargetPropertyTypeFullName, + inv.SourcePropertyTypeFullName, + inv.ReverseConversion, + new(ConversionHintName, api.OverrideReverseName ?? api.OverrideForwardName)); + sourceVar = ConvertedForwardName; + targetVar = ConvertedReverseName; + } + else if (inv.HasConversion) + { + sourceVar = AppendMapStage(sb, forward, sourceVar, inv.HasScheduler); + targetVar = AppendMapStage(sb, reverse, targetVar, inv.HasScheduler); + } + else if (RequiresRegistryConversion(inv)) + { + ConversionEmitter.EmitStage(sb, sourceVar, ConvertedForwardName, inv.SourcePropertyTypeFullName, inv.TargetPropertyTypeFullName, inv.ForwardConversion); + ConversionEmitter.EmitStage(sb, targetVar, ConvertedReverseName, inv.TargetPropertyTypeFullName, inv.SourcePropertyTypeFullName, inv.ReverseConversion); + sourceVar = ConvertedForwardName; + targetVar = ConvertedReverseName; + } + + if (inv.HasScheduler) + { + sourceVar = AppendObserveOnStage(sb, forward, sourceVar, true); + targetVar = AppendObserveOnStage(sb, reverse, targetVar, true); + } + + return new(sourceVar, targetVar); + } + + /// Gathers the call sites of a group under the worker each of them reaches. + /// The binding type group whose call sites are being gathered. + /// Each generated worker, against every call site that resolves to it. + /// + /// A call site the compiler declined to describe is left out: nothing can claim it, and it keeps whatever + /// the call already resolved to. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static Dictionary> GroupCallSitesByWorker(BindingTypeGroup group) => + InterceptorEmitter.GroupCallSites(group.Invocations, static x => x.Interceptor, BindingMethodSuffix); + + /// Finds the type a view declares its view model property as. + /// The view type's binding info. + /// The declared property type, or when the view exposes no such property. + /// + /// A view implementing IViewFor<T> declares the property twice - once weakly typed for the + /// non-generic interface, once as the view model itself. Only the typed declaration counts. The weak one + /// says nothing about which view model the view holds, and following it would point the binding at a + /// property the view may never have been given, where the call site handed the view model over directly. + /// + private static string? FindViewModelPropertyType(ClassBindingInfo targetClassInfo) + { + var properties = targetClassInfo.Properties; + + for (var i = 0; i < properties.Length; i++) + { + if (!string.Equals(properties[i].PropertyName, ViewModelPropertyName, StringComparison.Ordinal)) + { + continue; + } + + var declaredType = properties[i].PropertyTypeFullName; + if (!string.Equals(declaredType, WeaklyTypedViewModel, StringComparison.Ordinal)) + { + return declaredType; + } + } + + return null; + } + + /// Appends the body of an overload that matches a call site by the text of its selectors. + /// The string builder to append to. + /// The binding type group. + /// What distinguishes this API's overload from the other three. + private static void AppendExpressionDispatchBody(SourceWriter sb, BindingTypeGroup group, BindingDispatchApi api) + { + var extraArguments = api.FormatExtraArguments(group); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + CodeGeneratorHelpers.AppendExpressionDispatchCondition( + sb, + i, + api.SourceExpressionParameter, + inv.SourceExpressionText, + api.TargetExpressionParameter, + inv.TargetExpressionText); + CodeGeneratorHelpers.AppendDispatchReturn( + sb, + api.WorkerMethodPrefix + BindingMethodSuffix(inv), + api.WorkerArguments + extraArguments); + } + } + + /// Appends the body of an overload that matches a call site by the file and line it sits on. + /// The string builder to append to. + /// The binding type group. + /// What distinguishes this API's overload from the other three. + private static void AppendCallerInfoDispatchBody( + SourceWriter sb, + BindingTypeGroup group, + BindingDispatchApi api) + { + var extraArguments = FormatDispatchArguments(api, group); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + CodeGeneratorHelpers.AppendCallerInfoDispatchBranch( + sb, + i, + inv.CallerLineNumber, + inv.CallerFilePath, + api.WorkerMethodPrefix + BindingMethodSuffix(inv), + api.WorkerArguments + extraArguments); + } + } + + /// Describes the direction that carries the source side's values to the target side. + /// What this API calls the locals along the way. + /// The call site being emitted. + /// The stage description. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static BindingStreamStage ForwardStage(BindingDispatchApi api, BindingInvocationInfo inv) => + new( + api.SourceObservableName, + api.SourceConvertedName, + api.SourceScheduledName, + api.ForwardConverterArgument, + inv.SourcePropertyTypeFullName, + inv.TargetPropertyTypeFullName); + + /// Describes the direction that carries the target side's values back to the source side. + /// What this API calls the locals along the way. + /// The call site being emitted. + /// The stage description. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static BindingStreamStage ReverseStage(BindingDispatchApi api, BindingInvocationInfo inv) => + new( + api.TargetObservableName, + api.TargetConvertedName, + api.TargetScheduledName, + api.ReverseConverterArgument, + inv.TargetPropertyTypeFullName, + inv.SourcePropertyTypeFullName); + + /// Appends the stage that runs one direction's values through the converter the call site named. + /// The string builder to append to. + /// The direction being emitted. + /// The local holding the values to convert. + /// Whether a scheduler stage follows, which decides what the result is called. + /// The local holding the converted values. + private static string AppendMapStage(SourceWriter sb, in BindingStreamStage stage, string sourceVar, bool hasScheduler) + { + var resultVar = hasScheduler ? stage.ConvertedName : stage.ScheduledName; + + _ = sb.BeginVar(resultVar).Append("new ").Append(GeneratedTypeNames.MapSignal).Append('<') + .Append(stage.FromTypeFullName).Append(", ").Append(stage.ToTypeFullName).Append(">(").Append(sourceVar) + .Append(", ").Append(stage.ConverterArgument).Line(");"); + + return resultVar; + } + + /// Appends the stage that delivers one direction's values on the scheduler the call site named. + /// The string builder to append to. + /// The direction being emitted. + /// The local holding the values to route. + /// Whether a value still waiting on the scheduler is replaced by a newer one. + /// The local holding the routed values. + /// + /// A null scheduler adds no stage here; the view-thread stage that follows routes those values. A two-way + /// binding asks for the latest to win: each write raises the other side's change, and a queue that replays + /// every value writes an older one back over a newer one, so the two sides hand each other stale values + /// without end. + /// + private static string AppendObserveOnStage(SourceWriter sb, in BindingStreamStage stage, string sourceVar, bool latestWins) + { + _ = sb.BeginVar(stage.ScheduledName) + .Append($"scheduler == null || scheduler == {GeneratedTypeNames.ImmediateSequencer} ? (") + .Append(GeneratedTypeNames.ObservableOf(stage.ToTypeFullName)).Append(')').Append(sourceVar).Append(" : "); + + _ = latestWins + ? sb.Append(GeneratedTypeNames.BindingSchedulers).Append(".ObserveOnSequencer<").Append(stage.ToTypeFullName).Append(">(") + : sb.Append("new ").Append(GeneratedTypeNames.WitnessOnSignal).Append('<').Append(stage.ToTypeFullName).Append(">("); + + _ = sb.Append(sourceVar).Line(", scheduler);"); + + return stage.ScheduledName; + } + + /// Names the generated worker a binding call site dispatches to. + /// The call site. + /// The stable suffix its worker is named with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string BindingMethodSuffix(BindingInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + $"{inv.SourceExpressionText}|{inv.TargetExpressionText}"); + + /// What a view-first binding observes, and from where. + /// The generated method parameter the observation is rooted on. + /// The property path walked from that root. + /// The root type's binding info, when it was detected. + internal readonly record struct ViewModelObservation( + string RootVariable, + EquatableArray Path, + ClassBindingInfo? RootClassInfo); + + /// One direction of a binding's value flow, and what the generated locals along it are called. + /// The local the direction's observation is held in. + /// The local the converted values are held in, ahead of a scheduler stage. + /// The local the values are held in once the subscription can read them. + /// What the generated worker calls this direction's converter. + /// The type the values arrive as. + /// The type the assignment at the far end needs. + internal readonly record struct BindingStreamStage( + string ObservableName, + string ConvertedName, + string ScheduledName, + string ConverterArgument, + string FromTypeFullName, + string ToTypeFullName); + + /// Everything a per-call-site binding emitter needs about one resolved call site. + /// The call site being emitted. + /// The source type's binding info, when it was detected. + /// The target type's binding info, when it was detected. + /// The stable method-name suffix for this call site. + /// The consumer compilation's language-feature snapshot. + internal readonly record struct BindEmitContext( + BindingInvocationInfo Invocation, + ClassBindingInfo? SourceClassInfo, + ClassBindingInfo? TargetClassInfo, + string Suffix, + LanguageFeatures Features); + + /// What distinguishes one binding API's generated dispatch overload from another's. + /// + /// Held as an object rather than passed as arguments because the set travels together and would otherwise + /// widen the emitter's signature past what any one call site can read. + /// + internal sealed class BindingDispatchApi + { + /// Gets the name of the binding method this overload stands in for. + internal string Name { get; init; } = string.Empty; + + /// Gets what the overload calls the object it extends. + internal string ReceiverParameterName { get; init; } = string.Empty; + + /// Gets what the overload calls the object bound against the receiver. + internal string OtherParameterName { get; init; } = string.Empty; + + /// Gets a value indicating whether the receiver is the side the binding writes to. + internal bool ReceiverIsTarget { get; init; } + + /// Gets what the overload calls the selector for the side it reads from. + internal string SourceSelectorName { get; init; } = string.Empty; + + /// Gets what the overload calls the selector for the side it writes to. + internal string TargetSelectorName { get; init; } = string.Empty; + + /// Gets the prefix the generated worker for each call site is named with. + internal string WorkerMethodPrefix { get; init; } = string.Empty; + + /// Gets what a generated worker calls the object it reads from. + internal string WorkerSourceParameterName { get; init; } = string.Empty; + + /// Gets what a generated worker calls the object it writes to. + internal string WorkerTargetParameterName { get; init; } = string.Empty; + + /// Gets a value indicating whether the binding drives both sides. + internal bool IsTwoWay { get; init; } + + /// Gets what a generated worker returns when a registered hook refuses the binding. + internal string HookRefusalValue { get; init; } = string.Empty; + + /// Gets the local a generated worker holds the source side's observation in. + internal string SourceObservableName { get; init; } = string.Empty; + + /// Gets the local a generated worker holds the target side's observation in. + internal string TargetObservableName { get; init; } = string.Empty; + + /// Gets the local the source side's converted values are held in, ahead of a scheduler stage. + internal string SourceConvertedName { get; init; } = string.Empty; + + /// Gets the local the target side's converted values are held in, ahead of a scheduler stage. + internal string TargetConvertedName { get; init; } = string.Empty; + + /// Gets the local the source side's values are held in once the subscription can read them. + internal string SourceScheduledName { get; init; } = string.Empty; + + /// Gets the local the target side's values are held in once the subscription can read them. + internal string TargetScheduledName { get; init; } = string.Empty; + + /// Gets what a generated worker calls the converter from the source side's type to the target's. + internal string ForwardConverterArgument { get; init; } = string.Empty; + + /// Gets what a generated worker calls the converter from the target side's type to the source's. + internal string ReverseConverterArgument { get; init; } = string.Empty; + + /// Gets what the converter overload calls its converter, or the converter that carries values to the target. + internal string OverrideForwardName { get; init; } = string.Empty; + + /// Gets what the converter overload calls the converter that carries values back, or null for a one-way API. + internal string? OverrideReverseName { get; init; } + + /// Gets the function rendering what the overload returns. + internal Func FormatReturnType { get; init; } = + static _ => GeneratedTypeNames.IDisposable; + + /// Gets the function rendering what a generated worker returns. + internal Func FormatWorkerReturnType { get; init; } = + static _ => GeneratedTypeNames.IDisposable; + + /// Gets the function rendering the conversion and scheduler parameters a generated worker declares. + internal Func FormatWorkerParameters { get; init; } = + static _ => string.Empty; + + /// Gets the action appending the conversion and scheduler parameters this API takes. + internal Action AppendExtraParameters { get; init; } = + static (_, _, _) => { }; + + /// Gets the function rendering the conversion and scheduler arguments the worker takes. + internal Func FormatExtraArguments { get; init; } = + static _ => string.Empty; + + /// Gets the two objects a generated worker binds, in its own parameter order. + internal string WorkerArguments => $"{WorkerSourceParameterName}, {WorkerTargetParameterName}"; + + /// Gets the parameter carrying the text of the selector for the side read from. + internal string SourceExpressionParameter => SourceSelectorName + CodeGeneratorHelpers.ExpressionParameterSuffix; + + /// Gets the parameter carrying the text of the selector for the side written to. + internal string TargetExpressionParameter => TargetSelectorName + CodeGeneratorHelpers.ExpressionParameterSuffix; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingObservables.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingObservables.cs new file mode 100644 index 00000000..0c98ba00 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingObservables.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The generated variable names each side of a binding reads its values from. +/// The variable holding the source side's values. +/// The variable holding the target side's values. +[DebuggerDisplay("BindingObservables: {SourceVar,nq} -> {TargetVar,nq}")] +internal readonly record struct BindingObservables(string SourceVar, string TargetVar); diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingTypeGroup.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingTypeGroup.cs new file mode 100644 index 00000000..53de92db --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindingTypeGroup.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The call sites that share one generated property-binding overload. +/// The type the value is read from. +/// The type the value is written to. +/// The source property's type. +/// The target property's type. +/// Whether the call sites pass a conversion or selector. +/// Whether the call sites pass a scheduler. +/// The call sites in this group. +/// +/// BindOneWay, BindTwoWay, OneWayBind and Bind differ in argument order, parameter +/// names and direction, but they all group their call sites by the same signature: the two types, the two +/// property types, and whether a conversion, a converter object and a scheduler are present. One record serves +/// all four. +/// +internal sealed record BindingTypeGroup( + string SourceTypeFullName, + string TargetTypeFullName, + string SourcePropertyTypeFullName, + string TargetPropertyTypeFullName, + bool HasConversion, + bool HasScheduler, + BindingInvocationInfo[] Invocations) +{ + /// Gets a value indicating whether the call sites pass a converter object in place of a delegate. + /// + /// That overload has its own parameter list - the converter or converters, an optional hint and an optional + /// scheduler - and no expression parameters, so its call sites can only be told apart by file and line. + /// + internal bool HasConverterOverride { get; init; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/CodeGeneratorHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/CodeGeneratorHelpers.cs new file mode 100644 index 00000000..3a41a388 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/CodeGeneratorHelpers.cs @@ -0,0 +1,913 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Globalization; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Shared utility methods for code generation: property path building, string escaping, and class info lookup. +internal static class CodeGeneratorHelpers +{ + /// Buffer capacity to reserve per invocation when building a generated source file. + internal const int PerInvocationBufferCapacity = 1_024; + + /// Buffer capacity for a dispatch key or other short generated fragment. + internal const int FragmentBufferCapacity = 128; + + /// Opens the comparison of a captured expression against the text a call site spelled. + internal const string ExpressionTextComparison = " == \""; + + /// Completes the name of the parameter that captures a selector's expression text. + internal const string ExpressionParameterSuffix = "Expression"; + + /// The caller-file parameter every runtime stub declares before the caller-line one. + private const string CallerFilePathParameter = + $"[{GeneratedTypeNames.CallerFilePath}] string callerFilePath = \"\""; + + /// The caller-line parameter every runtime stub ends with. + private const string CallerLineNumberParameter = + $"[{GeneratedTypeNames.CallerLineNumber}] int callerLineNumber = 0"; + + /// The ordinal comparison a caller-file test matches the path with. + private const string OrdinalIgnoreCaseArgument = $"\", {GeneratedTypeNames.OrdinalIgnoreCase})"; + + /// Buffer capacity to reserve per property-path segment when building an access chain. + private const int PerPathSegmentCapacity = 16; + + /// The name a guarded assignment gives the local holding one walked intermediate. + private const string ParentLocalPrefix = "__parent"; + + /// Extra buffer capacity for the escaping a string literal adds. + private const int EscapeOverheadCapacity = 4; + + /// The initial seed value for the polynomial hash used by . + private const long HashSeed = 17L; + + /// The multiplier applied at each step of the polynomial hash used by . + private const long HashMultiplier = 31L; + + /// The FNV-1a 32-bit offset basis used by . + private const uint FnvOffsetBasis = 2_166_136_261; + + /// The FNV-1a 32-bit prime used by . + private const int FnvPrime = 16_777_619; + + /// + /// Returns the leaf property type of a path for use as a generated Expression<Func<…, T>> + /// selector parameter, annotated nullable (T?) when the target supports nullable reference types and + /// the leaf is a reference type. This lets the generated selector accept lambdas over nullable + /// reference-typed properties without a CS8603 mismatch; value-type leaves are left unchanged (annotating + /// them would insert a Convert node and break expression-path extraction). + /// + /// The property path; its last segment is the selector's leaf. + /// Whether the target supports nullable reference types (C# 8+). + /// The leaf type name, suffixed with ? where appropriate. + internal static string NullableSelectorLeafType(EquatableArray path, bool supportsNullable) + { + var leaf = path[path.Length - 1]; + return NullableSelectorType(leaf.PropertyTypeFullName, leaf.IsReferenceType, supportsNullable); + } + + /// Annotates a selector's produced type the way the stub declares it. + /// The fully qualified produced type. + /// Whether that type is a reference type. + /// Whether the target supports nullable reference types (C# 8+). + /// The type name, suffixed with ? where appropriate. + /// + /// Taken as the type rather than as a path, because a selector the compiler could not read names no path and + /// its produced type comes from the method the call resolved to instead. + /// + internal static string NullableSelectorType(string typeFullName, bool isReferenceType, bool supportsNullable) => + supportsNullable && isReferenceType ? $"{typeFullName}?" : typeFullName; + + /// Builds a dotted property access chain from a root variable and property path segments. + /// The root variable name (e.g., "obj", "source"). + /// The property path segments. + /// A dotted access chain like "obj.Address.City". + internal static string BuildPropertyAccessChain(string root, EquatableArray path) + { + if (path.IsEmpty) + { + return root; + } + + var chain = root; + for (var i = 0; i < path.Length; i++) + { + chain = AppendSegmentRead(chain, path[i]); + } + + return chain; + } + + /// Reads one segment from the expression that produced its parent, narrowing where the path says to. + /// The expression producing the object to read from. + /// The property being read. + /// The expression producing the segment's value. + /// + /// A view exposing its view model as a base or an interface still holds the view model the call site + /// named, so the read narrows to it and the rest of the path continues from there. + /// + internal static string AppendSegmentRead(string parent, PropertyPathSegment segment) + { + var sb = new PooledStringBuilder(parent.Length + PerPathSegmentCapacity); + _ = sb.Append(parent).Append('.').Append(segment.PropertyName); + + if (segment.ReadCastTypeFullName is null) + { + return sb.ToStringAndReturn(); + } + + var read = sb.ToStringAndReturn(); + var cast = new PooledStringBuilder(read.Length + segment.ReadCastTypeFullName.Length + PerPathSegmentCapacity); + + return cast.Append("((").Append(segment.ReadCastTypeFullName).Append(")(object)") + .Append(read).Append(')').ToStringAndReturn(); + } + + /// Builds a property access expression for use in a lambda body. + /// The lambda parameter name. + /// The property path segments. + /// A dotted access chain like "x.Address.City". + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string BuildPropertyAccessLambda(string param, EquatableArray path) => + BuildPropertyAccessChain(param, path); + + /// Builds a property setter chain for assignment (e.g., target.Header.Title). + /// The root variable name. + /// The property path segments. + /// A dotted access chain suitable for the left side of an assignment. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string BuildPropertySetterChain(string root, EquatableArray path) => + BuildPropertyAccessChain(root, path); + + /// Writes the statements that assign to the end of a property path, skipping writes that would not change it. + /// The writer, at the level the statements belong at. + /// The root variable name. + /// The property path segments. + /// The expression producing the value to assign, evaluated more than once. + /// + /// + /// A write that would not change the property is dropped. That is what keeps a two-way binding from + /// oscillating: writing the view raises the view's own change notification, which writes the view model, + /// which writes the view again. Comparing first breaks the loop at the first repetition, and it also + /// spares every binding the notifications a redundant write would raise. The comparison is the target's + /// own equality, so a type that overrides it decides what "unchanged" means. + /// + /// + /// The read side of a chain tolerates a missing parent and still delivers a value, so a binding into a path + /// whose intermediate is null would otherwise assign through it and throw inside the call that established + /// the binding. Dropping the write instead matches what the runtime engine does when a chain getter fails. + /// Emitted as early returns rather than nesting so a long path stays flat. + /// + /// + internal static void AppendGuardedAssignment( + SourceWriter writer, + string root, + EquatableArray path, + string valueExpression) + { + var leaf = path[path.Length - 1]; + var parent = root; + + for (var i = 0; i < path.Length - 1; i++) + { + var local = ParentLocalPrefix + i.ToString(CultureInfo.InvariantCulture); + _ = writer.BeginVar(local).Append(AppendSegmentRead(parent, path[i])).EndStatement() + .BeginIf().Append(local).Append(" == null").CloseCondition() + .Line("return;") + .CloseBlock() + .BlankLine(); + + parent = local; + } + + _ = writer.BeginIf().Append($"{GeneratedTypeNames.EqualityComparer}<") + .Append(leaf.PropertyTypeFullName).Append(">.Default.Equals(") + .Append(parent).Append('.').Append(leaf.PropertyName).Append(", ") + .Append(valueExpression).Append(')').CloseCondition() + .Line("return;") + .CloseBlock() + .BlankLine() + .Append(parent).Append('.').Append(leaf.PropertyName) + .Append(" = ").Append(valueExpression).EndStatement(); + } + + /// Writes a human-readable dotted property path, such as Address.City. + /// The writer, part way through a line. + /// The property path segments. + /// The writer, for chaining. + internal static SourceWriter AppendPropertyPath(SourceWriter writer, EquatableArray path) + { + for (var i = 0; i < path.Length; i++) + { + if (i > 0) + { + _ = writer.Append('.'); + } + + _ = writer.Append(path[i].PropertyName); + } + + return writer; + } + + /// Builds a human-readable dotted property path string for comments. + /// The property path segments. + /// A dotted string like "Address.City". + internal static string BuildPropertyPathString(EquatableArray path) + { + if (path.IsEmpty) + { + return string.Empty; + } + + var sb = new PooledStringBuilder(path.Length * PerPathSegmentCapacity); + for (var i = 0; i < path.Length; i++) + { + if (i > 0) + { + _ = sb.Append('.'); + } + + _ = sb.Append(path[i].PropertyName); + } + + return sb.ToStringAndReturn(); + } + + /// + /// Computes a path suffix for CallerFilePath dispatch matching. + /// Takes the last 2 path segments (e.g., "ViewModels/MyViewModel.cs"). + /// + /// The full caller file path. + /// The last 2 path segments normalized with forward slashes. + internal static string ComputePathSuffix(string filePath) + { + if (string.IsNullOrEmpty(filePath)) + { + return string.Empty; + } + + // Normalize separators (skip allocation on Unix paths that have no backslashes) + if (filePath.IndexOf('\\') >= 0) + { + filePath = filePath.Replace('\\', '/'); + } + + // Take the last 2 segments (e.g., "src/MyFile.cs" or "ViewModels/MyViewModel.cs") + var lastSlash = filePath.LastIndexOf('/'); + if (lastSlash < 0) + { + return filePath; + } + + var secondLastSlash = filePath.LastIndexOf('/', lastSlash - 1); + return secondLastSlash < 0 ? filePath : filePath.Substring(secondLastSlash + 1); + } + + /// Escapes a string for embedding in a C# string literal. + /// The string to escape. + /// The escaped string. + internal static string EscapeString(string value) + { + // Fast path: most lambda expressions contain no backslashes or quotes + var needsEscape = false; + for (var i = 0; i < value.Length; i++) + { + var character = value[i]; + if (character is not ('\\' or '"')) + { + continue; + } + + needsEscape = true; + break; + } + + if (!needsEscape) + { + return value; + } + + var sb = new PooledStringBuilder(value.Length + EscapeOverheadCapacity); + for (var i = 0; i < value.Length; i++) + { + var character = value[i]; + if (character == '\\') + { + _ = sb.Append("\\\\"); + } + else if (character == '"') + { + _ = sb.Append("\\\""); + } + else + { + _ = sb.Append(character); + } + } + + return sb.ToStringAndReturn(); + } + + /// Hands finished source to the compilation, retargeted onto the consumer's runtime flavour. + /// The source production context. + /// The generated file name. + /// The generated source, written against the lean runtime library. + /// The consumer compilation's snapshot, naming the flavour. + /// + /// Every generated file goes out through here so no emitter can forget the retargeting, which would only + /// show up as generated code that does not compile for consumers of the System.Reactive flavour. A file that + /// intercepts call sites also gets its own file-local declaration of the interception attribute here. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AddGeneratedSource( + in SourceProductionContext context, + string hintName, + string source, + in LanguageFeatures features) => + context.AddSource( + hintName, + RuntimeFlavourRewriter.Retarget(features.SupportsInterceptors ? InterceptorEmitter.AppendAttributeDeclaration(source) : source, features)); + + /// + /// Writes one optional expression parameter of a generated overload's parameter list, mirroring the one the + /// runtime stub declares for the same argument. + /// + /// The writer, inside the parameter list. + /// The parameter whose expression text this one captures. + /// The name of the expression parameter itself. + /// + /// Whether to attribute the parameter so the compiler fills it in. Off below C# 10, where the compiler would + /// not populate it: the parameter is then inert and only present so the parameter lists match, which is what + /// lets this concrete overload win against the generic stub instead of tying with it. + /// + internal static void AppendExpressionParameter( + SourceWriter writer, + string sourceParameterName, + string expressionParameterName, + bool withAttribute) + { + if (withAttribute) + { + _ = writer.Append('[') + .Append(GeneratedTypeNames.CallerArgumentExpression) + .Append("(\"") + .Append(sourceParameterName) + .Append("\")] "); + } + + _ = writer.Append("string ").Append(expressionParameterName).Line(" = \"\","); + } + + /// Writes the caller-info parameters every runtime stub ends with, closing the parameter list. + /// The writer, inside the parameter list. + /// + /// Emitted by the interceptors as well as the dispatch overloads. The stub declares them, so both have to: + /// an overload that omits them is merely applicable rather than better, and an interceptor that omits them + /// is refused as a signature that is not the intercepted method's. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendCallerInfoParameters(SourceWriter writer) => + writer.Parameter(CallerFilePathParameter).LastParameter(CallerLineNumberParameter); + + /// Writes the standard auto-generated file header and opens the extension partial class. + /// The writer, at the start of the file. + /// + /// The consumer compilation's language-feature and generation-option snapshot. Controls whether the + /// // <auto-generated/> + #pragma warning disable markers and the #nullable enable + /// directive are emitted. + /// + /// Leaves the writer inside the class, at the level its members are written at. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtensionClassHeader(SourceWriter writer, in LanguageFeatures features) => + OpenGeneratedClass( + writer.FileHeader(features.EmitGeneratedCodeMarkers, features.SupportsNullable) + .BlankLine() + .Using("System") + .BlankLine() + .OpenNamespace(features.GeneratedNamespace), + features); + + /// Opens the partial class every generated file of this assembly adds to. + /// The writer, inside the generated namespace. + /// The consumer compilation's snapshot, which names the class. + /// Leaves the writer inside the class, at the level its members are written at. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void OpenGeneratedClass(SourceWriter writer, in LanguageFeatures features) => + writer.Append("internal static partial class ").Line(features.GeneratedClassName).OpenBlock(); + + /// Closes the extension partial class and its namespace. + /// The writer, at the level the class's members are written at. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtensionClassFooter(SourceWriter writer) => writer.CloseBlock().CloseBlock(); + + /// Opens a consumer type's partial declaration: its namespace, then each enclosing type, outermost first. + /// The writer, at the start of a line outside any namespace. + /// The partial declarations that reach the type. + /// Leaves the writer inside the innermost type, at the level its members are written at. + internal static void OpenPartialDeclaration(SourceWriter writer, PartialTypeDeclaration declaration) + { + if (declaration.Namespace is { } ns) + { + _ = writer.OpenNamespace(ns); + } + + var headers = declaration.TypeHeaders; + for (var i = 0; i < headers.Length; i++) + { + _ = writer.OpenType(headers[i]); + } + } + + /// Closes what opened. + /// The writer, at the innermost type's member level. + /// The partial declarations that reach the type. + internal static void ClosePartialDeclaration(SourceWriter writer, PartialTypeDeclaration declaration) + { + var blocks = declaration.TypeHeaders.Length + (declaration.Namespace is null ? 0 : 1); + for (var i = 0; i < blocks; i++) + { + _ = writer.CloseBlock(); + } + } + + /// + /// Computes a stable method suffix based on source type, caller file path, caller line number, + /// and an additional discriminator (typically expression text). + /// Uses a deterministic hash (FNV-1a) so that method names remain stable across compilations + /// and do not shift when new invocations are added above or below. + /// + /// The fully qualified source type name. + /// The caller file path. + /// The caller line number. + /// Additional discriminator for uniqueness (e.g., expression text). + /// A 16-character uppercase hex string suitable for use as a method name suffix. + internal static string ComputeStableMethodSuffix( + string sourceType, + string callerFilePath, + int callerLineNumber, + string discriminator = "") + { + unchecked + { + var hash = HashSeed; + hash = (hash * HashMultiplier) + StableStringHash(sourceType); + hash = (hash * HashMultiplier) + StableStringHash(callerFilePath); + hash = (hash * HashMultiplier) + callerLineNumber; + hash = (hash * HashMultiplier) + StableStringHash(discriminator); + return (hash & long.MaxValue).ToString("X16"); + } + } + + /// + /// Computes the same stable method suffix as + /// would for a discriminator built by joining with '|', without + /// allocating that joined string first. Callers such as WhenAnyCodeGenerator hash a call site's + /// expression texts once per invocation and would otherwise pay for a throwaway string.Join only to + /// re-walk its characters inside . + /// + /// The fully qualified source type name. + /// The caller file path. + /// The caller line number. + /// The discriminator's parts, hashed as if joined with '|'. + /// A 16-character uppercase hex string suitable for use as a method name suffix. + internal static string ComputeStableMethodSuffix( + string sourceType, + string callerFilePath, + int callerLineNumber, + EquatableArray discriminatorParts) + { + unchecked + { + var hash = HashSeed; + hash = (hash * HashMultiplier) + StableStringHash(sourceType); + hash = (hash * HashMultiplier) + StableStringHash(callerFilePath); + hash = (hash * HashMultiplier) + callerLineNumber; + hash = (hash * HashMultiplier) + StableJoinedStringHash(discriminatorParts, '|'); + return (hash & long.MaxValue).ToString("X16"); + } + } + + /// Finds a by fully qualified type name. + /// All detected class binding infos. + /// The fully qualified name to match. + /// The matching class info, or null if not found. + internal static ClassBindingInfo? FindClassInfo( + ClassBindingInfo[] allClasses, + string fullyQualifiedName) + { + for (var i = 0; i < allClasses.Length; i++) + { + if (allClasses[i].FullyQualifiedName == fullyQualifiedName) + { + return allClasses[i]; + } + } + + return null; + } + + /// Resolves the observed type's binding info, falling back to what the property path carries. + /// All detected class binding infos. + /// The observed type's fully qualified name. + /// The property path, whose first segment names the type that declares it. + /// The observed type's binding info, or null when nothing resolved it. + /// + /// The declaration scan only sees types the consumer writes, so a type from a referenced assembly is absent + /// from it. The path's first segment was built from the property's own symbol and carries the mechanism + /// whatever assembly declares it, which is what keeps a referenced view model observable rather than + /// silently reduced to a single read. + /// + internal static ClassBindingInfo? ResolveObservedTypeInfo( + ClassBindingInfo[] allClasses, + string fullyQualifiedName, + EquatableArray path) => + FindClassInfo(allClasses, fullyQualifiedName) + ?? (!path.IsEmpty ? path[0].DeclaringTypeInfo : null); + + /// Computes a deterministic hash for a string using FNV-1a. Unlike , this is stable across processes and .NET versions. + /// The string to hash. + /// A deterministic 32-bit hash code. + internal static int StableStringHash(string s) + { + if (s is null) + { + return 0; + } + + unchecked + { + var hash = (int)FnvOffsetBasis; + for (var i = 0; i < s.Length; i++) + { + hash = (hash ^ s[i]) * FnvPrime; + } + + return hash; + } + } + + /// + /// Returns the conditional keyword for an if/else-if chain based on the loop index. + /// The first iteration (index 0) emits "if"; subsequent iterations emit "else if". + /// + /// The zero-based loop index. + /// "if" when is 0; otherwise "else if". + internal static string ConditionKeyword(int index) => + index == 0 ? "if" : "else if"; + + /// Drops the call sites that a dispatch keyed on expression text cannot tell apart. + /// The per-call-site model this API detects. + /// The call sites sharing one generated overload. + /// Produces the expression text a call site is dispatched on. + /// One call site per distinct key, or the original array when they were all distinct. + /// + /// Expression-text dispatch keys on the lambdas as written, so call sites that spell them the same way all + /// produce the same condition: the first wins and every later one is unreachable, yet each still drags its + /// own generated method along. Calling an API on the same properties from more than one place is ordinary, + /// so that dead weight scales with the consumer rather than staying a curiosity. + /// Dropping the later ones rather than merging them is sound because a group already fixes the types + /// involved, so a shared key means a shared set of property paths and an identical body. + /// Only expression-text dispatch may do this - file-and-line dispatch reaches each call site separately and + /// needs every one of them, or the collapsed sites fall through to the stub's runtime throw. + /// + internal static T[] CollapseIndistinguishableCallSites(T[] invocations, Func dispatchKey) + { + if (invocations.Length < 2) + { + return invocations; + } + + var seen = new HashSet(StringComparer.Ordinal); + var kept = new List(invocations.Length); + + for (var i = 0; i < invocations.Length; i++) + { + if (seen.Add(dispatchKey(invocations[i]))) + { + kept.Add(invocations[i]); + } + } + + return kept.Count == invocations.Length ? invocations : [.. kept]; + } + + /// + /// Collapses a group to one call site per distinct dispatch key, the same way as + /// , but for callers whose key is + /// already an of strings - typically a call site's expression texts. Comparing + /// the array's cached structural hash and equality avoids building a joined string per call site solely to + /// dedupe it. + /// + /// The invocation type being collapsed. + /// The call sites sharing an overload. + /// Projects a call site to the expression texts its dispatch condition compares. + /// The distinct call sites, in original order, or unchanged when none collapse. + internal static T[] CollapseIndistinguishableCallSites(T[] invocations, Func> dispatchKey) + { + if (invocations.Length < 2) + { + return invocations; + } + + var seen = new HashSet>(); + var kept = new List(invocations.Length); + + for (var i = 0; i < invocations.Length; i++) + { + if (seen.Add(dispatchKey(invocations[i]))) + { + kept.Add(invocations[i]); + } + } + + return kept.Count == invocations.Length ? invocations : [.. kept]; + } + + /// Emits the tail of a generated overload as a call to the stub the overload displaces. + /// The writer, inside the overload's body. + /// The API being generated, which names the stub method to call. + /// The stub's type arguments, or empty to let them be inferred. + /// The arguments to forward, in the stub's parameter order. + /// + /// A generated overload wins overload resolution for every call site of its types, including the ones whose + /// lambdas it could not read - an expression held in a variable, or built at run time. Generating an overload + /// therefore takes the stub out of reach, so the overload has to end where the stub would have: at the runtime + /// engine, for the APIs whose stub offers one. Naming the class makes it a static call rather than an + /// extension call, so it binds to the stub instead of recursing into the overload emitting it. + /// The type arguments are stated wherever a generated parameter carries the leaf type's nullable annotation + /// while the selector alongside it does not, which is enough to defeat inference. + /// + internal static void AppendStubFallbackCall( + SourceWriter writer, + string methodName, + string typeArguments, + string arguments) + { + _ = writer.BeginReturn().Append("global::").Append(Constants.SharedGeneratedNamespace).Append('.') + .Append(Constants.StubExtensionClassName).Append('.').Append(methodName); + + if (typeArguments.Length > 0) + { + _ = writer.Append('<').Append(typeArguments).Append('>'); + } + + _ = writer.Append('(').Append(arguments).Line(");"); + } + + /// Emits a whole dispatch file: the extension class, and one overload per group of call sites. + /// The call-site model this API extracts. + /// The group of call sites that share one overload. + /// The detected call sites for this API. + /// The consumer compilation's language-feature snapshot. + /// Collects the call sites into the groups that share an overload. + /// Emits the overload and the workers for one group, at the class's member level. + /// The generated source, or when there are no call sites. + /// + /// Every API's file has the same outline - header, a run of groups, footer - and differs only in how call + /// sites group and what each group emits. Both are handed in, so the outline is written once. + /// + internal static string? GenerateDispatchFile( + TInvocation[] invocations, + in LanguageFeatures features, + Func> groupByTypeSignature, + Action emitGroup) + { + if (invocations.Length == 0) + { + return null; + } + + var snapshot = features; + var writer = SourceWriter.Rent(invocations.Length * PerInvocationBufferCapacity); + AppendExtensionClassHeader(writer, snapshot); + + var groups = groupByTypeSignature(invocations); + for (var g = 0; g < groups.Count; g++) + { + emitGroup(writer, groups[g], snapshot); + } + + AppendExtensionClassFooter(writer); + + return writer.ToStringAndReturn(); + } + + /// Writes the documentation comment on a generated dispatch overload. + /// The writer, at the class's member level. + /// The binding API the overload stands in for. + /// The fully qualified type the binding reads from. + /// The fully qualified type the binding writes to. + /// Whether the overload keys on expression text rather than file and line. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendDispatchSummary( + SourceWriter writer, + string apiName, + string sourceTypeFullName, + string targetTypeFullName, + bool dispatchesOnExpressionText) => + writer.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for ").Append(apiName) + .Append(" from ").Append(sourceTypeFullName).Append(" to ").Append(targetTypeFullName).Line(".") + .DocLine(dispatchesOnExpressionText + ? "Uses CallerArgumentExpression for dispatch." + : "Uses CallerFilePath + CallerLineNumber for dispatch.") + .CloseSummary(); + + /// Opens the branch that matches a call site by the text of both its selectors. + /// The writer, inside the overload's body. + /// The branch's position, which decides whether it opens with if or else if. + /// The parameter holding the first selector's text. + /// The first selector as the call site spelled it. + /// The parameter holding the second selector's text. + /// The second selector as the call site spelled it. + /// Leaves the writer inside the branch's block. + internal static void AppendExpressionDispatchCondition( + SourceWriter writer, + int index, + string firstParameterName, + string firstExpressionText, + string secondParameterName, + string secondExpressionText) + { + _ = AppendExpressionTextTest(writer.BeginBranch(index), firstParameterName, firstExpressionText) + .OpenContinuation() + .Append("&& "); + _ = AppendExpressionTextTest(writer, secondParameterName, secondExpressionText) + .Outdent() + .CloseCondition(); + } + + /// Writes the test that a captured expression parameter holds the text a call site spelled. + /// The writer, part way through a condition. + /// The parameter holding the captured text. + /// The text the call site spelled. + /// The writer, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter AppendExpressionTextTest(SourceWriter writer, string parameterName, string expressionText) => + writer.Append(parameterName).Append(ExpressionTextComparison).AppendEscaped(expressionText).Append('"'); + + /// Opens the branch that matches a call site by the file and line it sits on. + /// The writer, inside the overload's body. + /// The branch's position, which decides whether it opens with if or else if. + /// The line the call site sits on. + /// The tail of the path the call site's file ends with. + /// Leaves the writer inside the branch's block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendCallerInfoDispatchCondition( + SourceWriter writer, + int index, + int callerLineNumber, + string pathSuffix) => + AppendCallerFilePathTest( + writer.BeginBranch(index).Append("callerLineNumber == ").Append(callerLineNumber) + .OpenContinuation() + .Append("&& "), + pathSuffix) + .Outdent() + .CloseCondition(); + + /// Writes a whole branch that matches a call site by its file and line and hands the binding to its worker. + /// The writer, inside the overload's body. + /// The branch's position in the overload, which decides whether it opens with if or else if. + /// The line the call site sits on. + /// The file the call site sits in. + /// The generated method the branch dispatches to. + /// The argument list to forward, in the worker's own parameter order. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendCallerInfoDispatchBranch( + SourceWriter writer, + int index, + int callerLineNumber, + string callerFilePath, + string workerName, + string arguments) + { + AppendCallerInfoDispatchCondition(writer, index, callerLineNumber, ComputePathSuffix(callerFilePath)); + AppendDispatchReturn(writer, workerName, arguments); + } + + /// Writes the call a matched branch hands the binding to, and closes the branch. + /// The writer, inside the branch's block. + /// The generated method the branch dispatches to. + /// The argument list to forward, in the worker's own parameter order. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendDispatchReturn(SourceWriter writer, string workerName, string arguments) => + writer.BeginReturn().Append(workerName).Append('(').Append(arguments).Line(");") + .CloseBlock(); + + /// Opens the branch that matches a call site by the text of each of its selectors. + /// The writer, inside the overload's body. + /// The branch's position, which decides whether it opens with if or else if. + /// What the overload names its selectors before their index. + /// The selectors as the call site spelled them. + /// How many of them the overload takes. + /// Leaves the writer inside the branch's block. + internal static void AppendSelectorTextCondition( + SourceWriter writer, + int index, + string selectorParameterPrefix, + EquatableArray expressionTexts, + int count) + { + _ = writer.BeginBranch(index); + + for (var i = 0; i < count; i++) + { + if (i > 0) + { + _ = writer.Append(" && "); + } + + _ = writer.Append(selectorParameterPrefix).Append(i + 1).Append(ExpressionParameterSuffix) + .Append(ExpressionTextComparison).AppendEscaped(expressionTexts[i]).Append('"'); + } + + _ = writer.CloseCondition(); + } + + /// Opens the one-line branch that matches a call site by the file and line it sits on. + /// The writer, inside the overload's body. + /// The branch's position, which decides whether it opens with if or else if. + /// The line the call site sits on. + /// The tail of the path the call site's file ends with. + /// Leaves the writer inside the branch's block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendInlineCallerInfoCondition( + SourceWriter writer, + int index, + int callerLineNumber, + string pathSuffix) => + AppendCallerFilePathTest( + writer.BeginBranch(index).Append("callerLineNumber == ").Append(callerLineNumber).Append(" && "), + pathSuffix) + .CloseCondition(); + + /// Writes the test that the caller's file ends with a path suffix, whichever separator the path uses. + /// The writer, part way through a condition. + /// The last two segments of the call site's path, joined with a forward slash. + /// The writer, for chaining. + /// + /// callerFilePath holds the path exactly as the compiler saw it: backslashes on Windows, and after a path map + /// possibly a forward-slash root with backslashes below it. Only the one separator inside the two-segment suffix + /// can differ, so the suffix is tested with each; comparing both spellings allocates nothing at run time, where + /// normalising callerFilePath would allocate on every call. + /// + internal static SourceWriter AppendCallerFilePathTest(SourceWriter writer, string pathSuffix) + { + var escaped = EscapeString(pathSuffix); + var separator = escaped.IndexOf('/'); + return separator < 0 + ? writer.Append("callerFilePath.EndsWith(\"").Append(escaped).Append(OrdinalIgnoreCaseArgument) + : writer.Append("(callerFilePath.EndsWith(\"").Append(escaped).Append(OrdinalIgnoreCaseArgument) + .Append(" || callerFilePath.EndsWith(\"").Append(escaped, 0, separator).Append(@"\\").Append(escaped, separator + 1, escaped.Length - separator - 1) + .Append(OrdinalIgnoreCaseArgument).Append(')'); + } + + /// Writes the throw that closes a binding dispatch overload when no call site matched, and closes the overload. + /// The writer, inside the overload's body. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendBindingDispatchFallthrough(SourceWriter writer) => + writer.Line($"throw new {GeneratedTypeNames.InvalidOperationException}(") + .Indent() + .Line("\"No generated binding found. Ensure the expression is an inline lambda for compile-time optimization.\");") + .Outdent() + .CloseBlock(); + + /// + /// Computes the FNV-1a hash would produce for string.Join(separator, parts), + /// by streaming each part's characters (and the separator between parts) through the same hash accumulator, + /// so no joined string is ever allocated. + /// + /// The strings that would have been joined. + /// The separator that would have sat between them. + /// The same 32-bit hash would return for the joined text. + private static int StableJoinedStringHash(EquatableArray parts, char separator) + { + unchecked + { + var hash = (int)FnvOffsetBasis; + for (var i = 0; i < parts.Length; i++) + { + if (i > 0) + { + hash = (hash ^ separator) * FnvPrime; + } + + var part = parts[i]; + for (var j = 0; j < part.Length; j++) + { + hash = (hash ^ part[j]) * FnvPrime; + } + } + + return hash; + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ConversionEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ConversionEmitter.cs new file mode 100644 index 00000000..b8623e3b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ConversionEmitter.cs @@ -0,0 +1,157 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Emits typed conversions, with legacy adaptation confined to a winning custom converter. +internal static class ConversionEmitter +{ + /// Completes the name of the local holding a stage's selected converter. + private const string ConverterSuffix = "Converter"; + + /// Emits a conversion stage using the default hint and converter selection. + /// The writer, inside the worker's body. + /// The source observable variable. + /// The converted observable variable. + /// The declared input type. + /// The declared output type. + /// The selected generated conversion. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void EmitStage(SourceWriter builder, string source, string result, string from, string to, ConversionInfo? conversion) => + EmitStage(builder, source, result, from, to, conversion, new("null", "null")); + + /// Emits conversion selection once per binding and typed delivery for each value. + /// The writer, inside the worker's body. + /// The source observable variable. + /// The converted observable variable. + /// The declared input type. + /// The declared output type. + /// The selected generated conversion. + /// The caller's hint and converter override. + internal static void EmitStage( + SourceWriter builder, + string source, + string result, + string from, + string to, + ConversionInfo? conversion, + ConversionParameters parameters) + { + if (conversion is not null) + { + AppendSelection(builder, result, from, to, conversion, parameters); + } + + _ = builder.BeginVar(result); + if (conversion?.IsIdentity == true) + { + _ = builder.Append(result).Append(ConverterSuffix).Append($" == null ? ({GeneratedTypeNames.IObservable}<").Append(to).Append(">)").Append(source).Append(" : "); + } + + _ = builder.Append($"{GeneratedTypeNames.LinqExtensions}.Choose<").Append(from).Append(", ").Append(to).Append(">(") + .OpenContinuation() + .Append(source).Line(",") + .Line("__value =>") + .OpenBlock(); + + if (conversion is null) + { + AppendRuntimeBody(builder, from, to, parameters); + } + else + { + AppendNativeBody(builder, result, from, to, conversion, parameters); + } + + _ = builder.CloseBlock(");").Outdent(); + } + + /// Selects an explicit converter or a registration that beats the generated score. + /// The writer, inside the worker's body. + /// The stage variable prefix. + /// The input type. + /// The output type. + /// The generated candidate. + /// The caller's conversion inputs. + private static void AppendSelection(SourceWriter builder, string result, string from, string to, ConversionInfo conversion, ConversionParameters parameters) => + _ = builder.Append($"{GeneratedTypeNames.IBindingTypeConverter} ").Append(result).Append(ConverterSuffix).Append(" = ").Append(parameters.Override).EndStatement() + .BeginIf().Append(result).Append(ConverterSuffix).Append(" == null").CloseCondition() + .Append(result).Append("Converter = global::ReactiveUI.Binding.BindingConverters.Current.TypedConverters.TryGetConverter(typeof(") + .Append(from).Append("), typeof(").Append(to).Line("));") + .BeginIf().Append(result).Append("Converter != null && ").Append(result).Append("Converter.GetAffinityForObjects() <= ") + .Append(conversion.Affinity).CloseCondition() + .Append(result).Line("Converter = null;") + .CloseBlock() + .CloseBlock(); + + /// Emits the runtime route when no compile-time conversion is available. + /// The writer, inside the chooser's body. + /// The input type. + /// The output type. + /// The caller's conversion inputs. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendRuntimeBody(SourceWriter builder, string from, string to, ConversionParameters parameters) => + builder.Append(to).Line(" __converted;") + .BeginVar("__success").Append(GeneratedTypeNames.RuntimeBindingConverter).Append(".TryConvert<") + .Append(from).Append(", ").Append(to).Append(">(__value, ").Append(parameters.Hint).Append(", ").Append(parameters.Override).Line(", out __converted);") + .Return("(__success, __converted)"); + + /// Dispatches a winning custom provider before evaluating the generated conversion. + /// The writer, inside the chooser's body. + /// The stage variable prefix. + /// The input type. + /// The output type. + /// The generated candidate. + /// The caller's conversion inputs. + private static void AppendNativeBody(SourceWriter builder, string result, string from, string to, ConversionInfo conversion, ConversionParameters parameters) + { + _ = builder.Append("object __hint = ").Append(parameters.Hint).EndStatement() + .BeginIf().Append(result).Append(ConverterSuffix).Append(" != null").CloseCondition() + .BeginIf().Append(result).Append($"Converter is {GeneratedTypeNames.IBindingTypeConverter}<") + .Append(from).Append(", ").Append(to).Append("> __typed").CloseCondition() + .Append(to).Line(" __converted;") + .If("__typed.TryConvert(__value, __hint, out __converted)") + .Return("(true, __converted)") + .CloseBlock() + .CloseBlock() + .Else() + .Line("object __boxed;") + .BeginIf().Append(result).Append("Converter.TryConvertTyped(__value, __hint, out __boxed)").CloseCondition() + .BeginReturn().Append("(true, (").Append(to).Line(")__boxed);") + .CloseBlock() + .CloseBlock(); + AppendRejected(builder, to, conversion, parameters); + _ = builder.CloseBlock(); + if (conversion.Preparation.Length != 0) + { + _ = builder.Line(conversion.Preparation); + } + + _ = builder.BeginReturn().Append(conversion.Condition).Append(" ? (true, ").Append(conversion.Expression).Append(") : "); + _ = conversion.AssignmentFallback is null + ? builder.Append("(false, default(").Append(to).Append("))") + : builder.Append("(true, ").Append(conversion.AssignmentFallback).Append(')'); + _ = builder.EndStatement(); + } + + /// Preserves assignability fallback for a registered converter that declines a value. + /// The writer, inside the converter branch. + /// The output type. + /// The generated conversion. + /// The explicit conversion inputs. + private static void AppendRejected(SourceWriter builder, string to, ConversionInfo conversion, ConversionParameters parameters) + { + if (conversion.AssignmentFallback is not null) + { + _ = builder.BeginIf().Append(parameters.Override).Append(" == null").CloseCondition() + .BeginReturn().Append("(true, ").Append(conversion.AssignmentFallback).Line(");") + .CloseBlock(); + } + + _ = builder.BeginReturn().Append("(false, default(").Append(to).Line("));"); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedSyntax.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedSyntax.cs new file mode 100644 index 00000000..5a0ecc31 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedSyntax.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The fixed fragments of generated C# that more than one emitter writes, named once. +/// +/// A fragment carries no indentation: the indents a line from its level when the +/// line's first character is written, so the same fragment reads correctly at any depth. Every member is a +/// const, so referencing it costs nothing at run time. +/// +internal static class GeneratedSyntax +{ + /// Opens a delegate type, ready for its type arguments. + internal const string FuncTypeOpen = $"{GeneratedTypeNames.Func}<"; + + /// Opens a property-selector type, ready for its source and produced types. + internal const string SelectorTypeOpen = $"{GeneratedTypeNames.Expression}<{GeneratedTypeNames.Func}<"; + + /// Closes the cast of an observation callback's argument, ready for the property name. + internal const string ObserverCastClose = ")__o)."; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedTypeNames.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedTypeNames.cs new file mode 100644 index 00000000..8125385e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/GeneratedTypeNames.cs @@ -0,0 +1,286 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The fully qualified type names, and builders for their closed generic forms, written into generated source. +internal static class GeneratedTypeNames +{ + /// System.IObservable (open generic; use ). + internal const string IObservable = "global::System.IObservable"; + + /// The projection sink, which maps each value of a source sequence (open generic). + internal const string MapSignal = "global::ReactiveUI.Primitives.Signals.MapSignal"; + + /// The typed two-source combination operator. + internal const string CombineLatestSignal = "global::ReactiveUI.Primitives.Advanced.CombineLatestSignal"; + + /// The typed distinct-value operator. + internal const string UniqueSignal = "global::ReactiveUI.Primitives.Advanced.UniqueSignal"; + + /// The typed scheduled-delivery operator. + internal const string WitnessOnSignal = "global::ReactiveUI.Primitives.Advanced.WitnessOnSignal"; + + /// The projecting switch sink, which maps each value onto an inner sequence and follows only the latest (open generic). + internal const string SwitchMapSignal = "global::ReactiveUI.Primitives.Advanced.SwitchMapSignal"; + + /// The interleaving sink, which relays every source sequence at once (open generic). + internal const string MergeSignal = "global::ReactiveUI.Primitives.Advanced.MergeSignal"; + + /// System.Func (open generic; use ). + internal const string Func = "global::System.Func"; + + /// System.Linq.Expressions.Expression (open generic; use ). + internal const string Expression = "global::System.Linq.Expressions.Expression"; + + /// The fully qualified name of System.IDisposable. + internal const string IDisposable = "global::System.IDisposable"; + + /// The fully qualified name of System.InvalidOperationException. + internal const string InvalidOperationException = "global::System.InvalidOperationException"; + + /// The fully qualified name of the StringComparison.OrdinalIgnoreCase member. + internal const string OrdinalIgnoreCase = "global::System.StringComparison.OrdinalIgnoreCase"; + + /// The fully qualified name of System.ComponentModel.INotifyPropertyChanging. + internal const string INotifyPropertyChanging = "global::System.ComponentModel.INotifyPropertyChanging"; + + /// The fully qualified name of System.ComponentModel.INotifyPropertyChanged. + internal const string INotifyPropertyChanged = "global::System.ComponentModel.INotifyPropertyChanged"; + + /// The [CallerArgumentExpression] attribute type. + internal const string CallerArgumentExpression = "global::System.Runtime.CompilerServices.CallerArgumentExpression"; + + /// The [CallerFilePath] attribute type. + internal const string CallerFilePath = "global::System.Runtime.CompilerServices.CallerFilePath"; + + /// The [CallerLineNumber] attribute type. + internal const string CallerLineNumber = "global::System.Runtime.CompilerServices.CallerLineNumber"; + + /// ReactiveUI.Binding.IInteraction (open generic). + internal const string IInteraction = "global::ReactiveUI.Binding.IInteraction"; + + /// The fully qualified name of ReactiveUI.Binding.IBindingTypeConverter. + internal const string IBindingTypeConverter = "global::ReactiveUI.Binding.IBindingTypeConverter"; + + /// The fully qualified name of System.Windows.Input.ICommand. + internal const string ICommand = "global::System.Windows.Input.ICommand"; + + /// The subscription that holds nothing, handed back where there is nothing to disconnect. + internal const string EmptyDisposable = "global::ReactiveUI.Primitives.Disposables.EmptyDisposable"; + + /// The type a value is carried as when nothing more specific is known. + internal const string ObjectType = "object"; + + /// The shared EmptyDisposable instance a generated member returns when it has nothing to release. + internal const string EmptyDisposableInstance = $"{EmptyDisposable}.Instance"; + + /// The runtime gate that offers each value to a command and executes the ones it accepts. + internal const string CommandInvoker = "global::ReactiveUI.Binding.CommandBinding.CommandInvoker"; + + /// The ReactiveUI.Binding.Observables namespace prefix (no trailing dot). + internal const string Observables = "global::ReactiveUI.Binding.Observables"; + + /// Opens the observation of a property with no change mechanism, which emits the current value and never completes. + internal const string OpenUnchangingProperty = "new global::ReactiveUI.Binding.Observables.UnchangingPropertyObservable<"; + + /// Opens the observation of a property read when a subscriber arrives, with no change mechanism. + internal const string OpenDeferredProperty = "new global::ReactiveUI.Binding.Observables.DeferredPropertyObservable<"; + + /// Opens the observation of a property through a platform's native change callback. + internal const string OpenCallbackProperty = "new global::ReactiveUI.Binding.Observables.CallbackPropertyObservable<"; + + /// Opens the observation of an Apple property through key-value observing. + internal const string OpenKvoProperty = "new global::ReactiveUI.Binding.Observables.KvoPropertyObservable<"; + + /// The fully qualified AppKit target/action receiver that generated AppKit command bindings install. + internal const string AppKitCommandTarget = "global::ReactiveUI.Binding.CommandBinding.AppKitCommandTarget"; + + /// The metadata name of the key-value observing observable in the lean runtime. + internal const string KvoPropertyObservableMetadataName = "ReactiveUI.Binding.Observables.KvoPropertyObservable`1"; + + /// The metadata name of the key-value observing observable in the System.Reactive runtime. + internal const string ReactiveKvoPropertyObservableMetadataName = "ReactiveUI.Binding.Reactive.Observables.KvoPropertyObservable`1"; + + /// The metadata name of the AppKit command target in the lean runtime. + internal const string AppKitCommandTargetMetadataName = "ReactiveUI.Binding.CommandBinding.AppKitCommandTarget"; + + /// The metadata name of the AppKit command target in the System.Reactive runtime. + internal const string ReactiveAppKitCommandTargetMetadataName = "ReactiveUI.Binding.Reactive.CommandBinding.AppKitCommandTarget"; + + /// The scheduler type the generated scheduler-taking overloads declare. + internal const string ISequencer = "global::ReactiveUI.Primitives.Concurrency.ISequencer"; + + /// The fully qualified name of ReactiveUI.Primitives.LinqExtensions. + internal const string LinqExtensions = "global::ReactiveUI.Primitives.LinqExtensions"; + + /// The fully qualified name of ReactiveUI.Primitives.SubscribeExtensions. + internal const string RxBindingExtensions = "global::ReactiveUI.Primitives.SubscribeExtensions"; + + /// The fully qualified name of ReactiveUI.Binding.BindingHooks. + internal const string BindingHooks = "global::ReactiveUI.Binding.BindingHooks"; + + /// The fully qualified name of ReactiveUI.Binding.ObservedChange (open generic). + internal const string ObservedChange = "global::ReactiveUI.Binding.ObservedChange"; + + /// The fully qualified name of ReactiveUI.Binding.IObservedChange (open generic). + internal const string IObservedChange = "global::ReactiveUI.Binding.IObservedChange"; + + /// The fully qualified name of ReactiveUI.Binding.BindingDirection. + internal const string BindingDirection = "global::ReactiveUI.Binding.BindingDirection"; + + /// The fully qualified name of ReactiveUI.Binding.BindingChange. + internal const string BindingChange = "global::ReactiveUI.Binding.BindingChange"; + + /// The fully qualified name of ReactiveUI.Binding.PropertyValues, the multi-property emission. + internal const string PropertyValues = "global::ReactiveUI.Binding.PropertyValues"; + + /// The fully qualified name of ReactiveUI.Binding.BindingErrors, which every binding write subscribes through. + internal const string BindingErrors = "global::ReactiveUI.Binding.BindingErrors"; + + /// The fully qualified name of ReactiveUI.Binding.Fallback.RuntimeBindingConverter. + internal const string RuntimeBindingConverter = "global::ReactiveUI.Binding.Fallback.RuntimeBindingConverter"; + + /// The fully qualified name of ReactiveUI.Binding.Fallback.ObservationAffinityChecker. + internal const string ObservationAffinityChecker = "global::ReactiveUI.Binding.Fallback.ObservationAffinityChecker"; + + /// The fully qualified name of ReactiveUI.Binding.Observables.PluginPropertyObservable. + internal const string PluginPropertyObservable = "global::ReactiveUI.Binding.Observables.PluginPropertyObservable"; + + /// The fully qualified name of ReactiveUI.Binding.BindingSchedulers. + internal const string BindingSchedulers = "global::ReactiveUI.Binding.BindingSchedulers"; + + /// The fully qualified name of ReactiveUI.Binding.IViewThreadInvoker. + internal const string IViewThreadInvoker = "global::ReactiveUI.Binding.IViewThreadInvoker"; + + /// The fully qualified name of ReactiveUI.Primitives.Disposables.MultipleDisposable. + internal const string MultipleDisposable = "global::ReactiveUI.Primitives.Disposables.MultipleDisposable"; + + /// The fully qualified name of ReactiveUI.Primitives.Disposables.SwapDisposable. + internal const string SwapDisposable = "global::ReactiveUI.Primitives.Disposables.SwapDisposable"; + + /// The fully qualified name of ReactiveUI.Primitives.Disposables.ActionDisposable. + internal const string ActionDisposable = "global::ReactiveUI.Primitives.Disposables.ActionDisposable"; + + /// The fully qualified subscription extension a generated binding subscribes a callback with. + internal const string Subscribe = $"{RxBindingExtensions}.Subscribe"; + + /// The fully qualified name of ReactiveUI.Primitives.Advanced.ImmutableEmptySignal. + internal const string ImmutableEmptySignal = "global::ReactiveUI.Primitives.Advanced.ImmutableEmptySignal"; + + /// The fully qualified name of ReactiveUI.Primitives.Advanced.ImmediateReturnSignal. + internal const string ImmediateReturnSignal = "global::ReactiveUI.Primitives.Advanced.ImmediateReturnSignal"; + + /// The fully qualified name of ReactiveUI.Binding.Observables.PropertyObservable. + internal const string PropertyObservable = "global::ReactiveUI.Binding.Observables.PropertyObservable"; + + /// The fully qualified name of ReactiveUI.Binding.Observables.PropertyChangingObservable. + internal const string PropertyChangingObservable = "global::ReactiveUI.Binding.Observables.PropertyChangingObservable"; + + /// The fully qualified name of System.Collections.Generic.EqualityComparer. + internal const string EqualityComparer = "global::System.Collections.Generic.EqualityComparer"; + + /// The fully qualified name of ReactiveUI.Binding.IInteractionContext. + internal const string IInteractionContext = "global::ReactiveUI.Binding.IInteractionContext"; + + /// The fully qualified name of ReactiveUI.Binding.ReactiveBinding. + internal const string ReactiveBinding = "global::ReactiveUI.Binding.ReactiveBinding"; + + /// The fully qualified name of ReactiveUI.Binding.IReactiveBinding. + internal const string IReactiveBinding = "global::ReactiveUI.Binding.IReactiveBinding"; + + /// The fully qualified name of System.EventHandler. + internal const string EventHandler = "global::System.EventHandler"; + + /// The fully qualified name of System.EventArgs. + internal const string EventArgs = "global::System.EventArgs"; + + /// The fully qualified name of System.Threading.Tasks.Task. + internal const string Task = "global::System.Threading.Tasks.Task"; + + /// The fully qualified name of System.Threading.Volatile. + internal const string Volatile = "global::System.Threading.Volatile"; + + /// The fully qualified name of System.IObserver. + internal const string IObserver = "global::System.IObserver"; + + /// The fully qualified name of System.Action. + internal const string Action = "global::System.Action"; + + /// The fully qualified name of System.ArgumentNullException. + internal const string ArgumentNullException = "global::System.ArgumentNullException"; + + /// The fully qualified name of System.AttributeUsage. + internal const string AttributeUsage = "global::System.AttributeUsage"; + + /// The fully qualified name of System.AttributeTargets. + internal const string AttributeTargets = "global::System.AttributeTargets"; + + /// The fully qualified name of System.Attribute. + internal const string Attribute = "global::System.Attribute"; + + /// The fully qualified name of ReactiveUI.Binding.ObservableAsPropertyHelper. + internal const string ObservableAsPropertyHelper = "global::ReactiveUI.Binding.ObservableAsPropertyHelper"; + + /// The fully qualified name of ReactiveUI.Binding.ObservablePropertyTarget. + internal const string ObservablePropertyTarget = "global::ReactiveUI.Binding.ObservablePropertyTarget"; + + /// The fully qualified immediate sequencer, which a binding treats the same as no scheduler. + internal const string ImmediateSequencer = "global::ReactiveUI.Primitives.Concurrency.Sequencer.Immediate"; + + /// The fully qualified name of ReactiveUI.Binding.IViewFor. + internal const string IViewFor = "global::ReactiveUI.Binding.IViewFor"; + + /// The fully qualified name of ReactiveUI.Binding.DefaultViewLocator. + internal const string DefaultViewLocator = "global::ReactiveUI.Binding.DefaultViewLocator"; + + /// The fully qualified name of System.Windows.Forms.Control. + internal const string WinFormsControl = "global::System.Windows.Forms.Control"; + + /// The fully qualified name of Foundation.NSString. + internal const string NSString = "global::Foundation.NSString"; + + /// The fully qualified name of Foundation.NSObject. + internal const string NSObject = "global::Foundation.NSObject"; + + /// The message a generated overload throws when no binding matches the call site. + internal const string NoBindingFoundMessage = + "No generated binding found. Ensure the expression is an inline lambda for compile-time optimization."; + + /// Builds the closed System.IObservable<T> type name. + /// The fully-qualified value type. + /// The closed generic type name. + internal static string ObservableOf(string typeArg) => $"{IObservable}<{typeArg}>"; + + /// Builds the closed System.Func<TFrom, TTo> type name. + /// The fully-qualified input type. + /// The fully-qualified result type. + /// The closed generic delegate type name. + internal static string FuncOf(string from, string to) => $"{Func}<{from}, {to}>"; + + /// Builds Expression<Func<TDeclaring, TProperty>> for a property selector. + /// The fully-qualified declaring type. + /// The fully-qualified property type. + /// The property-selector expression type name. + internal static string PropertyExpression(string declaringType, string propertyType) => + $"{Expression}<{FuncOf(declaringType, propertyType)}>"; + + /// Renders the read of a segment's property from an object that has to be cast to reach it. + /// The property being read. + /// The type the object is cast to before the read. + /// The expression producing the object. + /// The rendered read. + internal static string ReadProperty( + Models.PropertyPathSegment segment, + string castTypeName, + string objectExpression) + { + var read = $"(({castTypeName}){objectExpression}).{segment.PropertyName}"; + + // A view exposing its view model as a base or an interface narrows the read to the view model the call site named. + return segment.ReadCastTypeFullName is null + ? read + : $"(({segment.ReadCastTypeFullName})(object){read})"; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedCallSiteEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedCallSiteEmitter.cs new file mode 100644 index 00000000..9e34a71f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedCallSiteEmitter.cs @@ -0,0 +1,431 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Writes the generated code for call sites whose types only the caller's own partial class can name, and the generic +/// interceptors that claim them. +/// +/// +/// +/// Each API writes these call sites exactly as it writes any other, into a file of its own. That file's members move +/// into a private class nested in the caller's partial class, where the private types are in scope. Their interception +/// attributes come off, because an interceptor has to sit in the generated namespace, and so does the receiver's +/// this, because an extension method cannot sit in a nested class. +/// +/// +/// The generated namespace then gets one generic interceptor per hosted method. It repeats the called method's +/// signature with its type parameters, so it names no private type. It forwards to an entry point in the caller's class, +/// which casts each argument to the type the call was closed over and calls the moved method. +/// +/// +internal static class HostedCallSiteEmitter +{ + /// The class, nested in the caller's class, that holds the moved members. + internal const string BindingsClassName = "__ReactiveUIHostedBindings"; + + /// The class, nested in the caller's class, that holds the entry points the interceptors call. + internal const string EntriesClassName = "__ReactiveUIHostedEntries"; + + /// The modifier that makes a method an extension method. + private const string ReceiverModifier = "this "; + + /// Writes one API's file, with the call sites only the caller's class can name moved there. + /// The per-call-site model this API extracts. + /// Every call site of the API. + /// The consumer compilation's language-feature snapshot. + /// The API's emitter, which writes a whole file for the call sites it is given. + /// The file's text, or null when the API claimed no call site. + /// + /// A build that writes dispatch overloads has no interceptor to claim a hosted call site with, so those call + /// sites are dropped and RXUIBIND015 fails the build at each of them. + /// + internal static string? Compose( + T[] invocations, + in LanguageFeatures features, + Func emit) + where T : IClaimableCallSite + { + if (!AnyHosted(invocations)) + { + return emit(invocations, features); + } + + var unhosted = new List(invocations.Length); + var hosts = new List(); + var byHost = new Dictionary>(StringComparer.Ordinal); + for (var i = 0; i < invocations.Length; i++) + { + var invocation = invocations[i]; + if (invocation.Host is not { } host) + { + unhosted.Add(invocation); + continue; + } + + var key = GroupKey(host); + if (!byHost.TryGetValue(key, out var group)) + { + group = []; + byHost[key] = group; + hosts.Add(key); + } + + group.Add(invocation); + } + + var main = unhosted.Count == 0 ? null : emit(unhosted.ToArray(), features); + if (!features.SupportsInterceptors) + { + return main; + } + + var writer = SourceWriter.Rent(); + var claimsAny = false; + foreach (var hostName in hosts) + { + claimsAny |= AppendHost(writer, byHost[hostName].ToArray(), features, emit); + } + + var hosted = writer.ToStringAndReturn(); + if (!claimsAny) + { + return main; + } + + return main is null ? AppendFileHeader(features) + hosted : main + hosted; + } + + /// Determines whether any call site is hosted in the caller's class. + /// The per-call-site model this API extracts. + /// The call sites. + /// when at least one is. + private static bool AnyHosted(T[] invocations) + where T : IClaimableCallSite + { + if (invocations.Length == 0) + { + return false; + } + + for (var i = 0; i < invocations.Length; i++) + { + if (invocations[i].Host is not null) + { + return true; + } + } + + return false; + } + + /// Names the group of moved call sites that share one destination: the same class, generic over the same type parameters. + /// The moved call. + /// The group's key. + private static string GroupKey(HostedCall call) + { + var key = new PooledStringBuilder().Append(call.HostTypeFullName ?? string.Empty); + foreach (var parameter in call.WrapperTypeParameters) + { + _ = key.Append('|').Append(parameter); + } + + foreach (var clause in call.WrapperConstraints) + { + _ = key.Append('|').Append(clause); + } + + return key.ToStringAndReturn(); + } + + /// Settles where one group's moved code is declared. + /// A call of the group. + /// The consumer compilation's language-feature snapshot. + /// The destination. + /// + /// A call that only needs to be generic stays in the generated class. Its entry class is generic over the caller's + /// type parameters, and named for them, so two groups with different ones never share a declaration. + /// + private static Destination DestinationOf(HostedCall call, in LanguageFeatures features) + { + var host = call.HostTypeFullName ?? $"global::{features.GeneratedNamespace}.{features.GeneratedClassName}"; + var declaration = call.Declaration + ?? new PartialTypeDeclaration(features.GeneratedNamespace, new([$"static partial class {features.GeneratedClassName}"])); + if (!call.IsGeneric) + { + return new(declaration, EntriesClassName, $"{host}.{EntriesClassName}"); + } + + var entries = $"{EntriesClassName}_{CodeGeneratorHelpers.ComputeStableMethodSuffix(host, string.Empty, 0, GroupKey(call))}"; + return new( + declaration, + $"{entries}<{string.Join(", ", call.WrapperTypeParameters)}>", + $"{host}.{entries}<{string.Join(", ", call.WrapperTypeArguments)}>"); + } + + /// Writes the start of a file whose only members are hosted. + /// The consumer compilation's language-feature snapshot. + /// The file header and imports. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string AppendFileHeader(in LanguageFeatures features) => + SourceWriter.Rent() + .FileHeader(features.EmitGeneratedCodeMarkers, features.SupportsNullable) + .BlankLine() + .Using("System") + .ToStringAndReturn(); + + /// Writes one caller class's hosted members, their entry points, and the interceptors that reach them. + /// The per-call-site model this API extracts. + /// The writer, outside any namespace. + /// The call sites hosted in the class. + /// The consumer compilation's language-feature snapshot. + /// The API's emitter. + /// when at least one call site was claimed. + private static bool AppendHost( + SourceWriter writer, + T[] invocations, + in LanguageFeatures features, + Func emit) + where T : IClaimableCallSite + { + var source = emit(invocations, features); + if (source is null || !HostedSourceReader.TryRead(source, features.GeneratedClassName, out var read)) + { + return false; + } + + var call = invocations[0].Host!; + var destination = DestinationOf(call, features); + var methods = GroupByMethod(invocations, read.Claims, destination.EntriesReference); + if (methods.Count == 0) + { + return false; + } + + AppendInterceptors(writer, methods, destination.EntriesReference, features); + + _ = writer.BlankLine(); + CodeGeneratorHelpers.OpenPartialDeclaration(writer, destination.Declaration); + _ = writer.Line($"internal static partial class {destination.EntriesDeclaration}"); + if (!call.WrapperConstraints.IsEmpty) + { + _ = writer.Indent(); + foreach (var clause in call.WrapperConstraints) + { + _ = writer.Line(clause); + } + + _ = writer.Outdent(); + } + + _ = writer.OpenBlock(); + foreach (var method in methods) + { + AppendEntry(writer, method); + } + + _ = writer.OpenType($"private static partial class {BindingsClassName}"); + foreach (var line in read.Members) + { + _ = line.Length == 0 ? writer.BlankLine() : writer.Line(line); + } + + _ = writer.CloseBlock().CloseBlock(); + CodeGeneratorHelpers.ClosePartialDeclaration(writer, destination.Declaration); + + if (read.Trailing.Length > 0) + { + _ = writer.BlankLine().Lines(read.Trailing); + } + + return true; + } + + /// Gathers the claimed call sites under the moved method each one reaches. + /// The per-call-site model this API extracts. + /// The call sites hosted in one class. + /// The method each claimed call site's data names, as read from the API's output. + /// The class the entry points are declared in, as the interceptors name it. + /// One entry per moved method and signature, in the order the API wrote them. + private static List GroupByMethod( + T[] invocations, + Dictionary claims, + string entriesReference) + where T : IClaimableCallSite + { + var methods = new List(); + var byKey = new Dictionary(StringComparer.Ordinal); + for (var i = 0; i < invocations.Length; i++) + { + var invocation = invocations[i]; + var location = invocation.Interceptor; + if (!location.IsAvailable || !claims.TryGetValue(location.Data!, out var methodName)) + { + continue; + } + + var call = invocation.Host!; + var suffix = CodeGeneratorHelpers.ComputeStableMethodSuffix(entriesReference, methodName, 0, SignatureKey(call)); + if (!byKey.TryGetValue(suffix, out var method)) + { + method = new(methodName, suffix, call, []); + byKey[suffix] = method; + methods.Add(method); + } + + method.Locations.Add(location); + } + + return methods; + } + + /// Writes a text that tells two signatures of the same moved method apart. + /// The hosted call. + /// The key. + private static string SignatureKey(HostedCall call) + { + var key = new PooledStringBuilder().Append(call.DeclaredReturnType); + foreach (var parameter in call.Parameters) + { + _ = key.Append('|').Append(parameter.ClosedType); + } + + return key.ToStringAndReturn(); + } + + /// Writes the generic interceptors that claim one class's hosted call sites. + /// The writer, outside any namespace. + /// The moved methods and the call sites that reach each. + /// The class the entry points are declared in, as the interceptors name it. + /// The consumer compilation's language-feature snapshot. + private static void AppendInterceptors( + SourceWriter writer, + List methods, + string entriesReference, + in LanguageFeatures features) + { + _ = writer.BlankLine().OpenNamespace(features.GeneratedNamespace); + CodeGeneratorHelpers.OpenGeneratedClass(writer, features); + + foreach (var method in methods) + { + foreach (var location in method.Locations) + { + InterceptorEmitter.AppendAttribute(writer, location); + } + + var call = method.Call; + _ = writer.Append("internal static ").Append(call.DeclaredReturnType).Append(" __InterceptHosted_").Append(method.Suffix); + AppendSignature(writer, call, ReceiverModifier); + _ = writer.Indent() + .Append("=> ").Append(entriesReference).Append(".__Entry_").Append(method.Suffix); + AppendTypeArguments(writer, call); + _ = writer.Append('('); + for (var i = 0; i < call.Parameters.Length; i++) + { + _ = (i == 0 ? writer : writer.Append(", ")).Append(call.Parameters[i].Name); + } + + _ = writer.Line(");").Outdent().BlankLine(); + } + + CodeGeneratorHelpers.AppendExtensionClassFooter(writer); + } + + /// Writes the entry point an interceptor calls, which casts to the closed types and calls the moved method. + /// The writer, inside the entries class. + /// The moved method. + private static void AppendEntry(SourceWriter writer, HostedMethod method) + { + var call = method.Call; + _ = writer.Append("internal static ").Append(call.DeclaredReturnType).Append(" __Entry_").Append(method.Suffix); + AppendSignature(writer, call, string.Empty); + _ = writer.Indent().Append("=> "); + if (call.ReturnNeedsCast) + { + _ = writer.Append('(').Append(call.DeclaredReturnType).Append(")(object)"); + } + + _ = writer.Append(BindingsClassName).Append('.').Append(method.MethodName).Append('('); + for (var i = 0; i < call.Parameters.Length; i++) + { + var parameter = call.Parameters[i]; + if (i > 0) + { + _ = writer.Append(", "); + } + + _ = parameter.NeedsCast + ? writer.Append('(').Append(parameter.ClosedType).Append(")(object)").Append(parameter.Name) + : writer.Append(parameter.Name); + } + + _ = writer.Line(");").Outdent().BlankLine(); + } + + /// Writes a hosted method's type parameters, parameters and constraints, as the called method declares them. + /// The writer, just after the method's name. + /// The hosted call. + /// What the first parameter starts with: this for an interceptor, nothing otherwise. + private static void AppendSignature(SourceWriter writer, HostedCall call, string receiverModifier) + { + AppendTypeArguments(writer, call); + _ = writer.OpenParameterList(); + for (var i = 0; i < call.Parameters.Length; i++) + { + var parameter = call.Parameters[i]; + _ = writer.Append(i == 0 ? receiverModifier : string.Empty).Append(parameter.DeclaredType).Append(' ').Append(parameter.Name); + _ = i == call.Parameters.Length - 1 ? writer.Line(")").Outdent() : writer.Line(","); + } + + if (call.Constraints.IsEmpty) + { + return; + } + + _ = writer.Indent(); + foreach (var clause in call.Constraints) + { + _ = writer.Line(clause); + } + + _ = writer.Outdent(); + } + + /// Writes the called method's type parameters, in angle brackets. + /// The writer. + /// The hosted call. + private static void AppendTypeArguments(SourceWriter writer, HostedCall call) + { + if (call.TypeParameters.IsEmpty) + { + return; + } + + _ = writer.Append('<'); + for (var i = 0; i < call.TypeParameters.Length; i++) + { + _ = (i == 0 ? writer : writer.Append(", ")).Append(call.TypeParameters[i]); + } + + _ = writer.Append('>'); + } + + /// Where one group of moved call sites is declared. + /// The partial declarations that reach that class. + /// The entry class's name as it is declared, with its type parameters. + /// The entry class as the interceptors name it, with the type arguments they hand on. + private sealed record Destination(PartialTypeDeclaration Declaration, string EntriesDeclaration, string EntriesReference); + + /// One moved method, one signature of it, and every call site that reaches it. + /// The name the API gave the method. + /// The name suffix of the interceptor and the entry point. + /// The signature of the method the call sites call. + /// The call sites. + private sealed record HostedMethod(string MethodName, string Suffix, HostedCall Call, List Locations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSource.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSource.cs new file mode 100644 index 00000000..b5b0e822 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSource.cs @@ -0,0 +1,11 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The members of an API's file, read back so they can move into the caller's class. +/// The member lines, without the indentation of the class they were written in. +/// The interceptor each claimed call site's data names. +/// Text the file declares after the generated namespace, which stays at namespace level. +internal readonly record struct HostedSource(List Members, Dictionary Claims, string Trailing); diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSourceReader.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSourceReader.cs new file mode 100644 index 00000000..5125e91b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/HostedSourceReader.cs @@ -0,0 +1,204 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Reads an API's generated file back, so its members can move into the caller's partial class. +/// +/// Every API writes its file through the same header and footer, one member per line and four spaces per level. The +/// class's body is therefore the lines between its opening brace and the closing brace at its own indentation. While +/// reading, each interception attribute is removed and remembered against the interceptor that follows it, and that +/// interceptor loses the this on its receiver, because an extension method cannot sit in a nested class. +/// +internal static class HostedSourceReader +{ + /// One level of indentation. + private const string Level = " "; + + /// Reads an API's file. + /// The file. + /// The name of the class the API writes its members in. + /// The members, claims and trailing text. + /// when the file has the shape every API writes. + internal static bool TryRead(string source, string className, out HostedSource read) + { + read = default; + var lines = source.Split('\n'); + if (!TryFindClassBody(lines, className, out var open, out var close, out var namespaceClose)) + { + return false; + } + + var memberIndent = $"{Indentation(lines[open])}{Level}"; + var claims = new ClaimReader(); + var members = new List(close - open); + for (var i = open + 1; i < close; i++) + { + var line = lines[i].StartsWith(memberIndent, StringComparison.Ordinal) + ? lines[i].Substring(memberIndent.Length) + : lines[i].TrimStart(); + if (claims.TryKeep(line, out var kept)) + { + members.Add(kept); + } + } + + read = new(members, claims.Claims, Trailing(lines, namespaceClose)); + return true; + } + + /// Finds the generated class's braces and the namespace's closing brace. + /// The file's lines. + /// The name of the class the API writes its members in. + /// The line of the class's opening brace. + /// The line of the class's closing brace. + /// The line of the namespace's closing brace. + /// when all three were found. + private static bool TryFindClassBody(string[] lines, string className, out int open, out int close, out int namespaceClose) + { + var header = $"internal static partial class {className}"; + open = -1; + close = -1; + namespaceClose = -1; + for (var i = 0; i + 1 < lines.Length && open < 0; i++) + { + if (lines[i].Trim() == header && lines[i + 1].Trim() == "{") + { + open = i + 1; + } + } + + if (open < 0) + { + return false; + } + + close = Array.IndexOf(lines, $"{Indentation(lines[open])}}}", open + 1); + namespaceClose = close < 0 ? -1 : Array.IndexOf(lines, "}", close + 1); + return namespaceClose >= 0; + } + + /// Reads the whitespace a line starts with. + /// The line. + /// The leading whitespace. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string Indentation(string line) => line.Substring(0, line.Length - line.TrimStart().Length); + + /// Joins whatever the file declares after the generated namespace. + /// The file's lines. + /// The line of the namespace's closing brace. + /// The trailing text, or an empty string. + private static string Trailing(string[] lines, int namespaceClose) => + namespaceClose + 1 < lines.Length + ? string.Join("\n", lines, namespaceClose + 1, lines.Length - namespaceClose - 1).Trim() + : string.Empty; + + /// Removes interception attributes and remembers which interceptor each one claimed a call site for. + private sealed class ClaimReader + { + /// The start of an interception attribute, as the API emitters write it. + private const string AttributeStart = "[global::System.Runtime.CompilerServices.InterceptsLocation("; + + /// The prefix every interceptor an API writes carries. + private const string InterceptorPrefix = "__Intercept_"; + + /// The modifier that makes a method an extension method. + private const string ReceiverModifier = "this "; + + /// The receiver modifier as it reads when the parameter list starts on the method's line. + private const string InlineReceiverModifier = "(this "; + + /// The data of the attributes read since the last interceptor. + private readonly List _pending = []; + + /// Whether the last interceptor's receiver still carries this. + private bool _stripping; + + /// Gets the interceptor each call site's data names. + internal Dictionary Claims { get; } = [with(StringComparer.Ordinal)]; + + /// Reads one member line. + /// The line, without the class's indentation. + /// The line to keep, rewritten when it is part of an interceptor's declaration. + /// when the line is an interception attribute and is dropped. + internal bool TryKeep(string line, out string kept) + { + kept = line; + var trimmed = line.TrimStart(); + if (trimmed.StartsWith(AttributeStart, StringComparison.Ordinal)) + { + _pending.Add(ReadData(trimmed)); + return false; + } + + var nameStart = _pending.Count > 0 ? trimmed.IndexOf(InterceptorPrefix, StringComparison.Ordinal) : -1; + if (nameStart >= 0) + { + var name = ReadName(trimmed, nameStart); + foreach (var data in _pending) + { + Claims[data] = name; + } + + _pending.Clear(); + _stripping = true; + } + + if (_stripping) + { + kept = StripReceiver(line); + } + + return true; + } + + /// Reads the data an interception attribute names. + /// The attribute line. + /// The data, the text between its quotes. + private static string ReadData(string attribute) + { + var start = attribute.IndexOf('"') + 1; + return attribute.Substring(start, attribute.LastIndexOf('"') - start); + } + + /// Reads an interceptor's name from its declaration line. + /// The declaration line. + /// Where the name starts. + /// The name. + private static string ReadName(string declaration, int start) + { + var end = start; + while (end < declaration.Length && (char.IsLetterOrDigit(declaration[end]) || declaration[end] == '_')) + { + end++; + } + + return declaration.Substring(start, end - start); + } + + /// Removes the this from the interceptor's receiver, once. + /// A line of the interceptor's declaration. + /// The line, without the modifier. + private string StripReceiver(string line) + { + var trimmed = line.TrimStart(); + if (trimmed.StartsWith(ReceiverModifier, StringComparison.Ordinal)) + { + _stripping = false; + return line.Remove(line.Length - trimmed.Length, ReceiverModifier.Length); + } + + var inline = line.IndexOf(InlineReceiverModifier, StringComparison.Ordinal); + if (inline < 0) + { + return line; + } + + _stripping = false; + return line.Remove(inline + 1, ReceiverModifier.Length); + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InterceptorEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InterceptorEmitter.cs new file mode 100644 index 00000000..d24505d6 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InterceptorEmitter.cs @@ -0,0 +1,277 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Writes the one thing every intercepted call site needs, whichever API it belongs to: the attribute naming +/// the call, and the declaration of that attribute. +/// +/// +/// An interceptor redirects a call the compiler has already bound, so nothing about it depends on which API is +/// being generated - only on where the call is and what it should run instead. That is why every generator +/// shares this rather than growing its own copy, and why the tier needs none of the namespace placement the +/// dispatch overloads do: lookup never sees an interceptor. +/// +internal static class InterceptorEmitter +{ + /// The attribute a generated method carries to claim a call site. + private const string AttributeName = "global::System.Runtime.CompilerServices.InterceptsLocation"; + + /// Room for the attribute declaration, which is a fixed block of text. + private const int DeclarationCapacity = 640; + + /// Writes the parameter list one API's members declare, closing it. + /// The writer, inside the parameter list. + /// The invocation whose types the parameters are written from. + /// The consumer compilation's language-feature snapshot. + internal delegate void ParameterListWriter(SourceWriter builder, InvocationInfo first, in LanguageFeatures features); + + /// Writes the attribute for every call site one generated method claims, then opens that method's parameter list. + /// The per-call-site model this API extracts. + /// The writer, at the class's member level; left inside the parameter list. + /// The call sites the method claims. + /// Reads where a call site is. + /// The method's declaration up to its name suffix, e.g. its modifiers, return type and name prefix. + /// The suffix naming the body the call sites reach. + internal static void AppendClaimingMethodOpen( + SourceWriter builder, + List callSites, + Func locationOf, + string declarationOpen, + string suffix) + { + for (var i = 0; i < callSites.Count; i++) + { + AppendAttribute(builder, locationOf(callSites[i])); + } + + _ = builder.Append(declarationOpen).Append(suffix).OpenParameterList(); + } + + /// Writes the attribute that binds a generated method to one call site. + /// The writer, at the class's member level. + /// The call site the compiler described. + internal static void AppendAttribute(SourceWriter builder, in InterceptorLocation location) => + _ = builder.Append('[') + .Append(AttributeName) + .Append('(') + .Append(location.Version) + .Append(", \"") + .Append(location.Data) + .Line("\")]"); + + /// Appends the interception attribute's declaration to a generated file that applies it. + /// The generated file. + /// The file, with a file-local attribute declaration when it intercepts a call site. + /// + /// The attribute is not part of any framework, so the compilation that intercepts has to declare it. Each file + /// that applies it declares its own file-local copy: a shared internal declaration would be one type visible to + /// every assembly granted InternalsVisibleTo, colliding with that assembly's own. + /// + internal static string AppendAttributeDeclaration(string source) => + source.IndexOf($"{AttributeName}(", StringComparison.Ordinal) < 0 + ? source + : $"{source}\n{BuildAttributeDeclaration()}"; + + /// Builds the file-local declaration of the interception attribute. + /// The source declaring the attribute. + /// Written to the rules the oldest intercepting consumer parses: no file-scoped namespace. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string BuildAttributeDeclaration() => + SourceWriter.Rent(DeclarationCapacity) + .OpenNamespace("System.Runtime.CompilerServices") + .Summary("Binds a generated method to the call site it replaces.") + .Attribute($"{GeneratedTypeNames.AttributeUsage}({GeneratedTypeNames.AttributeTargets}.Method, AllowMultiple = true)") + .OpenType($"file sealed class InterceptsLocationAttribute : {GeneratedTypeNames.Attribute}") + .Summary("Initializes a new instance of the class.") + .DocLine("The encoding of .") + .DocLine("The call site being replaced.") + .Line("public InterceptsLocationAttribute(int version, string data)") + .OpenBlock() + .Line("_ = version;") + .Line("_ = data;") + .CloseBlock() + .CloseBlock() + .CloseBlock() + .ToStringAndReturn(); + + /// Emits one interceptor per generated body, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The type group whose call sites are being claimed. + /// The method name prefix the generated bodies carry. + /// Names the body a call site reaches. + /// The consumer compilation's language-feature snapshot, handed to the writer. + /// Writes the whole parameter list, closing it. + /// + /// The grouping and the attribute are the whole of what every API shares here, so they live in one place + /// and each API supplies only the signature it is being called with. Call sites that reach one body are + /// claimed by one method carrying an attribute each, which is what the attribute allowing repeats is for. + /// + /// The feature snapshot travels as an argument rather than being closed over, so the writer each API hands + /// in captures nothing and the compiler caches one delegate for the whole compilation. + /// + /// + internal static void GenerateInterceptors( + SourceWriter builder, + ObservationCodeGenerator.TypeGroup group, + string methodPrefix, + Func suffixOf, + in LanguageFeatures features, + ParameterListWriter appendParameterList) + { + foreach (var entry in GroupCallSitesByBody(group, suffixOf)) + { + var first = entry.Value[0]; + + foreach (var callSite in entry.Value) + { + AppendAttribute(builder, callSite.Interceptor); + } + + _ = builder.Append($"internal static {GeneratedTypeNames.IObservable}<").Append(first.ReturnTypeFullName) + .Append("> __Intercept_").Append(methodPrefix).Append('_').Append(entry.Key); + AppendTypeParameterList(builder, first.GenericResult); + _ = builder.OpenParameterList(); + + appendParameterList(builder, first, in features); + + _ = builder.Indent() + .Append("=> __").Append(methodPrefix).Append('_').Append(entry.Key) + .Append("(objectToMonitor").Append(first.HasSelector ? ", selector" : string.Empty).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Writes the type parameters of an interceptor that is generic over its call's selector result. + /// The writer, just after the interceptor's name. + /// Where the result sits among the called method's type arguments. + /// + /// The compiler substitutes the call's type arguments into a generic interceptor before it compares the two + /// signatures, so the interceptor takes as many type parameters as the called method. Only the result's is used: + /// every other parameter is written with the type the call was closed over, which is the same after substitution. + /// + internal static void AppendTypeParameterList(SourceWriter builder, in GenericResult genericResult) + { + if (!genericResult.IsGeneric) + { + return; + } + + _ = builder.Append('<'); + for (var i = 0; i < genericResult.Arity; i++) + { + if (i > 0) + { + _ = builder.Append(", "); + } + + _ = i == genericResult.Ordinal + ? builder.Append(GenericResult.TypeParameterName) + : builder.Append("__T").Append(i); + } + + _ = builder.Append('>'); + } + + /// Writes the type parameter of an observation method that is generic over its selector result. + /// The writer, just after the method's name. + /// Where the result sits, or a default value when every type is named. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendResultTypeParameter(SourceWriter builder, in GenericResult genericResult) + { + if (genericResult.IsGeneric) + { + _ = builder.Append('<').Append(GenericResult.TypeParameterName).Append('>'); + } + } + + /// Drops the call sites only an interceptor can claim, when the build writes dispatch overloads instead. + /// The per-call-site model this API extracts. + /// The call sites of one API. + /// Reads where a call site's result sits when generated code cannot name it. + /// The consumer compilation's language-feature snapshot. + /// The call sites the build can claim. + /// + /// A dispatch overload has to name its result type, so a call whose result generated code cannot name gets no + /// overload. It reaches the runtime stub instead, and RXUIBIND015 fails the build at the call. + /// + internal static T[] ClaimableBy( + T[] invocations, + Func genericResultOf, + in LanguageFeatures features) + { + if (features.SupportsInterceptors || invocations.Length == 0) + { + return invocations; + } + + var builder = new List(invocations.Length); + for (var i = 0; i < invocations.Length; i++) + { + if (!genericResultOf(invocations[i]).IsGeneric) + { + builder.Add(invocations[i]); + } + } + + return builder.Count == invocations.Length ? invocations : builder.ToArray(); + } + + /// Gathers call sites under the generated method each of them reaches. + /// The per-call-site model this API extracts. + /// The call sites of one group. + /// Reads where a call site is. + /// Names the generated method a call site reaches. + /// Each generated method, against every call site that resolves to it. + /// + /// Every API claims its call sites the same way, so the gathering is written once over whatever model the + /// API happens to carry. A call site the compiler declined to describe is left out: nothing can claim it, + /// and it keeps whatever the call already resolved to. + /// + internal static Dictionary> GroupCallSites( + IReadOnlyList invocations, + Func locationOf, + Func suffixOf) + { + var claimed = new Dictionary>(StringComparer.Ordinal); + for (var i = 0; i < invocations.Count; i++) + { + var invocation = invocations[i]; + if (!locationOf(invocation).IsAvailable) + { + continue; + } + + var suffix = suffixOf(invocation); + if (!claimed.TryGetValue(suffix, out var callSites)) + { + callSites = []; + claimed[suffix] = callSites; + } + + callSites.Add(invocation); + } + + return claimed; + } + + /// Gathers the call sites of a group under the body each of them reaches. + /// The type group whose call sites are being gathered. + /// Names the body a call site reaches. + /// Each generated body, against every call site that resolves to it. + /// + /// A call site the compiler declined to describe is left out: nothing can claim it, and it keeps whatever + /// the call already resolved to. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static Dictionary> GroupCallSitesByBody( + ObservationCodeGenerator.TypeGroup group, + Func suffixOf) => + GroupCallSites(group.Invocations, static x => x.Interceptor, suffixOf); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InvokeCommandCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InvokeCommandCodeGenerator.cs new file mode 100644 index 00000000..b8aeb821 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/InvokeCommandCodeGenerator.cs @@ -0,0 +1,279 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Generates the typed overloads, interceptors and workers for InvokeCommand invocations. +internal static class InvokeCommandCodeGenerator +{ + /// The generated worker each dispatch branch hands the invocation to. + private const string WorkerMethodPrefix = "__InvokeCommand_"; + + /// The variable the observed command is assigned to inside a worker. + private const string CommandVariable = "commandObs"; + + /// The parameter carrying the text of the selector naming the command. + private const string CommandExpressionParameter = "commandPropertyExpression"; + + /// The objects a worker takes, in its own parameter order. + private const string WorkerArguments = "source, target"; + + /// The declaration of the parameter a worker takes its values from. + private const string SourceParameter = " source,"; + + /// Generates concrete typed overloads and workers for InvokeCommand invocations. + /// All detected InvokeCommand invocations. + /// All detected class binding info, for the observed type's mechanism. + /// The consumer compilation's C# language-feature snapshot. + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + InvokeCommandInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) => + CodeGeneratorHelpers.GenerateDispatchFile( + invocations, + features, + GroupByTypeSignature, + (sb, group, snapshot) => EmitGroup(sb, group, allClasses, snapshot)); + + /// Groups invocations by the types their overload declares. + /// The InvokeCommand invocations to group. + /// A list of groups, each sharing one overload signature. + /// The selector is typed as the stub's ICommand whatever the property declares, so the command type is not part of the key. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature( + InvokeCommandInvocationInfo[] invocations) => + SignatureGrouping.Group( + invocations, + static (key, inv) => _ = key.Append(inv.SourceValueTypeFullName).Append('|').Append(inv.TargetTypeFullName), + static (first, members) => new InvokeCommandTypeGroup(first.SourceValueTypeFullName, first.TargetTypeFullName, members)); + + /// Emits one group: the way its call sites are reached, and one worker per distinct command path. + /// The string builder to append to. + /// The group being emitted. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + private static void EmitGroup( + SourceWriter sb, + InvokeCommandTypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) + { + var collapsible = features.CollapsesIndistinguishableCallSites; + var emitted = collapsible + ? group with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + group.Invocations, + static x => x.CommandExpressionText), + } + : group; + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, emitted, in features); + } + else + { + GenerateConcreteOverload(sb, emitted, in features); + } + + _ = sb.BlankLine(); + + // Call sites spelling the same selector against the same type share one worker. + var emittedWorkers = new HashSet(StringComparer.Ordinal); + for (var i = 0; i < emitted.Invocations.Length; i++) + { + var inv = emitted.Invocations[i]; + var suffix = WorkerSuffix(inv); + if (!emittedWorkers.Add(suffix)) + { + continue; + } + + GenerateWorker(sb, inv, allClasses, suffix); + } + } + + /// Emits the concrete overload the call sites of one group resolve to. + /// The writer, at the class's member level. + /// The group being emitted. + /// The consumer compilation's language-feature snapshot. + private static void GenerateConcreteOverload( + SourceWriter sb, + InvokeCommandTypeGroup group, + in LanguageFeatures features) + { + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + + CodeGeneratorHelpers.AppendDispatchSummary( + sb, + Constants.InvokeCommandMethodName, + ObservableOf(group.SourceValueTypeFullName), + group.TargetTypeFullName, + dispatchesOnExpressionText); + + _ = sb.Append("public static ").Append(GeneratedTypeNames.IDisposable).Append(' ') + .Append(Constants.InvokeCommandMethodName).OpenParameterList(); + + AppendParameterList(sb, group, dispatchesOnExpressionText, features.SupportsNullable, features.StubHasExpressionParameters); + + _ = sb.OpenBlock(); + + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + if (dispatchesOnExpressionText) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(i), CommandExpressionParameter, inv.CommandExpressionText) + .CloseCondition(); + } + else + { + CodeGeneratorHelpers.AppendCallerInfoDispatchCondition( + sb, + i, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + } + + CodeGeneratorHelpers.AppendDispatchReturn(sb, WorkerMethodPrefix + WorkerSuffix(inv), WorkerArguments); + } + + CodeGeneratorHelpers.AppendBindingDispatchFallthrough(sb); + } + + /// Emits one interceptor per worker, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The group whose call sites are being claimed. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors( + SourceWriter sb, + InvokeCommandTypeGroup group, + in LanguageFeatures features) + { + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in InterceptorEmitter.GroupCallSites(group.Invocations, static x => x.Interceptor, WorkerSuffix)) + { + foreach (var callSite in entry.Value) + { + InterceptorEmitter.AppendAttribute(sb, callSite.Interceptor); + } + + _ = sb.Append("internal static ").Append(GeneratedTypeNames.IDisposable).Append(" __Intercept_") + .Append(Constants.InvokeCommandMethodName).Append('_').Append(entry.Key).OpenParameterList(); + + AppendParameterList(sb, group, dispatchesOnExpressionText, supportsNullable, stubHasExpressionParameters); + + _ = sb.Indent() + .Append("=> ").Append(WorkerMethodPrefix).Append(entry.Key).Append('(').Append(WorkerArguments).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Writes the stub's parameter list, which the overload and the interceptor both have to match exactly. + /// The writer, inside the parameter list. + /// The group whose types the parameters are written from. + /// Whether the captured expression text is what identifies a call site. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameter. + private static void AppendParameterList( + SourceWriter sb, + InvokeCommandTypeGroup group, + bool dispatchesOnExpressionText, + bool supportsNullable, + bool stubHasExpressionParameters) + { + // The stub's ICommand, whatever the command property is declared as. + var commandType = supportsNullable ? $"{ICommand}?" : ICommand; + + _ = sb.Append("this ").Append(ObservableOf(group.SourceValueTypeFullName)).Line(SourceParameter) + .Append(CodeGeneratorHelpers.NullableSelectorType(group.TargetTypeFullName, true, supportsNullable)).Line(" target,") + .Append(PropertyExpression(group.TargetTypeFullName, commandType)).Line(" commandProperty,"); + + if (dispatchesOnExpressionText || stubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter( + sb, + "commandProperty", + CommandExpressionParameter, + dispatchesOnExpressionText); + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Emits the worker that observes the command and offers it each value. + /// The writer, at the class's member level. + /// The call site being emitted. + /// All detected class binding info. + /// The stable method-name suffix for this worker. + private static void GenerateWorker( + SourceWriter sb, + InvokeCommandInvocationInfo inv, + ClassBindingInfo[] allClasses, + string suffix) + { + var classInfo = CodeGeneratorHelpers.ResolveObservedTypeInfo( + allClasses, + inv.TargetTypeFullName, + inv.CommandPropertyPath); + + _ = sb.Append("private static ").Append(GeneratedTypeNames.IDisposable).Append(' ').Append(WorkerMethodPrefix).Append(suffix).OpenParameterList() + .Append(ObservableOf(inv.SourceValueTypeFullName)).Line(SourceParameter) + .Append(inv.TargetTypeFullName).Line(" target)") + .Outdent() + .OpenBlock() + .BeginComment().Append("InvokeCommand: values -> "); + _ = CodeGeneratorHelpers.AppendPropertyPath(sb, inv.CommandPropertyPath).EndLine() + .If("target == null") + .Return(EmptyDisposableInstance) + .CloseBlock() + .BlankLine(); + + ObservationCodeGenerator.EmitInlineObservation( + sb, + "target", + inv.CommandPropertyPath, + inv.CommandPropertyPath[inv.CommandPropertyPath.Length - 1].PropertyTypeFullName, + classInfo, + CommandVariable); + + _ = sb.BeginReturn().Append(CommandInvoker).Append(".Invoke(source, ").Append(CommandVariable).Line(");") + .CloseBlock() + .BlankLine(); + } + + /// Names the worker a call site reaches. + /// The call site. + /// The stable method-name suffix. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string WorkerSuffix(InvokeCommandInvocationInfo inv) => + // No file or line, so call sites spelling the same selector against the same type share a worker. + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.TargetTypeFullName, + string.Empty, + 0, + inv.CommandExpressionText); + + /// Groups InvokeCommand invocations sharing the observed value type and the target type. + /// The fully qualified observable value type. + /// The fully qualified type declaring the command property. + /// All invocations sharing this overload signature. + internal sealed record InvokeCommandTypeGroup( + string SourceValueTypeFullName, + string TargetTypeFullName, + InvokeCommandInvocationInfo[] Invocations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ObservationCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ObservationCodeGenerator.cs new file mode 100644 index 00000000..8cc39df9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ObservationCodeGenerator.cs @@ -0,0 +1,1215 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Shared code generation logic for property observation APIs (WhenChanged, WhenChanging, WhenAnyValue). +/// Generates concrete typed extension method overloads and per-invocation observation methods. +/// Uses the plugin system to emit platform-specific observation code. +/// +internal static class ObservationCodeGenerator +{ + /// Opens the lambda that reads the property back off a before-change notification. + private const string ChangingReaderLambdaOpen = $"({INotifyPropertyChanging} __o) => (("; + + /// Passes the observed object to a before-change observation. + private const string ChangingSourceArgument = $"({INotifyPropertyChanging})obj,"; + + /// Opens a before-change observation of a property. + private const string ChangingObservableOpen = $"new {PropertyChangingObservable}<"; + + /// Opens a cast of an observation to the interface a chain stage is typed as. + private const string ObservableCastOpen = $"({IObservable}<"; + + /// The name the generated overloads give the observed object. + private const string MonitoredObjectName = "objectToMonitor"; + + /// Names the local holding the observation the generator's own mechanism builds. + private const string MechanismVariableSuffix = "Mechanism"; + + /// Names the local holding the registration that outranked that mechanism. + private const string RegistrationVariableSuffix = "Registration"; + + /// Opens a fully qualified default equality comparer. + private const string EqualityComparerOpen = $"{EqualityComparer}<"; + + /// + /// Returns the fully qualified type name for casting the observer parameter back to the + /// concrete source type. Falls back to "object" when + /// is null — a branch that is unreachable in normal generator pipelines but testable directly. + /// + /// The class binding info, or null. + /// The fully qualified type name string. + internal static string GetTypeCastName(ClassBindingInfo? classInfo) => + classInfo?.FullyQualifiedName ?? "object"; + + /// + /// Determines whether the given class supports after-change property observation + /// via (either directly + /// or through IReactiveObject). + /// Returns when is null. + /// + /// The class binding info, or null. + /// if INPC observation is supported. + internal static bool IsINPC(ClassBindingInfo? classInfo) => + classInfo is not null && (classInfo.ImplementsIReactiveObject || classInfo.ImplementsINPC); + + /// + /// Determines whether the given class supports before-change property observation + /// via (either directly + /// or through IReactiveObject). + /// Returns when is null. + /// + /// The class binding info, or null. + /// if INPChanging observation is supported. + internal static bool IsINPChanging(ClassBindingInfo? classInfo) => + classInfo is not null && (classInfo.ImplementsIReactiveObject || classInfo.ImplementsINPChanging); + + /// Generates concrete typed overloads and observation methods for property observation invocations. + /// All detected invocations. + /// All detected class binding info for type mechanism lookup. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// The method name prefix ("WhenChanged", "WhenChanging", or "WhenAnyValue"). + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + InvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features, + string methodPrefix) => + CodeGeneratorHelpers.GenerateDispatchFile( + InterceptorEmitter.ClaimableBy(invocations, static x => x.GenericResult, features), + features, + GroupByTypeSignature, + (sb, group, snapshot) => GenerateGroup( + sb, + group, + allClasses, + in snapshot, + methodPrefix)); + + /// Generates an observation method for a single invocation. + /// The writer, at the class's member level. + /// The invocation info. + /// The class binding info for the source type, or null. + /// The stable method name suffix (hex hash). + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + /// The method name prefix ("WhenChanged", "WhenChanging", or "WhenAnyValue"). + internal static void GenerateObservationMethod( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo, + string suffix, + bool isBeforeChange, + string prefix) + { + _ = sb.Append($"private static {IObservable}<").Append(inv.ReturnTypeFullName).Append("> __").Append(prefix).Append('_') + .Append(suffix); + InterceptorEmitter.AppendResultTypeParameter(sb, inv.GenericResult); + _ = sb.Append('(').Append(inv.SourceTypeFullName).Append(" obj"); + if (inv.HasSelector) + { + _ = sb.Append(", ").Append(GetSelectorType(inv)).Append(" selector"); + } + + _ = sb.Line(")").OpenBlock(); + + if (inv.PropertyPaths.Length == 1) + { + var path = inv.PropertyPaths[0]; + + if (path.Length > 1) + { + GenerateDeepChainObservation(sb, inv, classInfo, isBeforeChange); + } + else + { + var propertyAccessChain = CodeGeneratorHelpers.BuildPropertyAccessChain("obj", path); + var leafPropertyName = path[0].PropertyName; + + if (inv.HasSelector) + { + _ = sb.BeginReturn().Append("new ").Append(MapSignal).Append('<') + .Append(path[0].PropertyTypeFullName).Append(", ").Append(inv.ReturnTypeFullName).Append(">("); + GenerateShallowPathObservation(sb, path, classInfo, isBeforeChange); + _ = sb.Line(", selector);"); + } + else + { + GenerateSinglePropertyObservation( + sb, + inv, + classInfo, + propertyAccessChain, + leafPropertyName, + isBeforeChange); + } + } + } + else + { + GenerateMultiPropertyObservation(sb, inv, classInfo, isBeforeChange); + } + + _ = sb.CloseBlock() + .BlankLine(); + } + + /// Gets the Func type signature for a selector parameter. + /// The invocation info containing property path and return type information. + /// A fully qualified Func type string like global::System.Func<T1, T2, TReturn>. + internal static string GetSelectorType(InvocationInfo inv) + { + var sb = new PooledStringBuilder().Append($"{Func}<"); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + var path = inv.PropertyPaths[i]; + _ = sb.Append(path[path.Length - 1].PropertyTypeFullName).Append(", "); + } + + _ = sb.Append(inv.ReturnTypeFullName).Append('>'); + return sb.ToStringAndReturn(); + } + + /// Starts a typed pair constructor or the wide-arity factory, leaving the writer on its argument level. + /// The writer, inside the observation method's body. + /// The observed property paths. + /// The projected result type. + internal static void AppendCombineLatestConstruction( + SourceWriter sb, + EquatableArray> paths, + string returnType) + { + if (paths.Length == 2) + { + var left = paths[0]; + var right = paths[1]; + _ = sb.BeginReturn().Append("new ").Append(CombineLatestSignal).Append('<') + .Append(left[left.Length - 1].PropertyTypeFullName).Append(", ") + .Append(right[right.Length - 1].PropertyTypeFullName).Append(", ") + .Append(returnType).Append(">("); + } + else + { + _ = sb.BeginReturn().Append($"{LinqExtensions}.CombineLatest("); + } + + _ = sb.OpenContinuation(); + } + + /// + /// Generates a multi-property observation method body using CombineLatest. + /// Each property path observable is pre-declared as a local variable with properly + /// formatted multi-line code, then referenced by name inside CombineLatest. + /// + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + internal static void GenerateMultiPropertyObservation( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo, + bool isBeforeChange) + { + // Pre-declare an observable variable for each property path. + // Both shallow (single-segment) and deep (multi-segment) paths get their own + // properly formatted local variable, then are referenced by name in CombineLatest. + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + GenerateObservedPropertyVariable(sb, inv.PropertyPaths[i], classInfo, isBeforeChange, $"__propObs{i}"); + + // Blank line between variable declarations for readability + _ = sb.BlankLine(); + } + + AppendCombineLatestConstruction(sb, inv.PropertyPaths, inv.ReturnTypeFullName); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + _ = sb.Append("__propObs").Append(i); + if (i < inv.PropertyPaths.Length - 1) + { + _ = sb.Line(","); + } + } + + if (inv.HasSelector) + { + _ = sb.Line(",") + .Line("selector);"); + } + else + { + EmitCombineLatestValuesProjection(sb, inv); + } + + _ = sb.Outdent(); + } + + /// + /// Generates a shallow (single-segment) path observation as an inline expression. + /// Uses plugin dispatch to emit platform-specific observation code. + /// + /// The writer, part way through the line the expression belongs to; the line is left open. + /// The single-segment property path. + /// The class binding info for the source type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + internal static void GenerateShallowPathObservation( + SourceWriter sb, + EquatableArray path, + ClassBindingInfo? classInfo, + bool isBeforeChange) + { + var segment = path[0]; + var plugin = ResolveRootPlugin(classInfo, segment, isBeforeChange); + + ChainRegistrationEmitter.AppendChoiceOpen( + sb, + "obj", + segment, + plugin?.Affinity ?? 0, + isBeforeChange, + string.Empty); + + if (plugin is not null) + { + plugin.EmitShallowObservation(sb, "obj", segment, GetTypeCastName(classInfo), isBeforeChange, true); + } + else if (IsINPChanging(classInfo) && isBeforeChange) + { + _ = sb.Append(ChangingObservableOpen).Append(segment.PropertyTypeFullName).Append(">((") + .Append($"{INotifyPropertyChanging})obj, ").AppendQuoted(segment.PropertyName) + .Append($", ({INotifyPropertyChanging} __o) => (").Append('(').Append(GetTypeCastName(classInfo)) + .Append(GeneratedSyntax.ObserverCastClose).Append(segment.PropertyName).Append(')'); + } + else + { + _ = sb.Append(OpenUnchangingProperty).Append(segment.PropertyTypeFullName) + .Append(">(obj.").Append(segment.PropertyName).Append(')'); + } + + _ = ChainRegistrationEmitter.AppendChoiceClose(sb); + } + + /// Emits the variable holding one observed property. + /// The writer, inside the observation method's body. + /// The property path being observed. + /// The class binding info for the declaring type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + /// The name to give the variable. + /// + /// A chain re-subscribes when an intermediate object is replaced, so it is emitted differently from a single + /// property. Which of the two applies follows from the path's length alone, so every emitter asks here + /// rather than testing the length itself. + /// + internal static void GenerateObservedPropertyVariable( + SourceWriter sb, + EquatableArray path, + ClassBindingInfo? classInfo, + bool isBeforeChange, + string varName) + { + if (path.Length > 1) + { + GenerateDeepChainVariable(sb, path, classInfo, isBeforeChange, varName); + return; + } + + GenerateShallowObservableVariable(sb, path, classInfo, isBeforeChange, varName); + } + + /// + /// Generates a shallow (single-segment) path observable as a properly formatted local variable + /// declaration. Uses plugin dispatch to emit platform-specific observation code. + /// + /// The writer, inside the observation method's body. + /// The single-segment property path. + /// The class binding info for the source type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + /// The variable name to assign the observable to. + internal static void GenerateShallowObservableVariable( + SourceWriter sb, + EquatableArray path, + ClassBindingInfo? classInfo, + bool isBeforeChange, + string varName) + { + var segment = path[0]; + var plugin = ResolveRootPlugin(classInfo, segment, isBeforeChange); + var mechanismVariable = varName + MechanismVariableSuffix; + + if (plugin is not null) + { + plugin.EmitShallowObservationVariable( + sb, + "obj", + segment, + GetTypeCastName(classInfo), + isBeforeChange, + mechanismVariable); + } + else if (IsINPChanging(classInfo) && isBeforeChange) + { + _ = sb.BeginVar(mechanismVariable).Append(ChangingObservableOpen).Append(segment.PropertyTypeFullName).Append(">(") + .OpenContinuation() + .Line(ChangingSourceArgument) + .AppendQuoted(segment.PropertyName).Line(",") + .Append(ChangingReaderLambdaOpen).Append(GetTypeCastName(classInfo)) + .Append(GeneratedSyntax.ObserverCastClose).Append(segment.PropertyName).Line(");") + .Outdent(); + } + else + { + _ = sb.BeginVar(mechanismVariable).Append(OpenUnchangingProperty) + .Append(segment.PropertyTypeFullName).Append(">(obj.").Append(segment.PropertyName).Line(");"); + } + + EmitInlinePluginChoice( + sb, + "obj", + segment, + plugin?.Affinity ?? 0, + isBeforeChange, + new(mechanismVariable, varName)); + } + + /// + /// Generates a deep chain observable as a properly formatted local variable declaration. + /// Uses plugin dispatch for the root segment and inner segments. + /// + /// The writer, inside the observation method's body. + /// The multi-segment property path. + /// The class binding info for the source type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + /// The variable name to assign the final observable to. + internal static void GenerateDeepChainVariable( + SourceWriter sb, + EquatableArray path, + ClassBindingInfo? classInfo, + bool isBeforeChange, + string varName) + { + // First segment: observe root object for first property + var seg0 = path[0]; + var rootPlugin = ResolveRootPlugin(classInfo, seg0); + + EmitChainRootWithChoice(sb, "obj", seg0, classInfo, rootPlugin, $"{varName}_s0"); + + EmitDeepChainInnerSegments(sb, path, isBeforeChange, varName); + + // Distinct on both timings. The runtime engine asks for it whichever way it observes, so a + // before-change stream that repeated a value would emit where the runtime engine stayed quiet. + AppendUniqueObservation(sb.BeginVar(varName), path[path.Length - 1].PropertyTypeFullName, $"{varName}_s{path.Length - 1}"); + _ = sb.EndStatement(); + } + + /// + /// Groups invocations by their source type, return type, property count, and property types. + /// Invocations sharing the same type signature share a concrete overload. + /// + /// All detected invocations. + /// A list of type groups, each containing invocations with the same signature. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature(InvocationInfo[] invocations) => + SignatureGrouping.Group(invocations, AppendSignatureKey, static (first, members) => new TypeGroup(first, members)); + + /// Generates a concrete typed extension method overload with its dispatch table. + /// The writer, at the class's member level. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + /// The method name prefix. + internal static void GenerateConcreteOverload( + SourceWriter sb, + TypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters, + string methodPrefix) + { + var first = group.First; + var propCount = first.PropertyPaths.Length; + var hasSelector = first.HasSelector; + + EmitOverloadSignature(sb, first, supportsCallerArgExpr, supportsNullable, stubHasExpressionParameters, methodPrefix); + + // A registration that outranks the generated mechanism is honoured where the observation is built, + // one property at a time, so the dispatch itself has nothing to decide. + EmitDispatchTable(sb, group, supportsCallerArgExpr, methodPrefix, propCount, hasSelector); + + GenerateRuntimeFallback(sb, first, methodPrefix, propCount, hasSelector); + + _ = sb.CloseBlock(); + } + + /// Ends the overload where the stub it displaces would have ended: at the runtime engine. + /// The writer, inside the overload's body. + /// The invocation whose types the whole group shares. + /// The method name prefix. + /// The number of observed properties. + /// Whether the overload takes a selector. + internal static void GenerateRuntimeFallback( + SourceWriter sb, + InvocationInfo first, + string methodPrefix, + int propCount, + bool hasSelector) + { + var typeArguments = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + var arguments = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + + _ = typeArguments.Append(first.SourceTypeFullName); + _ = arguments.Append(MonitoredObjectName); + + for (var i = 0; i < propCount; i++) + { + var path = first.PropertyPaths[i]; + _ = typeArguments.Append(", ").Append(path[path.Length - 1].PropertyTypeFullName); + _ = arguments.Append(", property").Append(i + 1); + } + + if (hasSelector) + { + _ = typeArguments.Append(", ").Append(first.ReturnTypeFullName); + _ = arguments.Append(", selector"); + } + + CodeGeneratorHelpers.AppendStubFallbackCall( + sb, + methodPrefix, + typeArguments.ToStringAndReturn(), + arguments.ToStringAndReturn()); + } + + /// Generates a single-property observation method body using plugin dispatch. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + /// The dotted property access expression (e.g. "obj.Name"). + /// The leaf property name for event filtering. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + internal static void GenerateSinglePropertyObservation( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo, + string propertyAccess, + string propertyName, + bool isBeforeChange) + { + var segment = inv.PropertyPaths[0][0]; + var plugin = ResolveRootPlugin(classInfo, segment, isBeforeChange); + + ChainRegistrationEmitter.AppendChoiceOpen( + sb, + "obj", + segment, + plugin?.Affinity ?? 0, + isBeforeChange, + "return "); + + if (plugin is not null) + { + plugin.EmitShallowObservation(sb, "obj", segment, GetTypeCastName(classInfo), isBeforeChange, true); + } + else if (IsINPChanging(classInfo) && isBeforeChange) + { + // INPChanging-only type (no INPC, no IReactiveObject) — can observe before-change + _ = sb.Append(ChangingObservableOpen).Append(inv.ReturnTypeFullName).Append(">(") + .OpenContinuation() + .Line(ChangingSourceArgument) + .AppendQuoted(propertyName).Line(",") + .Append(ChangingReaderLambdaOpen).Append(inv.SourceTypeFullName) + .Append(GeneratedSyntax.ObserverCastClose).Append(propertyName).Append(')') + .Outdent(); + } + else + { + _ = sb.Append(OpenUnchangingProperty) + .Append(inv.ReturnTypeFullName).Append(">(").Append(propertyAccess).Append(')'); + } + + _ = ChainRegistrationEmitter.AppendChoiceClose(sb).EndStatement(); + } + + /// Generates a deep chain observation method body using plugin dispatch for the root segment and inner segments. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + /// True for WhenChanging (before-change), false for WhenChanged (after-change). + internal static void GenerateDeepChainObservation( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo, + bool isBeforeChange) + { + var path = inv.PropertyPaths[0]; + var seg0 = path[0]; + var rootPlugin = ResolveRootPlugin(classInfo, seg0); + + // First segment: observe root object for first property + EmitChainRootWithChoice(sb, "obj", seg0, classInfo, rootPlugin, "__obs0"); + + EmitObservationChainInnerSegments(sb, path, isBeforeChange); + + var leafType = path[path.Length - 1].PropertyTypeFullName; + _ = sb.BeginReturn(); + if (inv.HasSelector) + { + _ = sb.Append("new ").Append(MapSignal).Append('<').Append(leafType).Append(", ") + .Append(inv.ReturnTypeFullName).Append(">("); + } + + AppendUniqueObservation(sb, leafType, $"__obs{path.Length - 1}"); + if (inv.HasSelector) + { + _ = sb.Append(", selector)"); + } + + _ = sb.EndStatement(); + } + + /// + /// Emits an inline observation expression as a variable assignment using plugin dispatch. + /// Used by binding generators to emit direct observation code + /// instead of delegating to WhenChanged dispatch. + /// + /// The writer, inside the worker's body. + /// The root variable name (e.g., "source", "target"). + /// The property path segments. + /// The fully qualified type of the leaf property. + /// The class binding info for the observed type, or null. + /// The name for the resulting observable variable (e.g., "sourceObs"). + /// What a deep path's leaf emits while a parent on the path is null. + internal static void EmitInlineObservation( + SourceWriter sb, + string rootVar, + EquatableArray propertyPath, + string propertyTypeFullName, + ClassBindingInfo? classInfo, + string variableName, + NullParentObservationBehavior brokenChainBehavior = NullParentObservationBehavior.EmitDefault) + { + var plugin = ResolveRootPlugin(classInfo, propertyPath[0]); + + if (propertyPath.Length == 1) + { + var segment = propertyPath[0]; + var mechanismVariable = variableName + MechanismVariableSuffix; + + if (plugin is not null) + { + plugin.EmitInlineObservationVariable(sb, rootVar, segment, GetTypeCastName(classInfo), mechanismVariable); + } + else + { + _ = sb.BeginVar(mechanismVariable).Append(OpenUnchangingProperty).Append(propertyTypeFullName).Append(">(") + .Append(rootVar).Append('.').Append(segment.PropertyName).Line(");"); + } + + EmitInlinePluginChoice( + sb, + rootVar, + segment, + plugin?.Affinity ?? 0, + false, + new(mechanismVariable, variableName), + propertyTypeFullName); + } + else + { + EmitInlineDeepChain(sb, rootVar, propertyPath, classInfo, plugin, variableName, brokenChainBehavior); + } + } + + /// Selects a property's mechanism using its declaring type when the property is inherited. + /// The type named by the call site, or null when unavailable. + /// The observed property and its declaring type. + /// Whether the requested notification precedes the change. + /// The winning observation plugin, or null when no mechanism reaches the property. + internal static IObservationPlugin? ResolveRootPlugin(ClassBindingInfo? classInfo, PropertyPathSegment segment, bool isBeforeChange = false) + { + var owner = segment.DeclaringTypeInfo ?? classInfo; + return owner is null || segment.IsField ? null : ObservationPluginRegistry.GetBestPlugin(owner, segment.PropertyName, isBeforeChange); + } + + /// Writes the parts of a call site that decide its overload: the types and each observed leaf's type. + /// The key being built. + /// The call site. + private static void AppendSignatureKey(PooledStringBuilder key, InvocationInfo inv) + { + _ = key + .Append(inv.SourceTypeFullName).Append('|') + .Append(inv.ReturnTypeFullName).Append('|') + .Append(inv.PropertyPaths.Length).Append('|') + .Append(inv.HasSelector); + for (var p = 0; p < inv.PropertyPaths.Length; p++) + { + var path = inv.PropertyPaths[p]; + _ = key.Append('|').Append(path[path.Length - 1].PropertyTypeFullName); + } + } + + /// Emits the choice between the mechanism the generator picked and a registration that outranks it. + /// The writer, inside the body the observation is built in. + /// The variable holding the observed object. + /// The property being observed. + /// The affinity of the mechanism the generator picked. + /// Whether before-change notifications are being observed. + /// The local holding the mechanism's observation, and the local the choice is assigned to. + /// + /// The element type the surrounding code expects, where it is not the property's own declared type. + /// + /// + /// The registration is resolved where the observation is built rather than at the call site's dispatch, so a + /// binding keeps its generated write and only its reading changes. The property is named as a literal and + /// read through an emitted accessor, and the expression handed to the registration is a lambda the compiler + /// built, so nothing on this path is resolved by name and an ahead-of-time consumer carries no expression + /// engine for it. + /// + /// The element type is overridable because a caller can want the property's interface rather than its + /// declared type - an interaction property declared as Interaction is observed as + /// IInteraction - and the choice has to be typed the same way as the mechanism it wraps. + /// + /// + private static void EmitInlinePluginChoice( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + int generatedAffinity, + bool isBeforeChange, + in PluginChoiceLocals locals, + string? valueTypeOverride = null) + { + var valueType = valueTypeOverride ?? segment.PropertyTypeFullName; + var pluginVariable = locals.VariableName + RegistrationVariableSuffix; + + _ = sb.BeginVar(pluginVariable).Append(ObservationAffinityChecker) + .Append(".FindHigherAffinityPlugin(").Append(rootVar).Append(".GetType(), ").AppendQuoted(segment.PropertyName) + .Append(", ").Append(generatedAffinity).Append(", ").AppendLiteral(isBeforeChange).Line(");") + .BeginVar(locals.VariableName).Append(pluginVariable).Append(" == null") + .OpenContinuation() + .Append("? ").Append(ObservableCastOpen).Append(valueType).Append(">)").Line(locals.MechanismVariable) + .Append(": ").Append(ObservableCastOpen).Append(valueType).Append(">)new ") + .Append(PluginPropertyObservable).Append('<').Append(valueType).Append(">(") + .OpenContinuation(); + _ = ChainRegistrationEmitter.AppendPluginObservableArguments(sb, pluginVariable, rootVar, segment, valueType, isBeforeChange) + .Line(",") + .Line("true);") + .Outdent() + .Outdent(); + } + + /// Emits the first link of a chain into a local, and the choice a registration can win for it. + /// The writer, inside the body the chain is built in. + /// The variable holding the chain root. + /// The first segment of the path. + /// The root type's binding info, when known. + /// The plugin for the root type, when one matched. + /// The local the link's observation is assigned to. + /// + /// The first link is offered to a registration on the same terms as every later one. Without this the root + /// of a chain was the one link a registered plugin could not take, which made the honouring depend on where + /// in a path the property sat. The first link of a chain is never its leaf, so it is always observed after + /// the change, even for a before-change observation. + /// + private static void EmitChainRootWithChoice( + SourceWriter sb, + string rootVar, + PropertyPathSegment seg0, + ClassBindingInfo? classInfo, + IObservationPlugin? rootPlugin, + string obsVar) + { + var mechanismVariable = obsVar + MechanismVariableSuffix; + + if (rootPlugin is not null) + { + rootPlugin.EmitDeepChainRootSegment(sb, rootVar, seg0, GetTypeCastName(classInfo), false, mechanismVariable); + } + else + { + _ = sb.BeginVar(mechanismVariable).Append(ObservableCastOpen).Append(seg0.PropertyTypeFullName).Append(">)") + .Append(OpenUnchangingProperty).Append(seg0.PropertyTypeFullName).Append(">(").Append(rootVar).Append('.') + .Append(seg0.PropertyName).Line(");"); + } + + EmitInlinePluginChoice( + sb, + rootVar, + seg0, + rootPlugin?.Affinity ?? 0, + false, + new(mechanismVariable, obsVar)); + } + + /// Picks the observation plugin for the type that declares a chain segment's property. + /// The chain segment, which carries how its declaring type notifies. + /// Whether the property is observed before it changes. + /// The plugin for that type, or null to fall back to reading the property. + /// + /// Each link of a chain is declared by its own type and notifies - or does not - on its own terms, so the + /// mechanism is resolved per segment. Reusing the root's plugin emits its cast against whatever the segment + /// declares, which is a build error where the two are unrelated and a failed cast at runtime where they are + /// merely different. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IObservationPlugin? ResolveSegmentPlugin(PropertyPathSegment segment, bool isBeforeChange = false) => + segment.DeclaringTypeInfo is null || segment.IsField + ? null + : ObservationPluginRegistry.GetBestPlugin(segment.DeclaringTypeInfo, segment.PropertyName, isBeforeChange); + + /// + /// Chains the segments after the root for the standalone observation method, which names its + /// stages __obsN rather than deriving them from a caller-supplied prefix. + /// + /// The writer, inside the observation method's body. + /// The property path being observed. + /// Whether before-change notifications are being observed. + /// + /// Missing parents propagate through intermediate stages so downstream subscriptions detach, + /// while the leaf suppresses the default value to match the runtime expression-chain fallback. + /// + private static void EmitObservationChainInnerSegments( + SourceWriter sb, + EquatableArray path, + bool isBeforeChange) + { + for (var s = 1; s < path.Length; s++) + { + EmitInnerSegment(sb, path[s], new($"__obs{s - 1}", $"__obs{s}", $"__parent{s}"), s == path.Length - 1, isBeforeChange); + } + } + + /// + /// Chains the segments after the root with Select + Switch, so the observation re-subscribes when + /// an intermediate value changes. + /// + /// The writer, inside the observation method's body. + /// The property path being observed. + /// Whether before-change notifications are being observed. + /// The variable-name prefix for the emitted stages. + /// + /// Missing parents propagate through intermediate stages so downstream subscriptions detach, + /// while the leaf suppresses the default value to match the runtime expression-chain fallback. + /// + private static void EmitDeepChainInnerSegments( + SourceWriter sb, + EquatableArray path, + bool isBeforeChange, + string varName) + { + for (var s = 1; s < path.Length; s++) + { + EmitInnerSegment(sb, path[s], new($"{varName}_s{s - 1}", $"{varName}_s{s}", $"{varName}_p{s}"), s == path.Length - 1, isBeforeChange); + } + } + + /// Emits the stage that switches one segment after the root onto its parent's latest value. + /// The writer, inside the body the chain is built in. + /// The segment the stage observes. + /// The names of the parent stage, this stage and the lambda's parent parameter. + /// Whether the segment is the last in the path. + /// Whether before-change notifications are being observed. + /// + /// Only the leaf suppresses. Inner segments keep pushing the null downstream so the stage below re-parents onto + /// null and drops its subscription on the detached subtree. + /// + private static void EmitInnerSegment( + SourceWriter sb, + PropertyPathSegment seg, + ChainStageVariables variables, + bool isLeaf, + bool isBeforeChange) + { + var beforeLeaf = isBeforeChange && isLeaf; + var segPlugin = ResolveSegmentPlugin(seg, beforeLeaf); + var nullParentBehavior = isLeaf + ? NullParentObservationBehavior.SuppressEmission + : NullParentObservationBehavior.EmitDefault; + + if (segPlugin is not null) + { + segPlugin.EmitDeepChainInnerSegment(sb, variables, seg, beforeLeaf, nullParentBehavior); + return; + } + + EmitReadOnceStage(sb, seg, variables, nullParentBehavior); + } + + /// Emits a chain stage for a segment whose declaring type is unknown, reading the value once per parent. + /// The writer, inside the body the chain is built in. + /// The segment the stage observes. + /// The names of the parent stage, this stage and the lambda's parent parameter. + /// What the stage emits while its parent is null. + /// + /// Every known type resolves a plugin, the POCO fallback at worst, so only a segment whose declaring type is + /// unknown reaches here. Nothing about such a type says it notifies, so the stage reads the value once. + /// + private static void EmitReadOnceStage( + SourceWriter sb, + PropertyPathSegment seg, + in ChainStageVariables variables, + NullParentObservationBehavior nullParentBehavior) + { + var segType = seg.PropertyTypeFullName; + ChainRegistrationEmitter.AppendStageOpen(sb, variables, seg, segType); + _ = sb.Append("? ").Append(ObservableCastOpen).Append(segType).Line(">)") + .Indent() + .Append($"new {ImmediateReturnSignal}<").Append(segType).Append(">(((") + .Append(seg.DeclaringTypeFullName).Append(')').Append(variables.ParentParameter).Append(").").Append(seg.PropertyName).Line(")") + .Outdent(); + ChainRegistrationEmitter.AppendStageClose(sb, segType, nullParentBehavior); + } + + /// + /// Emits the Select/Switch chain for a multi-segment property path, one stage per segment, and + /// the distinct-until-changed gate that terminates it. + /// + /// The writer, inside the worker's body. + /// The variable holding the chain root. + /// The property path being observed. + /// The root type's binding info, when known. + /// The observation plugin for the root type, when one matched. + /// The name of the variable the chain result is assigned to. + /// What the leaf emits while its parent is null. + /// + /// Inner segments emit defaults so the stage below re-parents onto null and drops its subscription on the + /// detached subtree. The leaf follows : emitting its default lets a consumer + /// clear its target, suppressing leaves the target as it was until the path is whole again. + /// + private static void EmitInlineDeepChain( + SourceWriter sb, + string rootVar, + EquatableArray propertyPath, + ClassBindingInfo? classInfo, + IObservationPlugin? plugin, + string variableName, + NullParentObservationBehavior brokenChainBehavior) + { + EmitChainRootWithChoice(sb, rootVar, propertyPath[0], classInfo, plugin, $"__{variableName}_s0"); + + for (var s = 1; s < propertyPath.Length; s++) + { + var seg = propertyPath[s]; + var variables = new ChainStageVariables($"__{variableName}_s{s - 1}", $"__{variableName}_s{s}", $"__p{s}"); + var segPlugin = ResolveSegmentPlugin(seg); + var nullParentBehavior = s == propertyPath.Length - 1 ? brokenChainBehavior : NullParentObservationBehavior.EmitDefault; + + if (segPlugin is not null) + { + segPlugin.EmitDeepChainInnerSegment(sb, variables, seg, isBeforeChange: false, nullParentBehavior); + continue; + } + + EmitReadOnceStage(sb, seg, variables, nullParentBehavior); + } + + AppendUniqueObservation(sb.BeginVar(variableName), propertyPath[propertyPath.Length - 1].PropertyTypeFullName, $"__{variableName}_s{propertyPath.Length - 1}"); + _ = sb.EndStatement(); + } + + /// Constructs typed distinct-value filtering with the default comparer. + /// The writer, part way through the line the expression belongs to. + /// The observed value type. + /// The source variable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendUniqueObservation(SourceWriter sb, string valueType, string source) => + sb.Append("new ").Append(UniqueSignal).Append('<').Append(valueType).Append(">(") + .Append(source).Append(", ").Append(EqualityComparerOpen).Append(valueType).Append(">.Default)"); + + /// + /// Computes the worker-method suffix for an observation invocation, keyed only by the source type and + /// property expression(s) — not the call site. Call sites that share the same type and expression(s) + /// produce an identical worker, so they resolve to a single generated method. + /// + /// The invocation info. + /// The stable, call-site-independent method-name suffix. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string MethodSuffix(InvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + string.Empty, + 0, + inv.ExpressionTexts); + + /// Generates the concrete overload and per-invocation observation methods for a single type group. + /// The writer, at the class's member level. + /// The type group to generate code for. + /// All detected class binding info for type mechanism lookup. + /// The consumer compilation's language-feature snapshot, which settles the dispatch. + /// The method name prefix. + private static void GenerateGroup( + SourceWriter sb, + TypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features, + string methodPrefix) + { + // Either claim each call site outright, or emit the overload that competes for them all. + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, group, methodPrefix, in features); + } + else + { + GenerateConcreteOverload( + sb, + group, + features.SupportsCallerArgExpr, + features.SupportsNullable, + features.StubHasExpressionParameters, + methodPrefix); + } + + _ = sb.BlankLine(); + + // Generate the observation methods for each invocation in this group. Call sites that share the + // same source type and property expression(s) produce an identical worker, so the method is keyed + // by (type, expressions) and emitted only once — avoiding duplicate, identical methods. + var emittedMethods = new HashSet(); + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + var suffix = MethodSuffix(inv); + if (!emittedMethods.Add(suffix)) + { + continue; + } + + var classInfo = CodeGeneratorHelpers.ResolveObservedTypeInfo( + allClasses, + inv.SourceTypeFullName, + inv.PropertyPaths[0]); + + GenerateObservationMethod(sb, inv, classInfo, suffix, inv.IsBeforeChange, methodPrefix); + } + } + + /// Emits one interceptor per generated observation, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The type group whose call sites are being claimed. + /// The method name prefix. + /// The consumer compilation's language-feature snapshot. + /// + /// Call sites that share a source type and the same expressions produce one observation between them, and + /// the attribute may be applied repeatedly, so they are claimed by a single method carrying one attribute + /// each. A call site the compiler declined to describe is left alone: it keeps whatever the call already + /// resolved to, which is the same outcome an unreachable dispatch overload produces. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void GenerateInterceptors( + SourceWriter sb, + TypeGroup group, + string methodPrefix, + in LanguageFeatures features) => + InterceptorEmitter.GenerateInterceptors( + sb, + group, + methodPrefix, + MethodSuffix, + in features, + static (SourceWriter builder, InvocationInfo first, in LanguageFeatures snapshot) => AppendParameterList( + builder, + first, + snapshot.SupportsCallerArgExpr, + snapshot.SupportsNullable, + snapshot.StubHasExpressionParameters, + first.PropertyPaths.Length, + first.HasSelector)); + + /// Emits the trailing projection lambda that gathers a selector-less CombineLatest into one emission. + /// The writer, after the last observed property's argument. + /// The invocation, whose return type is the emission being constructed. + private static void EmitCombineLatestValuesProjection(SourceWriter sb, InvocationInfo inv) + { + var propertyCount = inv.PropertyPaths.Length; + + _ = sb.Line(",").Append('('); + AppendProjectionParameters(sb, propertyCount); + _ = sb.Append(") => new ").Append(inv.ReturnTypeFullName).Append('('); + AppendProjectionParameters(sb, propertyCount); + _ = sb.Line("));"); + } + + /// Writes the projection's parameters, p1 onwards, comma separated. + /// The writer, part way through the projection. + /// How many observed properties the projection takes. + private static void AppendProjectionParameters(SourceWriter sb, int propertyCount) + { + for (var i = 0; i < propertyCount; i++) + { + if (i > 0) + { + _ = sb.Append(", "); + } + + _ = sb.Append('p').Append(i + 1); + } + } + + /// + /// Emits the XML doc comment, method signature, property expression parameters, optional selector, + /// CallerArgumentExpression parameters, and the caller-info parameters that open the overload body. + /// + /// The writer, at the class's member level; left inside the overload's body. + /// The first invocation in the group, used for type information. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + /// The method name prefix. + private static void EmitOverloadSignature( + SourceWriter sb, + InvocationInfo first, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters, + string methodPrefix) + { + _ = sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for ").Append(methodPrefix).Append(" on ").Append(first.SourceTypeFullName).Line(".") + .CloseSummary() + .Append($"public static {IObservable}<").Append(first.ReturnTypeFullName).Append("> ").Append(methodPrefix) + .OpenParameterList(); + + AppendParameterList( + sb, + first, + supportsCallerArgExpr, + supportsNullable, + stubHasExpressionParameters, + first.PropertyPaths.Length, + first.HasSelector); + + _ = sb.OpenBlock(); + } + + /// Writes the parameters an observation member declares, closing the list. + /// The writer, inside the parameter list. + /// The invocation whose types the parameters are written from. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters. + /// The number of property expressions. + /// Whether a selector function is present. + /// + /// One list serves the overload and the interceptor, because both have to be the stub's signature: the + /// overload only wins resolution against a candidate it is otherwise indistinguishable from, and an + /// interceptor is refused outright unless its signature is the intercepted method's. + /// + private static void AppendParameterList( + SourceWriter sb, + InvocationInfo first, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters, + int propCount, + bool hasSelector) + { + _ = sb.Append("this ").Append(first.SourceTypeFullName).Line(" objectToMonitor,"); + + for (var i = 0; i < propCount; i++) + { + var type = CodeGeneratorHelpers.NullableSelectorLeafType(first.PropertyPaths[i], supportsNullable); + _ = sb.Append(GeneratedSyntax.SelectorTypeOpen).Append(first.SourceTypeFullName).Append(", ") + .Append(type).Append(">> property").Append(i + 1).Line(","); + } + + if (hasSelector) + { + _ = sb.Append(GetSelectorType(first)).Line(" selector,"); + } + + if (stubHasExpressionParameters) + { + for (var i = 0; i < propCount; i++) + { + CodeGeneratorHelpers.AppendExpressionParameter( + sb, + $"property{i + 1}", + $"property{i + 1}Expression", + supportsCallerArgExpr); + } + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Emits the if/else-if dispatch table that routes each matched invocation to its generated method. + /// The writer, inside the overload's body. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// The method name prefix. + /// The number of property expressions. + /// Whether a selector function is present. + private static void EmitDispatchTable( + SourceWriter sb, + TypeGroup group, + bool supportsCallerArgExpr, + string methodPrefix, + int propCount, + bool hasSelector) + { + // CallerArgumentExpression dispatch keys solely on the expression text, so call sites that share + // the same expression(s) collapse to one branch (duplicates would be identical and unreachable). + // CallerFilePath dispatch keeps one branch per call site (distinct file/line) but routes to the + // same expression-keyed worker. 'branchIndex' tracks emitted branches so the first uses "if". + var emittedConditions = new HashSet>(); + var branchIndex = 0; + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + if (supportsCallerArgExpr) + { + if (!emittedConditions.Add(inv.ExpressionTexts)) + { + continue; + } + + CodeGeneratorHelpers.AppendSelectorTextCondition(sb, branchIndex, "property", inv.ExpressionTexts, propCount); + } + else + { + CodeGeneratorHelpers.AppendInlineCallerInfoCondition( + sb, + branchIndex, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + } + + branchIndex++; + _ = sb.BeginReturn().Append("__").Append(methodPrefix).Append('_').Append(MethodSuffix(inv)).Append('(').Append(MonitoredObjectName) + .Append(hasSelector ? ", selector" : string.Empty).Line(");") + .CloseBlock(); + } + } + + /// The two locals a plugin choice names: the mechanism's observation and the observation chosen. + /// The local holding the observation the generator's own mechanism built. + /// The local the chosen observation is assigned to. + internal readonly record struct PluginChoiceLocals(string MechanismVariable, string VariableName); + + /// Groups invocations by source and return type signature for overload generation. + /// The first invocation in the group, used for type information. + /// All invocations sharing the same type signature. + internal sealed record TypeGroup( + InvocationInfo First, + InvocationInfo[] Invocations) + { + /// Gets the fully qualified name of the source type. + internal string SourceTypeFullName => First.SourceTypeFullName; + + /// Gets the fully qualified name of the return type. + internal string ReturnTypeFullName => First.ReturnTypeFullName; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/OneWayBindCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/OneWayBindCodeGenerator.cs new file mode 100644 index 00000000..e748330a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/OneWayBindCodeGenerator.cs @@ -0,0 +1,143 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads and binding methods for OneWayBind (view-first) invocations. +/// The generated methods return IReactiveBinding<TView, TValue> and use view-first parameter ordering. +/// +internal static class OneWayBindCodeGenerator +{ + /// Gets what distinguishes this API's generated dispatch overload from the other three. + internal static readonly BindingEmitterHelpers.BindingDispatchApi DispatchApi = new() + { + Name = "OneWayBind", + ReceiverParameterName = "view", + OtherParameterName = "viewModel", + ReceiverIsTarget = true, + SourceSelectorName = "viewModelProperty", + TargetSelectorName = "viewProperty", + WorkerMethodPrefix = "__OneWayBind_", + WorkerSourceParameterName = "viewModel", + WorkerTargetParameterName = "view", + IsTwoWay = false, + HookRefusalValue = "null", + SourceObservableName = SourceObservableVariable, + SourceConvertedName = "__selected", + SourceScheduledName = "bindObs", + ForwardConverterArgument = ConversionParameterName, + OverrideForwardName = "converter", + FormatReturnType = FormatReturnType, + FormatWorkerReturnType = FormatMethodReturnType, + AppendExtraParameters = AppendExtraParameters, + FormatWorkerParameters = FormatExtraMethodParams, + FormatExtraArguments = FormatExtraArgs, + }; + + /// What this API calls the projection argument in its generated signatures. + private const string ConversionParameterName = "selector"; + + /// Name of the emitted local holding the source property observation, before conversion or scheduling. + private const string SourceObservableVariable = "sourceObs"; + + /// Generates a private OneWayBind method for a specific invocation. + /// The string builder to append to. + /// The binding invocation info. + /// The source type class binding info. + /// The view type class binding info, which says whether it exposes a view model. + /// The stable method name suffix. + internal static void GenerateOneWayBindMethod( + SourceWriter sb, + BindingInvocationInfo inv, + ClassBindingInfo? sourceClassInfo, + ClassBindingInfo? targetClassInfo, + string suffix) + { + BindingEmitterHelpers.AppendWorkerMethodHeader(sb, DispatchApi, inv, suffix); + + // Emit inline observation code instead of delegating to WhenChanged dispatch + var observation = BindingEmitterHelpers.ResolveViewModelObservation(inv, sourceClassInfo, targetClassInfo); + + ObservationCodeGenerator.EmitInlineObservation( + sb, + observation.RootVariable, + observation.Path, + inv.SourcePropertyTypeFullName, + observation.RootClassInfo, + SourceObservableVariable, + NullParentObservationBehavior.SuppressEmission); + + var currentVar = BindingEmitterHelpers.EmitSingleStreamStages(sb, DispatchApi, inv); + + currentVar = BindingEmitterHelpers.EmitViewThreadStage(sb, inv, currentVar, "viewThreadObs", "view", inv.TargetViewThreadInvoker); + + if (inv.SetMethod is { } setMethod) + { + CollectionSetMethodEmitter.EmitSubscription(sb, new("view", inv.TargetPropertyPath, inv.SourcePropertyTypeFullName, setMethod, inv.TargetExpressionText, true), currentVar); + _ = sb.BeginReturn().Append($"new {GeneratedTypeNames.ReactiveBinding}<").Append(inv.TargetTypeFullName).Append(", ") + .Append(inv.TargetPropertyTypeFullName).Line($">(view, __setChanges, {GeneratedTypeNames.BindingDirection}.OneWay,") + .Indent() + .Line($"new {GeneratedTypeNames.MultipleDisposable}(__setSubscription, __setChanges));") + .Outdent() + .CloseBlock(); + return; + } + + BindingEmitterHelpers.AppendWriteSubscription(sb.BlankLine().BeginVar("sub"), currentVar, "view", inv.TargetPropertyPath, inv.TargetExpressionText); + _ = sb.BlankLine() + .BeginReturn().Append($"new {GeneratedTypeNames.ReactiveBinding}<").Append(inv.TargetTypeFullName).Append(", ") + .Append(inv.TargetPropertyTypeFullName).Append(">(").OpenContinuation() + .Line("view,") + .Append(currentVar).Line(",") + .Line($"{GeneratedTypeNames.BindingDirection}.OneWay,") + .Line("sub);") + .Outdent() + .CloseBlock() + .BlankLine(); + } + + /// Appends extra parameters (selector, scheduler) to the concrete overload signature. + /// The string builder to append to. + /// The binding type group. + /// Whether the target supports nullable reference types (C# 8+). + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendExtraParameters(SourceWriter sb, BindingTypeGroup group, bool supportsNullable) => + BindingEmitterHelpers.AppendExtraParameters(sb, group, ConversionParameterName, supportsNullable); + + /// Formats extra arguments (selector, scheduler) for forwarding to the binding method. + /// The binding type group. + /// Extra arguments string or empty. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraArgs(BindingTypeGroup group) => + BindingEmitterHelpers.FormatExtraArgs(group, ConversionParameterName); + + /// Formats extra method parameters for the private binding method signature. + /// The binding invocation info. + /// Extra parameters string for selector and scheduler parameters. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string FormatExtraMethodParams(BindingInvocationInfo inv) => + BindingEmitterHelpers.FormatExtraMethodParams(inv, ConversionParameterName); + + /// Formats the return type for a concrete OneWayBind overload. + /// The binding type group. + /// The fully qualified return type string. + /// + /// Always the view property's type, which is what the runtime stub declares. Using the source type when no + /// converter was supplied only agrees with the stub while the two sides happen to match. + /// + internal static string FormatReturnType(BindingTypeGroup group) => + $"{GeneratedTypeNames.IReactiveBinding}<{group.TargetTypeFullName}, {group.TargetPropertyTypeFullName}>"; + + /// Formats the return type for a private OneWayBind method. + /// The binding invocation info. + /// The fully qualified return type string. + internal static string FormatMethodReturnType(BindingInvocationInfo inv) => + $"{GeneratedTypeNames.IReactiveBinding}<{inv.TargetTypeFullName}, {inv.TargetPropertyTypeFullName}>"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/RuntimeFlavourRewriter.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/RuntimeFlavourRewriter.cs new file mode 100644 index 00000000..033d5236 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/RuntimeFlavourRewriter.cs @@ -0,0 +1,198 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Text; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Retargets generated code from the lean runtime library onto the System.Reactive flavour. +/// +/// +/// The two runtime packages are the same source compiled twice, and they share no type names: everything the +/// lean package puts in ReactiveUI.Binding.* the other puts in ReactiveUI.Binding.Reactive.*, and +/// the scheduler abstraction differs outright. Generated code that names the lean types does not compile at all +/// against the other package. +/// +/// +/// The emitters write the lean names, and this pass shifts them when the consumer references the other package. +/// It runs on the finished text rather than being threaded through the emitters because most of the generated +/// bodies are non-interpolated raw string literals, whose braces are the braces of the generated code - making +/// them interpolated to inject a namespace would mean escaping every one. +/// +/// +/// The shift is anchored on the names the runtime namespace actually declares, read from the referenced +/// assembly rather than listed here, so it cannot go stale as the runtime grows and it cannot touch a consumer +/// type that merely happens to sit under ReactiveUI.Binding - which is exactly what a consumer whose own +/// root namespace starts that way would otherwise hit. +/// +/// +internal static class RuntimeFlavourRewriter +{ + /// The prefix every generated reference to the lean runtime library starts with. + private const string LeanPrefix = "global::ReactiveUI.Binding."; + + /// The prefix every generated reference to the lean Primitives stack starts with. + private const string PrimitivesPrefix = "global::ReactiveUI.Primitives."; + + /// The segment the System.Reactive flavour inserts after the shared root. + private const string ReactiveSegment = "Reactive."; + + /// How much headroom to leave for the segments the shift inserts, as a fraction of the source. + private const int GrowthDivisor = 8; + + /// Retargets generated source onto the runtime flavour the consumer actually references. + /// The generated source, written against the lean runtime library. + /// The consumer compilation's snapshot, naming the flavour and its members. + /// The source, unchanged for a lean consumer. + internal static string Retarget(string source, in LanguageFeatures features) + { + if (!features.UsesReactiveRuntime) + { + return source; + } + + var scheduled = source.Replace(Constants.LeanSchedulerTypeName, Constants.ReactiveSchedulerTypeName) + .Replace(GeneratedTypeNames.ImmediateSequencer, "global::System.Reactive.Concurrency.Scheduler.Immediate"); + var runtime = ShiftNamespace(scheduled, LeanPrefix, features.RuntimeNamespaceMembers, matchWholePath: false); + return ShiftNamespace(runtime, PrimitivesPrefix, features.PrimitivesNamespaceMembers, matchWholePath: true); + } + + /// Inserts the flavour segment into every reference the shifted namespace declares. + /// The generated source. + /// The lean prefix the references to shift start with. + /// The names the shifted namespace declares. + /// + /// Whether a reference has to match a whole type path rather than its leading segment. A namespace split + /// across a shared assembly and a flavoured one offers only some of its types under the shifted name, so + /// the leading segment alone would shift the shared ones onto a namespace that does not declare them. + /// + /// The shifted source. + private static string ShiftNamespace( + string source, + string prefix, + EquatableArray shiftedNamespaceMembers, + bool matchWholePath) + { + var index = source.IndexOf(prefix, StringComparison.Ordinal); + if (index < 0) + { + return source; + } + + var builder = PooledBuilder.Rent(source.Length + (source.Length / GrowthDivisor)); + var copiedTo = 0; + + while (index >= 0) + { + var segmentStart = index + prefix.Length; + var segmentEnd = segmentStart; + while (segmentEnd < source.Length && IsIdentifierCharacter(source[segmentEnd])) + { + segmentEnd++; + } + + // A whole-path match walks on through the dots, so Advanced.SwitchMapSignal is told apart from + // Signals.MapSignal, which the shared core declares and which therefore keeps its name. + var pathEnd = matchWholePath ? ExtendThroughDots(source, segmentEnd) : segmentEnd; + + if (Declares(shiftedNamespaceMembers, source, segmentStart, pathEnd - segmentStart, matchWholePath) + || (matchWholePath && DeclaresAnyPrefix(shiftedNamespaceMembers, source, segmentStart, pathEnd))) + { + _ = builder.Append(source, copiedTo, segmentStart - copiedTo).Append(ReactiveSegment); + copiedTo = segmentStart; + } + + index = source.IndexOf(prefix, segmentEnd, StringComparison.Ordinal); + } + + return PooledBuilder.ToStringAndReturn(builder.Append(source, copiedTo, source.Length - copiedTo)); + } + + /// Determines whether the shifted namespace declares the name at the given span of the source. + /// The names the shifted namespace declares. + /// The generated source. + /// The index the name starts at. + /// The length of the name. + /// Whether metadata generic arity must match the reference. + /// when the name is one the shifted namespace declares. + private static bool Declares(EquatableArray shiftedNamespaceMembers, string source, int start, int length, bool matchArity) + { + for (var i = 0; i < shiftedNamespaceMembers.Length; i++) + { + var member = shiftedNamespaceMembers[i]; + var marker = matchArity ? member.IndexOf('`') : -1; + if ((marker < 0 ? member.Length : marker) == length && string.CompareOrdinal(member, 0, source, start, length) == 0 + && (!matchArity || TypeReferenceArity.Read(source, start + length) == TypeReferenceArity.FromMetadata(member, marker))) + { + return true; + } + } + + return false; + } + + /// Extends a reference through the dotted segments that follow it. + /// The generated source. + /// The index just past the first segment. + /// The index just past the last dotted segment. + private static int ExtendThroughDots(string source, int from) + { + var pathEnd = from; + while (pathEnd < source.Length && source[pathEnd] == '.') + { + var next = pathEnd + 1; + while (next < source.Length && IsIdentifierCharacter(source[next])) + { + next++; + } + + if (next == pathEnd + 1) + { + return pathEnd; + } + + pathEnd = next; + } + + return pathEnd; + } + + /// + /// Determines whether the shifted namespace declares any dotted prefix of the path at the given span, so a + /// reference that reaches past the type name into its members still matches the type. + /// + /// The type paths the shifted namespace declares. + /// The generated source. + /// The index the path starts at. + /// The index just past the end of the path. + /// when some prefix of the path is a declared type path. + private static bool DeclaresAnyPrefix( + EquatableArray shiftedNamespaceMembers, + string source, + int start, + int end) + { + for (var cut = end - 1; cut > start; cut--) + { + if (source[cut] != '.') + { + continue; + } + + if (Declares(shiftedNamespaceMembers, source, start, cut - start, true)) + { + return true; + } + } + + return false; + } + + /// Determines whether a character can appear inside a C# identifier. + /// The character to test. + /// when the character continues an identifier. + private static bool IsIdentifierCharacter(char character) => + char.IsLetterOrDigit(character) || character == '_'; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SignatureGrouping.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SignatureGrouping.cs new file mode 100644 index 00000000..8d1ece12 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SignatureGrouping.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Buckets call sites that share one generated overload. +internal static class SignatureGrouping +{ + /// Groups call sites by the key their overload signature writes, in the order each key is first seen. + /// The call-site model. + /// The group model one overload is generated from. + /// The detected call sites. + /// Writes the parts of a call site that decide its overload's signature. + /// Builds a group from its first call site and all of its call sites. + /// One group per distinct signature. + internal static List Group( + TInvocation[] invocations, + Action appendKey, + Func createGroup) + { + var groupMap = new Dictionary>(invocations.Length); + var order = new List>(invocations.Length); + var keySb = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + + for (var i = 0; i < invocations.Length; i++) + { + var inv = invocations[i]; + appendKey(keySb.Clear(), inv); + var key = keySb.ToString(); + + if (!groupMap.TryGetValue(key, out var list)) + { + list = []; + groupMap[key] = list; + order.Add(list); + } + + list.Add(inv); + } + + keySb.Return(); + + var result = new List(order.Count); + for (var i = 0; i < order.Count; i++) + { + var members = order[i]; + result.Add(createGroup(members[0], [.. members])); + } + + return result; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SourceWriterExtensions.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SourceWriterExtensions.cs new file mode 100644 index 00000000..41b37598 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/SourceWriterExtensions.cs @@ -0,0 +1,205 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// The C# constructs generated code is built from, each written through a . +/// +/// +/// Each member names one construct - a namespace, a type, a doc comment, a condition, a local - and writes its +/// fixed text and its braces, so an emitter says what it builds and the layout follows from the writer's level. +/// +/// +/// Constructs whose variable part is built from several values come in two halves: a Begin member writes +/// the opening keyword, the emitter appends the parts, and the closing member finishes the line. That keeps the +/// parts out of an intermediate string. Constructs taking one finished value are a single call. +/// +/// +internal static class SourceWriterExtensions +{ + /// The documentation comment prefix. + private const string DocCommentPrefix = "/// "; + + /// Writes C# constructs through a writer. + /// The writer the construct is written to. + extension(SourceWriter writer) + { + /// Writes the markers that open a generated file. + /// + /// Whether to write // <auto-generated/> and #pragma warning disable, which suppress + /// diagnostics in the consumer's build. + /// + /// Whether to write #nullable enable. + /// The writer. + internal SourceWriter FileHeader(bool emitGeneratedCodeMarkers, bool enableNullable) + { + if (emitGeneratedCodeMarkers) + { + _ = writer.Line("// ").Line("#pragma warning disable"); + } + + return enableNullable ? writer.Line("#nullable enable") : writer; + } + + /// Writes a using directive. + /// The imported namespace. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Using(string namespaceName) => writer.Append("using ").Append(namespaceName).Line(";"); + + /// Opens a block-scoped namespace, the only form C# 7.3 parses. + /// The namespace. + /// The writer, one level deeper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter OpenNamespace(string namespaceName) => + writer.Append("namespace ").Line(namespaceName).OpenBlock(); + + /// Opens a type declaration. + /// The declaration up to the body, such as internal static partial class X. + /// The writer, one level deeper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter OpenType(string declaration) => writer.Line(declaration).OpenBlock(); + + /// Writes a one-line summary doc comment. + /// The summary, already XML-safe. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Summary(string text) => + writer.Append("/// ").Append(text).Line(""); + + /// Opens a multi-line summary doc comment. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter OpenSummary() => writer.Line("/// "); + + /// Closes a multi-line summary doc comment. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter CloseSummary() => writer.Line("/// "); + + /// Writes one line of a doc comment. + /// The line, already XML-safe. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter DocLine(string text) => writer.Append(DocCommentPrefix).Line(text); + + /// Starts a line of a doc comment, for the caller to complete. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginDocLine() => writer.Append(DocCommentPrefix); + + /// Writes a line comment. + /// The comment. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Comment(string text) => writer.Append("// ").Line(text); + + /// Starts a line comment, for the caller to complete. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginComment() => writer.Append("// "); + + /// Writes an attribute on its own line. + /// The attribute, without brackets. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Attribute(string attribute) => writer.Append('[').Append(attribute).Line("]"); + + /// Starts a member signature's parameter list, one parameter per line one level deeper. + /// The writer, one level deeper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter OpenParameterList() => writer.Line("(").Indent(); + + /// Writes a parameter that is followed by another. + /// The parameter, such as string name. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Parameter(string declaration) => writer.Append(declaration).Line(","); + + /// Writes the last parameter and closes the list. + /// The parameter, such as int line = 0. + /// The writer, back at the signature's level. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter LastParameter(string declaration) => writer.Append(declaration).Line(")").Outdent(); + + /// Writes an if with a finished condition, and opens its block. + /// The condition. + /// The writer, inside the block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter If(string condition) => writer.Append("if (").Append(condition).CloseCondition(); + + /// Starts an if, for the caller to append the condition and . + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginIf() => writer.Append("if ("); + + /// Starts an else if, for the caller to append the condition and . + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginElseIf() => writer.Append("else if ("); + + /// Starts an if or else if, by position in a chain of branches. + /// The branch's position; the first opens with if. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginBranch(int index) => index == 0 ? writer.BeginIf() : writer.BeginElseIf(); + + /// Closes a condition and opens the block it guards. + /// The writer, inside the block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter CloseCondition() => writer.Line(")").OpenBlock(); + + /// Writes an else and opens its block. + /// The writer, inside the block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Else() => writer.Line("else").OpenBlock(); + + /// Writes a try and opens its block. + /// The writer, inside the block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Try() => writer.Line("try").OpenBlock(); + + /// Writes a finally and opens its block. + /// The writer, inside the block. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Finally() => writer.Line("finally").OpenBlock(); + + /// Writes a return of a finished expression. + /// The returned expression. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Return(string expression) => writer.Append("return ").Append(expression).Line(";"); + + /// Starts a return, for the caller to append the expression and end the statement. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginReturn() => writer.Append("return "); + + /// Writes a local declared with var. + /// The local's name. + /// Its initializer. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter Var(string name, string expression) => + writer.BeginVar(name).Append(expression).Line(";"); + + /// Starts a local declared with var, for the caller to append the initializer. + /// The local's name. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter BeginVar(string name) => writer.Append("var ").Append(name).Append(" = "); + + /// Ends a statement. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter EndStatement() => writer.Line(";"); + + /// Ends the line and moves one level deeper, for the continuation lines of an expression. + /// The writer, one level deeper. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal SourceWriter OpenContinuation() => writer.EndLine().Indent(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ToPropertyCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ToPropertyCodeGenerator.cs new file mode 100644 index 00000000..09704c21 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ToPropertyCodeGenerator.cs @@ -0,0 +1,745 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Generates the typed overloads, interceptors and helper factories for ToProperty invocations. +/// +/// +/// Each generated worker hands ObservableAsPropertyHelper<T>.Create the owning object and two lambdas that +/// receive it as an argument. The lambdas capture nothing, so the compiler caches each as one static delegate and a +/// helper costs no closure. The property name is a literal, and where the raise member takes event args, the args are +/// one static instance per property. +/// +/// +/// A raise the generated class cannot make - an event, or a protected method - is made by an accessor the generator +/// adds to the partial type itself. Those accessors are written after the dispatch class, in the type's own namespace. +/// +/// +internal static class ToPropertyCodeGenerator +{ + /// The generic helper type every worker constructs. + internal const string HelperType = GeneratedTypeNames.ObservableAsPropertyHelper; + + /// The event-args type a changed raise passes. + private const string ChangedEventArgsType = "global::System.ComponentModel.PropertyChangedEventArgs"; + + /// The event-args type a changing raise passes. + private const string ChangingEventArgsType = "global::System.ComponentModel.PropertyChangingEventArgs"; + + /// The attribute hiding a generated member from completion lists. + private const string EditorBrowsableNever = + "[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)]"; + + /// The name each raise lambda gives the owning object. + private const string OwnerParameter = "__owner"; + + /// The message a generated overload throws when no call site matches. + private const string NoDispatchMessage = + "No generated ToProperty dispatch matched this call site. Name the property with a lambda of the form x => x.Property or with a constant."; + + /// Generates the dispatch file for all ToProperty call sites. + /// All detected ToProperty invocations. + /// The consumer compilation's language-feature snapshot. + /// The generated source, or null when there are no invocations. + internal static string? Generate(ToPropertyInvocationInfo[] invocations, in LanguageFeatures features) + { + // A generic owner can only be claimed by an interceptor, since an overload would have to name it. + invocations = features.SupportsInterceptors ? invocations : WithoutOpenOwners(invocations); + if (invocations.Length == 0) + { + return null; + } + + var sb = SourceWriter.Rent(invocations.Length * CodeGeneratorHelpers.PerInvocationBufferCapacity); + CodeGeneratorHelpers.AppendExtensionClassHeader(sb, features); + + var groups = GroupByTypeSignature(invocations); + for (var g = 0; g < groups.Count; g++) + { + // A string name is matched on its value, and a selector on its text under expression dispatch; either way + // call sites that agree on the key reach the same body, so only the first of them needs a branch. An + // interceptor claims each call site by its location instead, so every one of them has to be kept, or the + // later ones fall through to the stub's runtime throw. + var group = groups[g]; + if (group.Shape.NamesPropertyByString && !features.SupportsInterceptors) + { + group = group with { Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites(group.Invocations, static x => x.PropertyName) }; + } + else if (features.CollapsesIndistinguishableCallSites) + { + group = group with { Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites(group.Invocations, static x => x.PropertyExpressionText) }; + } + + // Each call site's worker name is hashed once here and reused by the overload, the interceptors and the + // worker, rather than recomputed at each of them. + var sites = new Site[group.Invocations.Length]; + for (var i = 0; i < sites.Length; i++) + { + sites[i] = new(group.Invocations[i], WorkerSuffix(group.Invocations[i])); + } + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, group, sites, features); + } + else + { + GenerateConcreteOverload(sb, group, sites, features); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < sites.Length; i++) + { + GenerateWorker(sb, sites[i], group.ValueTypeDisplay, features.SupportsNullable); + } + } + + CodeGeneratorHelpers.AppendExtensionClassFooter(sb); + + AppendAccessors(sb, invocations); + + return sb.ToStringAndReturn(); + } + + /// Groups call sites by the overload they share: source type, value type and stub shape. + /// The detected call sites. + /// One group per generated overload. + internal static List GroupByTypeSignature(ToPropertyInvocationInfo[] invocations) + { + var groupMap = new Dictionary>(invocations.Length); + var order = new List(invocations.Length); + + for (var i = 0; i < invocations.Length; i++) + { + var inv = invocations[i]; + var key = new GroupKey(inv.SourceTypeFullName, inv.ValueTypeFullName, inv.Shape, inv.OpenOwnerConstraint); + if (!groupMap.TryGetValue(key, out var list)) + { + list = []; + groupMap[key] = list; + order.Add(key); + } + + list.Add(inv); + } + + var result = new List(order.Count); + for (var i = 0; i < order.Count; i++) + { + var key = order[i]; + result.Add(new(key.SourceTypeFullName, key.ValueTypeFullName, key.Shape, [.. groupMap[key]], key.OpenOwnerConstraint)); + } + + return result; + } + + /// Generates the concrete overload that dispatches a group's call sites to their workers. + /// The string builder to append to. + /// The group of call sites sharing one overload. + /// The group's call sites, each with its worker suffix. + /// The consumer compilation's language-feature snapshot. + internal static void GenerateConcreteOverload(SourceWriter sb, ToPropertyTypeGroup group, Site[] sites, in LanguageFeatures features) + { + var dispatchesOnExpressionText = features.SupportsCallerArgExpr; + var byName = group.Shape.NamesPropertyByString; + _ = sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for ToProperty of ").Append(group.SourceTypeFullName).Line(".") + .DocLine(DispatchSummary(byName, dispatchesOnExpressionText)) + .CloseSummary(); + + // A positional initial value of the property's type can also fill a caller-information parameter of the + // overload without one; the stub breaks that tie the same way, and so must the overloads beside it here. + if (!byName && group.Shape.InitialValue == ToPropertyInitialValueKind.Value && features.SupportsOverloadResolutionPriority) + { + _ = sb.Attribute("global::System.Runtime.CompilerServices.OverloadResolutionPriority(1)"); + } + + _ = AppendHelperType(sb.Append("public static "), group.ValueTypeDisplay).Append(" ToProperty").OpenParameterList(); + + AppendParameterList(sb, group, dispatchesOnExpressionText, features); + _ = sb.OpenBlock(); + + for (var i = 0; i < sites.Length; i++) + { + var inv = sites[i].Invocation; + if (byName) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(i), "property", inv.PropertyName).CloseCondition(); + } + else if (dispatchesOnExpressionText) + { + _ = CodeGeneratorHelpers.AppendExpressionTextTest(sb.BeginBranch(i), "propertyExpression", inv.PropertyExpressionText).CloseCondition(); + } + else + { + CodeGeneratorHelpers.AppendCallerInfoDispatchCondition( + sb, + i, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + } + + AppendWorkerCall(sb, group, sites[i].Suffix); + _ = sb.CloseBlock(); + } + + _ = sb.Append("throw new ").Append(GeneratedTypeNames.InvalidOperationException).Append('(') + .OpenContinuation() + .AppendQuoted(NoDispatchMessage).Line(");") + .Outdent() + .CloseBlock(); + } + + /// Generates the worker that creates the helper for one call site. + /// The writer, at the class's member level. + /// The call site and its worker suffix. + /// The value type as the group declares it. + /// Whether the consumer compiles with nullable reference types. + internal static void GenerateWorker(SourceWriter sb, in Site site, string valueType, bool supportsNullable) + { + var (inv, suffix) = site; + var raise = inv.Raise; + + // Event args are cached once per property, in the generated class for a raise made from here; an + // accessor inside the type caches its own. + if (raise.Accessor is null) + { + AppendArgsField(sb, raise.Changed, isChanging: false, suffix, inv.PropertyName); + if (raise.Changing is { } changingCall) + { + AppendArgsField(sb, changingCall, isChanging: true, suffix, inv.PropertyName); + } + } + + _ = AppendTypeParameters(AppendHelperType(sb.Append("private static "), valueType).Append(" __ToProperty_").Append(suffix), inv.OpenOwnerConstraint).OpenParameterList() + .Append(GeneratedTypeNames.IObservable).Append('<').Append(valueType).Line("> target,") + .Append(inv.SourceTypeFullName).Line(" source,"); + _ = AppendInitialValueParameter(sb, inv.Shape.InitialValue, valueType).Line(",") + .Line("bool deferSubscription,") + .Append(GeneratedTypeNames.ISequencer).Append(supportsNullable ? "?" : string.Empty).Line(" scheduler)") + .Outdent(); + AppendOwnerConstraint(sb, inv.OpenOwnerConstraint); + _ = sb.OpenBlock() + .BeginComment().Append("ToProperty: ").Append(inv.SourceTypeFullName).Append('.').Append(inv.PropertyName) + .Append(" raised through ").Line(raise.Mechanism); + _ = AppendHelperType(sb.BeginReturn(), valueType).Append(".Create(") + .OpenContinuation() + .Line("target,") + .Append("new ").Append(GeneratedTypeNames.ObservablePropertyTarget).Append("(source, ").AppendQuoted(inv.PropertyName).Line("),"); + + AppendRaiseLambda(sb, inv, raise.Changed, isChanging: false, suffix); + _ = sb.Line(","); + if (raise.Changing is { } changing) + { + AppendRaiseLambda(sb, inv, changing, isChanging: true, suffix); + _ = sb.Line(","); + } + else + { + _ = sb.Line("null,"); + } + + _ = sb.Append(inv.Shape.InitialValue == ToPropertyInitialValueKind.Factory ? "getInitialValue" : "initialValue").Line(",") + .Line("deferSubscription,") + .Line("scheduler);") + .Outdent() + .CloseBlock() + .BlankLine(); + } + + /// Emits one interceptor per worker, claiming every call site that reaches it. + /// The writer, at the class's member level. + /// The group of call sites being claimed. + /// The group's call sites, each with its worker suffix. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors(SourceWriter sb, ToPropertyTypeGroup group, Site[] sites, in LanguageFeatures features) + { + foreach (var entry in InterceptorEmitter.GroupCallSites(sites, static x => x.Invocation.Interceptor, static x => x.Suffix)) + { + foreach (var callSite in entry.Value) + { + InterceptorEmitter.AppendAttribute(sb, callSite.Invocation.Interceptor); + } + + _ = AppendHelperType(sb.Append("internal static "), group.ValueTypeDisplay).Append(" __Intercept_ToProperty_").Append(entry.Key); + _ = AppendTypeParameters(sb, group.OpenOwnerConstraint).OpenParameterList(); + AppendParameterList(sb, group, features.SupportsCallerArgExpr, features); + AppendOwnerConstraint(sb, group.OpenOwnerConstraint); + + _ = sb.Indent().Append("=> "); + if (group.Shape.HasResult) + { + _ = sb.Append("result = "); + } + + _ = sb.Append("__ToProperty_").Append(entry.Key).Append('('); + _ = AppendWorkerArguments(sb, group).Line(");").Outdent().BlankLine(); + } + } + + /// Writes the stub's parameter list, which the overload and the interceptor both have to match exactly. + /// The writer, inside the parameter list. + /// The group whose types and shape the parameters are written from. + /// Whether the captured expression text identifies a call site. + /// The consumer compilation's language-feature snapshot. + /// + /// The property selector is a Func, not an expression tree. A lambda converts to either, and the compiler + /// ranks the two conversions equally, so the overload still wins; but converting it to a delegate costs nothing + /// for a lambda that captures nothing, where building an expression tree allocates and reflects at every call. + /// + private static void AppendParameterList( + SourceWriter sb, + ToPropertyTypeGroup group, + bool dispatchesOnExpressionText, + in LanguageFeatures features) + { + var shape = group.Shape; + _ = sb.Append("this ").Append(GeneratedTypeNames.IObservable).Append('<').Append(group.ValueTypeDisplay).Line("> target,") + .Append(group.SourceTypeFullName).Append(" source"); + _ = NextParameter(sb); + if (shape.NamesPropertyByString) + { + _ = sb.Append("string property"); + } + else + { + _ = sb.Append(GeneratedTypeNames.Func).Append('<').Append(group.SourceTypeFullName).Append(", ").Append(group.ValueTypeDisplay).Append("> property"); + } + + if (shape.HasResult) + { + _ = AppendHelperType(NextParameter(sb).Append("out "), group.ValueTypeDisplay).Append(" result"); + } + + if (shape.InitialValue != ToPropertyInitialValueKind.None) + { + _ = AppendInitialValueParameter(NextParameter(sb), shape.InitialValue, group.ValueTypeDisplay); + } + + if (shape.HasDeferSubscription) + { + _ = NextParameter(sb).Append("bool deferSubscription"); + } + + if (shape.HasScheduler) + { + _ = NextParameter(sb).Append(GeneratedTypeNames.ISequencer).Append(features.SupportsNullable ? "?" : string.Empty).Append(" scheduler"); + } + + // The stub for a string name declares no caller information, so its list closes here; every other list + // continues into the caller-information parameters. + if (shape.NamesPropertyByString) + { + _ = sb.Line(")").Outdent(); + return; + } + + _ = sb.Line(","); + if (dispatchesOnExpressionText || features.StubHasExpressionParameters) + { + CodeGeneratorHelpers.AppendExpressionParameter(sb, "property", "propertyExpression", dispatchesOnExpressionText); + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Appends the arguments an overload forwards to its worker, filling the ones its shape lacks. + /// The string builder to append to. + /// The group whose shape decides the arguments. + /// The builder, for chaining. + private static SourceWriter AppendWorkerArguments(SourceWriter sb, ToPropertyTypeGroup group) + { + var shape = group.Shape; + _ = sb.Append("target, source, "); + _ = shape.InitialValue switch + { + ToPropertyInitialValueKind.Value => sb.Append("initialValue"), + ToPropertyInitialValueKind.Factory => sb.Append("getInitialValue"), + _ => sb.Append("default(").Append(group.ValueTypeDisplay).Append(')'), + }; + return sb.Append(shape.HasDeferSubscription ? ", deferSubscription" : ", false") + .Append(shape.HasScheduler ? ", scheduler" : ", null"); + } + + /// Appends the call a matched branch hands the helper to, and its return. + /// The string builder to append to. + /// The group, whose shape decides the arguments and whether result is assigned. + /// The worker's stable suffix. + private static void AppendWorkerCall(SourceWriter sb, ToPropertyTypeGroup group, string suffix) + { + _ = sb.Append(group.Shape.HasResult ? "result = __ToProperty_" : "return __ToProperty_").Append(suffix).Append('('); + _ = AppendWorkerArguments(sb, group).Line(");"); + if (group.Shape.HasResult) + { + _ = sb.Return("result"); + } + } + + /// Appends the non-capturing lambda that raises one notification for the owning object. + /// The string builder to append to. + /// The call site. + /// The raise call. + /// Whether this raises the before-change notification. + /// The worker's stable suffix, which names its cached event args. + private static void AppendRaiseLambda(SourceWriter sb, ToPropertyInvocationInfo inv, in PropertyRaiseCall call, bool isChanging, string suffix) + { + _ = sb.Append('(').Append(OwnerParameter).Append(", __value) => "); + + if (inv.Raise.Accessor is not null) + { + _ = AppendOwnerCast(sb, inv.SourceTypeFullName).Append('.'); + _ = AppendAccessorName(sb, inv.PropertyName, isChanging).Append("()"); + return; + } + + AppendRaiseCall(sb, call, inv.SourceTypeFullName, inv.PropertyName, isChanging, suffix); + } + + /// Appends the expression that raises one notification. + /// The string builder to append to. + /// The raise call. + /// The type the owner parameter is cast to, or null when the receiver is this. + /// The property name. + /// Whether this raises the before-change notification. + /// What names the cached event-args field: the worker suffix, or the property name in an accessor. + private static void AppendRaiseCall(SourceWriter sb, in PropertyRaiseCall call, string? castType, string propertyName, bool isChanging, string argsKey) + { + switch (call.Kind) + { + case PropertyRaiseCallKind.StaticMethod: + { + _ = sb.Append(call.Owner).Append('.').Append(call.Member).Append('('); + _ = AppendReceiver(sb, castType).Append(", "); + break; + } + + case PropertyRaiseCallKind.EventInvoke: + { + _ = AppendReceiver(sb, castType).Append('.').Append(call.Member).Append("?.Invoke("); + _ = AppendReceiver(sb, castType).Append(", "); + break; + } + + default: + { + _ = AppendReceiver(sb, castType).Append('.').Append(call.Member).Append('('); + break; + } + } + + if (call.Argument == PropertyRaiseArgumentKind.EventArgs) + { + _ = AppendArgsFieldName(sb, isChanging, argsKey); + } + else + { + _ = sb.AppendQuoted(propertyName); + } + + _ = sb.Append(')'); + } + + /// Appends the receiver of a raise call: the cast owner parameter, or this. + /// The string builder to append to. + /// The type the owner parameter is cast to, or null for this. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendReceiver(SourceWriter sb, string? castType) => + castType is null ? sb.Append("this") : AppendOwnerCast(sb, castType); + + /// Appends the owner parameter cast to the source type. + /// The string builder to append to. + /// The fully qualified source type. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendOwnerCast(SourceWriter sb, string sourceType) => + sb.Append("((").Append(sourceType).Append(')').Append(OwnerParameter).Append(')'); + + /// Writes the static field caching one property's event args, when the raise call passes them. + /// The writer, at the level of the type's members. + /// The raise call. + /// Whether the field holds before-change event args. + /// What names the field: the worker suffix, or the property name in an accessor. + /// The property name. + private static void AppendArgsField(SourceWriter sb, in PropertyRaiseCall call, bool isChanging, string argsKey, string propertyName) + { + if (call.Argument != PropertyRaiseArgumentKind.EventArgs) + { + return; + } + + var argsType = isChanging ? ChangingEventArgsType : ChangedEventArgsType; + _ = AppendArgsFieldName(sb.Append("private static readonly ").Append(argsType).Append(' '), isChanging, argsKey) + .Append(" = new ").Append(argsType).Append('(').AppendQuoted(propertyName).Line(");") + .BlankLine(); + } + + /// Appends the accessors raise calls reach when they can only run inside the type, one per type and property. + /// The string builder to append to. + /// All call sites. + private static void AppendAccessors(SourceWriter sb, ToPropertyInvocationInfo[] invocations) + { + // Most compilations raise without an accessor, so the collections below are only built when one is needed. + if (!NeedsAccessors(invocations)) + { + return; + } + + var seen = new HashSet<(PartialTypeDeclaration Declaration, string Property)>(); + var byDeclaration = new Dictionary>(); + var order = new List(); + + for (var i = 0; i < invocations.Length; i++) + { + var inv = invocations[i]; + if (inv.Raise.Accessor is not { } declaration || !seen.Add((declaration, inv.PropertyName))) + { + continue; + } + + if (!byDeclaration.TryGetValue(declaration, out var list)) + { + list = []; + byDeclaration[declaration] = list; + order.Add(declaration); + } + + list.Add(inv); + } + + for (var d = 0; d < order.Count; d++) + { + AppendAccessorDeclaration(sb, order[d], byDeclaration[order[d]]); + } + } + + /// Determines whether any call site raises through an accessor added to its type. + /// All call sites. + /// when at least one accessor has to be written. + private static bool NeedsAccessors(ToPropertyInvocationInfo[] invocations) + { + for (var i = 0; i < invocations.Length; i++) + { + if (invocations[i].Raise.Accessor is not null) + { + return true; + } + } + + return false; + } + + /// Writes one partial declaration holding the accessors for the properties it backs. + /// The writer, at the start of a line outside any namespace. + /// The partial declaration. + /// One call site per property. + private static void AppendAccessorDeclaration(SourceWriter sb, PartialTypeDeclaration declaration, List invocations) + { + CodeGeneratorHelpers.OpenPartialDeclaration(sb.BlankLine(), declaration); + + for (var i = 0; i < invocations.Count; i++) + { + var inv = invocations[i]; + if (i > 0) + { + _ = sb.BlankLine(); + } + + AppendAccessor(sb, inv.Raise.Changed, inv.PropertyName, isChanging: false); + if (inv.Raise.Changing is not { } changing) + { + continue; + } + + _ = sb.BlankLine(); + AppendAccessor(sb, changing, inv.PropertyName, isChanging: true); + } + + CodeGeneratorHelpers.ClosePartialDeclaration(sb, declaration); + } + + /// Writes one accessor and the event args it caches. + /// The writer, at the level of the type's members. + /// The raise call the accessor makes. + /// The property name. + /// Whether the accessor raises the before-change notification. + private static void AppendAccessor(SourceWriter sb, in PropertyRaiseCall call, string propertyName, bool isChanging) + { + AppendArgsField(sb, call, isChanging, propertyName, propertyName); + + _ = AppendAccessorName(sb.Line(EditorBrowsableNever).Append("internal void "), propertyName, isChanging).Append("() => "); + AppendRaiseCall(sb, call, null, propertyName, isChanging, propertyName); + _ = sb.EndStatement(); + } + + /// Appends the name of the accessor that raises one notification for a property. + /// The string builder to append to. + /// The property name. + /// Whether the accessor raises the before-change notification. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendAccessorName(SourceWriter sb, string propertyName, bool isChanging) => + sb.Append(isChanging ? "__ToPropertyRaiseChanging_" : "__ToPropertyRaiseChanged_").Append(propertyName); + + /// Appends the name of a cached event-args field. + /// The string builder to append to. + /// Whether the field holds before-change event args. + /// The worker suffix, or the property name in an accessor. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendArgsFieldName(SourceWriter sb, bool isChanging, string argsKey) => + sb.Append(isChanging ? "__ToPropertyChangingArgs_" : "__ToPropertyChangedArgs_").Append(argsKey); + + /// Drops the call sites whose owner is built from the caller's type parameters. + /// The detected call sites. + /// The call sites an overload can serve. + private static ToPropertyInvocationInfo[] WithoutOpenOwners(ToPropertyInvocationInfo[] invocations) + { + if (invocations.Length == 0) + { + return invocations; + } + + var kept = new List(invocations.Length); + for (var i = 0; i < invocations.Length; i++) + { + if (invocations[i].OpenOwnerConstraint is null) + { + kept.Add(invocations[i]); + } + } + + return kept.ToArray(); + } + + /// Appends the type parameters of a member that is generic over an owner built from the caller's type parameters. + /// The string builder to append to. + /// The owner's constraint, or null when the member is not generic. + /// The builder, for chaining. + private static SourceWriter AppendTypeParameters(SourceWriter sb, string? constraint) => + constraint is null + ? sb + : sb.Append('<').Append(ToPropertyExtractor.OpenOwnerName).Append(", ").Append(ToPropertyExtractor.OpenValueName).Append('>'); + + /// Appends the constraint clause of a member that is generic over such an owner. + /// The writer, after the closing parenthesis of the parameter list. + /// The owner's constraint, or null when the member is not generic. + private static void AppendOwnerConstraint(SourceWriter sb, string? constraint) + { + if (constraint is not null) + { + _ = sb.Append("where ").Append(ToPropertyExtractor.OpenOwnerName).Append(" : class, ").Line(constraint); + } + } + + /// Ends the previous parameter, so the next one starts on its own line. + /// The string builder to append to. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter NextParameter(SourceWriter sb) => sb.Line(","); + + /// Appends the closed helper type for a value type. + /// The string builder to append to. + /// The fully qualified value type. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendHelperType(SourceWriter sb, string valueType) => + sb.Append(HelperType).Append('<').Append(valueType).Append('>'); + + /// Appends the worker's initial-value parameter declaration. + /// The string builder to append to. + /// How the call site supplies the initial value. + /// The fully qualified value type. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendInitialValueParameter(SourceWriter sb, ToPropertyInitialValueKind kind, string valueType) => + kind == ToPropertyInitialValueKind.Factory + ? sb.Append(GeneratedTypeNames.Func).Append('<').Append(valueType).Append("> getInitialValue") + : sb.Append(valueType).Append(" initialValue"); + + /// Names the worker a call site reaches. + /// The call site. + /// The stable method-name suffix. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string WorkerSuffix(ToPropertyInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.PropertyExpressionText); + + /// Describes how a concrete overload tells its call sites apart. + /// Whether the overload takes the property's name as a string. + /// Whether a selector's captured text identifies a call site. + /// The summary line. + private static string DispatchSummary(bool byName, bool dispatchesOnExpressionText) + { + if (byName) + { + return "Dispatches on the property name."; + } + + return dispatchesOnExpressionText + ? "Uses CallerArgumentExpression for dispatch." + : "Uses CallerFilePath + CallerLineNumber for dispatch."; + } + + /// A call site with its worker suffix, hashed once. + /// The call site. + /// The stable suffix naming its worker. + internal readonly record struct Site(ToPropertyInvocationInfo Invocation, string Suffix); + + /// The key call sites sharing one overload group under. + /// The fully qualified source type. + /// The fully qualified value type. + /// The stub overload shape. + /// The interface an owner built from the caller's type parameters is constrained to, or null. + private readonly record struct GroupKey(string SourceTypeFullName, string ValueTypeFullName, ToPropertyOverloadShape Shape, string? OpenOwnerConstraint); + + /// Call sites sharing one generated overload. + /// The fully qualified source type. + /// The fully qualified value type. + /// The stub overload shape. + /// The call sites. + /// The interface an owner built from the caller's type parameters is constrained to, or null. + /// + /// Call sites that infer string and string? share one group, since overloads differing only by a + /// nullable annotation would collide. The group is written with the annotated name when every call site in it + /// agrees, which is the usual case of one call site per property, and without it otherwise. + /// + internal sealed record ToPropertyTypeGroup( + string SourceTypeFullName, + string ValueTypeFullName, + ToPropertyOverloadShape Shape, + ToPropertyInvocationInfo[] Invocations, + string? OpenOwnerConstraint = null) + { + /// Gets the value type as the generated members declare it. + public string ValueTypeDisplay { get; } = AgreedDisplay(ValueTypeFullName, Invocations); + + /// Picks the annotated value type when every call site inferred the same one. + /// The value type without annotations. + /// The group's call sites. + /// The annotated name all call sites share, or the plain name. + private static string AgreedDisplay(string plain, ToPropertyInvocationInfo[] invocations) + { + var display = invocations.Length == 0 ? plain : invocations[0].ValueTypeDisplay; + for (var i = 1; i < invocations.Length; i++) + { + if (!string.Equals(invocations[i].ValueTypeDisplay, display, StringComparison.Ordinal)) + { + return plain; + } + } + + return display; + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/TypeReferenceArity.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/TypeReferenceArity.cs new file mode 100644 index 00000000..b97c47aa --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/TypeReferenceArity.cs @@ -0,0 +1,92 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// Distinguishes generic type references when runtime flavours share a simple type name. +internal static class TypeReferenceArity +{ + /// The numeric base of metadata arity suffixes. + private const int DecimalBase = 10; + + /// Reads a CLR metadata name's generic arity without allocating a substring. + /// The metadata name. + /// The backtick position, or minus one for a non-generic type. + /// The declared arity. + internal static int FromMetadata(string name, int marker) + { + if (marker < 0) + { + return 0; + } + + var arity = 0; + for (var i = marker + 1; i < name.Length; i++) + { + arity = (arity * DecimalBase) + name[i] - '0'; + } + + return arity; + } + + /// Counts the type arguments immediately following a generated type name. + /// The generated C#. + /// The position after the type name. + /// The reference's arity, or zero for a non-generic reference. + internal static int Read(string source, int start) => + start < source.Length && source[start] == '<' ? ReadArguments(source, start) : 0; + + /// Ignores commas within nested generics, tuple elements and array ranks. + /// The generated C#. + /// The opening angle bracket. + /// The number of outer type arguments. + private static int ReadArguments(string source, int start) + { + var depth = 0; + var groups = 0; + var count = 1; + for (var i = start; i < source.Length; i++) + { + switch (source[i]) + { + case '<': + { + depth++; + break; + } + + case '>': + { + depth--; + if (depth == 0) + { + return count; + } + + break; + } + + case '(' or '[': + { + groups++; + break; + } + + case ')' or ']': + { + groups--; + break; + } + + case ',' when depth == 1 && groups == 0: + { + count++; + break; + } + } + } + + return 0; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyCodeGenerator.cs new file mode 100644 index 00000000..e05f6b22 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyCodeGenerator.cs @@ -0,0 +1,385 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads for WhenAny invocations. +/// Unlike WhenChanged/WhenAnyValue, WhenAny wraps each observed value in an +/// ObservedChange<TSender, T> before passing it to the user's selector function. +/// +internal static class WhenAnyCodeGenerator +{ + /// What the generated overload names its selector parameters before their index. + private const string SelectorParameterPrefix = "property"; + + /// Generates concrete typed overloads and observation methods for WhenAny invocations. + /// All detected WhenAny invocations. + /// All detected class binding info for type mechanism lookup. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + InvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) => + CodeGeneratorHelpers.GenerateDispatchFile( + InterceptorEmitter.ClaimableBy(invocations, static x => x.GenericResult, features), + features, + ObservationCodeGenerator.GroupByTypeSignature, + (sb, group, snapshot) => EmitGroup(sb, group, allClasses, snapshot)); + + /// + /// Generates a concrete typed extension method overload with dispatch logic for WhenAny. + /// The selector parameter takes IObservedChange<TSender, T> values. + /// + /// The writer, at the class's member level. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateConcreteOverload( + SourceWriter sb, + ObservationCodeGenerator.TypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var first = group.First; + var propCount = first.PropertyPaths.Length; + + _ = sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for WhenAny on ").Append(first.SourceTypeFullName).Line(".") + .CloseSummary() + .Append($"public static {GeneratedTypeNames.IObservable}<").Append(first.ReturnTypeFullName).Append("> WhenAny").OpenParameterList(); + + AppendParameterList(sb, first, supportsCallerArgExpr, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + + EmitDispatchTable(sb, group, supportsCallerArgExpr, propCount); + + GenerateRuntimeFallback(sb, first, propCount); + + _ = sb.CloseBlock(); + } + + /// Ends the overload where the stub it displaces would have ended: at the runtime engine. + /// The writer, inside the overload's body. + /// The invocation whose types the whole group shares. + /// The number of observed properties. + /// + /// WhenAny states its projected type before the observed ones - WhenAny<TSender, TRet, T1...> - + /// unlike the observation APIs, which put the projection last. + /// + internal static void GenerateRuntimeFallback(SourceWriter sb, InvocationInfo first, int propCount) + { + var typeArguments = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + var arguments = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + + _ = typeArguments.Append(first.SourceTypeFullName).Append(", ").Append(first.ReturnTypeFullName); + _ = arguments.Append("objectToMonitor"); + + for (var i = 0; i < propCount; i++) + { + var path = first.PropertyPaths[i]; + _ = typeArguments.Append(", ").Append(path[path.Length - 1].PropertyTypeFullName); + _ = arguments.Append(", property").Append(i + 1); + } + + _ = arguments.Append(", selector"); + + CodeGeneratorHelpers.AppendStubFallbackCall( + sb, + Constants.WhenAnyMethodName, + typeArguments.ToStringAndReturn(), + arguments.ToStringAndReturn()); + } + + /// + /// Generates an observation method for a single WhenAny invocation. + /// The method observes property changes and wraps values in ObservedChange before applying the selector. + /// + /// The writer, at the class's member level. + /// The invocation info. + /// The class binding info for the source type, or null. + /// The stable method suffix. + internal static void GenerateObservationMethod( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo, + string suffix) + { + _ = sb.Append($"private static {GeneratedTypeNames.IObservable}<").Append(inv.ReturnTypeFullName).Append("> __WhenAny_").Append(suffix); + InterceptorEmitter.AppendResultTypeParameter(sb, inv.GenericResult); + _ = sb.Append('(').Append(inv.SourceTypeFullName).Append(" obj, ").Append(GetWhenAnySelectorType(inv)).Line(" selector)") + .OpenBlock(); + + if (inv.PropertyPaths.Length == 1) + { + GenerateSinglePropertyWhenAny(sb, inv, classInfo); + } + else + { + GenerateMultiPropertyWhenAny(sb, inv, classInfo); + } + + _ = sb.CloseBlock() + .BlankLine(); + } + + /// Generates single-property WhenAny observation: observe property, wrap in ObservedChange, apply selector. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + internal static void GenerateSinglePropertyWhenAny( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo) + { + var path = inv.PropertyPaths[0]; + var leafType = path[path.Length - 1].PropertyTypeFullName; + + // Emit the property observable into a local variable + ObservationCodeGenerator.GenerateObservedPropertyVariable(sb, path, classInfo, false, "__propObs0"); + + // Wrap in ObservedChange and apply selector + _ = sb.BlankLine() + .BeginReturn().Append("new ").Append(GeneratedTypeNames.MapSignal).Append('<') + .Append(leafType).Append(", ").Append(inv.ReturnTypeFullName).Append(">(__propObs0,") + .OpenContinuation() + .Append($"value => selector(new {GeneratedTypeNames.ObservedChange}<").Append(inv.SourceTypeFullName).Append(", ") + .Append(leafType).Line(">(obj, null, value)));") + .Outdent(); + } + + /// + /// Generates multi-property WhenAny observation: observe each property, wrap each in ObservedChange, + /// CombineLatest and apply selector. + /// + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + internal static void GenerateMultiPropertyWhenAny( + SourceWriter sb, + InvocationInfo inv, + ClassBindingInfo? classInfo) + { + // Pre-declare an observable variable for each property path + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + ObservationCodeGenerator.GenerateObservedPropertyVariable(sb, inv.PropertyPaths[i], classInfo, false, $"__propObs{i}"); + _ = sb.BlankLine(); + } + + ObservationCodeGenerator.AppendCombineLatestConstruction(sb, inv.PropertyPaths, inv.ReturnTypeFullName); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + _ = sb.Append("__propObs").Append(i).Line(","); + } + + // Selector lambda: wrap each value in ObservedChange + _ = sb.Append('('); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + if (i > 0) + { + _ = sb.Append(", "); + } + + _ = sb.Append('v').Append(i + 1); + } + + _ = sb.Append(") => selector("); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + if (i > 0) + { + _ = sb.Append(", "); + } + + var path = inv.PropertyPaths[i]; + _ = sb.Append($"new {GeneratedTypeNames.ObservedChange}<").Append(inv.SourceTypeFullName).Append(", ") + .Append(path[path.Length - 1].PropertyTypeFullName).Append(">(obj, null, v").Append(i + 1).Append(')'); + } + + _ = sb.Line("));").Outdent(); + } + + /// + /// Gets the Func type signature for a WhenAny selector parameter. + /// The selector takes IObservedChange<TSender, T> for each property and returns TRet. + /// + /// The invocation info. + /// A fully qualified Func type string. + internal static string GetWhenAnySelectorType(InvocationInfo inv) + { + var sb = new PooledStringBuilder().Append($"{GeneratedTypeNames.Func}<"); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + var path = inv.PropertyPaths[i]; + var leafType = path[path.Length - 1].PropertyTypeFullName; + _ = sb.Append($"{GeneratedTypeNames.IObservedChange}<").Append(inv.SourceTypeFullName).Append(", ").Append(leafType).Append(">, "); + } + + _ = sb.Append(inv.ReturnTypeFullName).Append('>'); + return sb.ToStringAndReturn(); + } + + /// Emits the overload and the observation methods for one group of call sites. + /// The writer, at the class's member level. + /// The group of call sites that share an overload. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + private static void EmitGroup( + SourceWriter sb, + ObservationCodeGenerator.TypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) + { + var emitted = features.CollapsesIndistinguishableCallSites + ? group with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + group.Invocations, + static x => x.ExpressionTexts), + } + : group; + + if (features.SupportsInterceptors) + { + InterceptorEmitter.GenerateInterceptors( + sb, + emitted, + Constants.WhenAnyMethodName, + ObservationMethodSuffix, + in features, + static (SourceWriter builder, InvocationInfo first, in LanguageFeatures snapshot) => AppendParameterList( + builder, + first, + snapshot.SupportsCallerArgExpr, + snapshot.SupportsNullable, + snapshot.StubHasExpressionParameters)); + } + else + { + GenerateConcreteOverload( + sb, + emitted, + features.SupportsCallerArgExpr, + features.SupportsNullable, + features.StubHasExpressionParameters); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < emitted.Invocations.Length; i++) + { + var inv = emitted.Invocations[i]; + GenerateObservationMethod( + sb, + inv, + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.SourceTypeFullName, inv.PropertyPaths[0]), + ObservationMethodSuffix(inv)); + } + } + + /// Writes the parameters a WhenAny member declares, closing the list. + /// The writer, inside the parameter list. + /// The invocation whose types the parameters are written from. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters. + /// + /// One list serves the overload and the interceptor, because both have to be the stub's signature. WhenAny + /// always projects, so the projection is unconditional rather than optional. + /// + private static void AppendParameterList( + SourceWriter sb, + InvocationInfo first, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var propCount = first.PropertyPaths.Length; + + _ = sb.Append("this ").Append(first.SourceTypeFullName).Line(" objectToMonitor,"); + + for (var i = 0; i < propCount; i++) + { + var type = CodeGeneratorHelpers.NullableSelectorLeafType(first.PropertyPaths[i], supportsNullable); + _ = sb.Append(GeneratedSyntax.SelectorTypeOpen).Append(first.SourceTypeFullName).Append(", ") + .Append(type).Append(">> ").Append(SelectorParameterPrefix).Append(i + 1).Line(","); + } + + _ = sb.Append(GetWhenAnySelectorType(first)).Line(" selector,"); + + if (stubHasExpressionParameters) + { + for (var i = 0; i < propCount; i++) + { + CodeGeneratorHelpers.AppendExpressionParameter( + sb, + $"property{i + 1}", + $"property{i + 1}Expression", + supportsCallerArgExpr); + } + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Emits the if/else-if dispatch table that routes each matched WhenAny invocation to its generated method. + /// The writer, inside the overload's body. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// The number of property expressions. + private static void EmitDispatchTable( + SourceWriter sb, + ObservationCodeGenerator.TypeGroup group, + bool supportsCallerArgExpr, + int propCount) + { + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + if (supportsCallerArgExpr) + { + CodeGeneratorHelpers.AppendSelectorTextCondition( + sb, + i, + SelectorParameterPrefix, + inv.ExpressionTexts, + propCount); + } + else + { + CodeGeneratorHelpers.AppendInlineCallerInfoCondition( + sb, + i, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + } + + _ = sb.BeginReturn().Append("__WhenAny_").Append(ObservationMethodSuffix(inv)) + .Line("(objectToMonitor, selector);") + .CloseBlock(); + } + } + + /// Names the generated observation method a call site dispatches to. + /// The call site. + /// The stable suffix its method is named with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string ObservationMethodSuffix(InvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.ExpressionTexts); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyObservableCodeGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyObservableCodeGenerator.cs new file mode 100644 index 00000000..2a98c1a9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyObservableCodeGenerator.cs @@ -0,0 +1,499 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +using static ReactiveUI.Binding.SourceGenerators.CodeGeneration.GeneratedTypeNames; + +namespace ReactiveUI.Binding.SourceGenerators.CodeGeneration; + +/// +/// Generates concrete typed extension method overloads for WhenAnyObservable invocations. +/// Generates Switch (single), Merge (multi same-type), and CombineLatest (multi with selector) +/// patterns for observing properties that are themselves observables. +/// +internal static class WhenAnyObservableCodeGenerator +{ + /// What the generated overload names its selector parameters before their index. + private const string SelectorParameterPrefix = "obs"; + + /// The base name used to build emitted local variable identifiers for the raw observable property. + private const string ObsPropertyVarName = "__obsProperty"; + + /// Names the local holding one property's observable switched to its latest value, before its index. + private const string SwitchedVarName = "__switched"; + + /// The selector forwarded after the observed properties, where the overload takes one. + private const string SelectorArgument = ", selector"; + + /// Generates concrete typed overloads and observation methods for WhenAnyObservable invocations. + /// All detected WhenAnyObservable invocations. + /// All detected class binding info for type mechanism lookup. + /// The consumer compilation's C# language-feature snapshot (dispatch strategy and nullable support). + /// Generated source code string, or null if no invocations. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? Generate( + WhenAnyObservableInvocationInfo[] invocations, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) => + CodeGeneratorHelpers.GenerateDispatchFile( + InterceptorEmitter.ClaimableBy(invocations, static x => x.GenericResult, features), + features, + GroupByTypeSignature, + (sb, group, snapshot) => EmitGroup(sb, group, allClasses, snapshot)); + + /// Generates a concrete typed extension method overload with dispatch logic for WhenAnyObservable. + /// The writer, at the class's member level. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters this overload has to match. + internal static void GenerateConcreteOverload( + SourceWriter sb, + TypeGroup group, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var first = group.First; + var propCount = first.PropertyPaths.Length; + var hasSelector = first.HasSelector; + + _ = sb.OpenSummary() + .BeginDocLine().Append("Concrete typed overload for WhenAnyObservable on ").Append(first.SourceTypeFullName).Line(".") + .CloseSummary() + .Append($"public static {IObservable}<").Append(first.ReturnTypeFullName).Append("> WhenAnyObservable").OpenParameterList(); + + AppendParameterList(sb, first, supportsCallerArgExpr, supportsNullable, stubHasExpressionParameters); + + _ = sb.OpenBlock(); + + EmitDispatchTable(sb, group, supportsCallerArgExpr, propCount, hasSelector); + + GenerateRuntimeFallback(sb, propCount, hasSelector); + + _ = sb.CloseBlock(); + } + + /// Generates an observation method for a single WhenAnyObservable invocation. + /// The writer, at the class's member level. + /// The invocation info. + /// The class binding info for the source type, or null. + /// The stable method suffix. + internal static void GenerateObservationMethod( + SourceWriter sb, + WhenAnyObservableInvocationInfo inv, + ClassBindingInfo? classInfo, + string suffix) + { + _ = sb.Append($"private static {IObservable}<").Append(inv.ReturnTypeFullName).Append("> __WhenAnyObservable_") + .Append(suffix); + InterceptorEmitter.AppendResultTypeParameter(sb, inv.GenericResult); + _ = sb.Append('(').Append(inv.SourceTypeFullName).Append(" obj"); + if (inv.HasSelector) + { + _ = sb.Append(", ").Append(GetSelectorType(inv)).Append(" selector"); + } + + _ = sb.Line(")").OpenBlock(); + + if (inv.PropertyPaths.Length == 1) + { + GenerateSingleObservableSwitch(sb, inv, classInfo); + } + else if (!inv.HasSelector) + { + GenerateMultiObservableMerge(sb, inv, classInfo); + } + else + { + GenerateMultiObservableCombineLatest(sb, inv, classInfo); + } + + _ = sb.CloseBlock() + .BlankLine(); + } + + /// Generates a single-property Switch pattern: observe the IObservable property, switch to its latest value. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + internal static void GenerateSingleObservableSwitch( + SourceWriter sb, + WhenAnyObservableInvocationInfo inv, + ClassBindingInfo? classInfo) + { + ObservationCodeGenerator.GenerateObservedPropertyVariable( + sb, + inv.PropertyPaths[0], + classInfo, + false, + ObsPropertyVarName); + + // Switch pattern: take the observable property value, replace null with Empty, and switch + AppendSwitchToLatest(sb.BlankLine().BeginReturn(), ObsPropertyVarName, inv.InnerObservableTypeFullNames[0]); + } + + /// Generates a multi-property Merge pattern: observe each IObservable property, switch each, then merge. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + internal static void GenerateMultiObservableMerge( + SourceWriter sb, + WhenAnyObservableInvocationInfo inv, + ClassBindingInfo? classInfo) + { + EmitSwitchedObservables(sb, inv, classInfo); + + var isArray = inv.PropertyPaths.Length > 2; + _ = sb.BeginReturn().Append("new ").Append(MergeSignal).Append('<').Append(inv.ReturnTypeFullName).Append(">("); + if (isArray) + { + _ = sb.Append($"new {IObservable}<").Append(inv.ReturnTypeFullName).Append(">[] {"); + } + + _ = sb.OpenContinuation(); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + _ = sb.Append(SwitchedVarName).Append(i); + if (i < inv.PropertyPaths.Length - 1) + { + _ = sb.Line(","); + } + } + + _ = sb.Line(isArray ? " });" : ");").Outdent(); + } + + /// + /// Generates a multi-property CombineLatest pattern with selector: observe each IObservable property, + /// switch each, then CombineLatest with the selector. + /// + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + internal static void GenerateMultiObservableCombineLatest( + SourceWriter sb, + WhenAnyObservableInvocationInfo inv, + ClassBindingInfo? classInfo) + { + EmitSwitchedObservables(sb, inv, classInfo); + + _ = sb.BeginReturn(); + _ = inv.PropertyPaths.Length == 2 + ? sb.Append("new ").Append(CombineLatestSignal).Append('<') + .Append(inv.InnerObservableTypeFullNames[0]).Append(", ").Append(inv.InnerObservableTypeFullNames[1]).Append(", ") + .Append(inv.ReturnTypeFullName).Append(">(") + : sb.Append($"{LinqExtensions}.CombineLatest("); + + _ = sb.OpenContinuation(); + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + _ = sb.Append(SwitchedVarName).Append(i).Line(","); + } + + _ = sb.Line("selector);").Outdent(); + } + + /// Gets the Func type signature for a WhenAnyObservable selector parameter. + /// The invocation info. + /// A fully qualified Func type string. + internal static string GetSelectorType(WhenAnyObservableInvocationInfo inv) + { + var sb = new PooledStringBuilder().Append($"{Func}<"); + for (var i = 0; i < inv.InnerObservableTypeFullNames.Length; i++) + { + _ = sb.Append(inv.InnerObservableTypeFullNames[i]).Append(", "); + } + + _ = sb.Append(inv.ReturnTypeFullName).Append('>'); + return sb.ToStringAndReturn(); + } + + /// Groups WhenAnyObservable invocations by their type signature for overload generation. + /// All detected invocations. + /// A list of type groups. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static List GroupByTypeSignature(WhenAnyObservableInvocationInfo[] invocations) => + SignatureGrouping.Group(invocations, AppendSignatureKey, static (first, members) => new TypeGroup(first, members)); + + /// Writes the parts of a call site that decide its overload: the types and each inner observable's type. + /// The key being built. + /// The call site. + private static void AppendSignatureKey(PooledStringBuilder key, WhenAnyObservableInvocationInfo inv) + { + _ = key + .Append(inv.SourceTypeFullName).Append('|') + .Append(inv.ReturnTypeFullName).Append('|') + .Append(inv.PropertyPaths.Length).Append('|') + .Append(inv.HasSelector); + for (var p = 0; p < inv.InnerObservableTypeFullNames.Length; p++) + { + _ = key.Append('|').Append(inv.InnerObservableTypeFullNames[p]); + } + } + + /// Emits one variable per observed property, each switched to the latest value its property holds. + /// The writer, inside the observation method's body. + /// The invocation info. + /// The class binding info for the source type, or null. + /// + /// What the switched variables are then fed to is the difference between the shapes: merging them hands the + /// caller whichever produced a value, combining them hands the caller a selector's view of all of them. + /// + private static void EmitSwitchedObservables( + SourceWriter sb, + WhenAnyObservableInvocationInfo inv, + ClassBindingInfo? classInfo) + { + for (var i = 0; i < inv.PropertyPaths.Length; i++) + { + var rawVar = ObsPropertyVarName + i; + + ObservationCodeGenerator.GenerateObservedPropertyVariable(sb, inv.PropertyPaths[i], classInfo, false, rawVar); + + AppendSwitchToLatest(sb.BlankLine().Append("var ").Append(SwitchedVarName).Append(i).Append(" = "), rawVar, inv.InnerObservableTypeFullNames[i]); + _ = sb.BlankLine(); + } + } + + /// + /// Writes the switch onto the latest observable a property holds, substituting an empty one while it holds + /// none, and ends the statement. + /// + /// The writer, after the declaration or return the switch is assigned by. + /// The local observing the property that holds the observable. + /// The element type the property's observable carries. + private static void AppendSwitchToLatest(SourceWriter sb, string rawVar, string innerType) => + _ = sb.Append("new ").Append(SwitchMapSignal).Append('<').Append(ObservableOf(innerType)).Append(", ").Append(innerType) + .Append(">(").Append(rawVar).Append(',') + .OpenContinuation() + .Append($"__obs => __obs ?? ({IObservable}<").Append(innerType) + .Append($">){ImmutableEmptySignal}<").Append(innerType).Line(">.Instance);") + .Outdent(); + + /// Emits the overload and the observation methods for one group of call sites. + /// The string builder to append to. + /// The group of call sites that share an overload. + /// All detected class binding info. + /// The consumer compilation's language-feature snapshot. + private static void EmitGroup( + SourceWriter sb, + TypeGroup group, + ClassBindingInfo[] allClasses, + in LanguageFeatures features) + { + var emitted = features.CollapsesIndistinguishableCallSites + ? group with + { + Invocations = CodeGeneratorHelpers.CollapseIndistinguishableCallSites( + group.Invocations, + static x => x.ExpressionTexts), + } + : group; + + if (features.SupportsInterceptors) + { + GenerateInterceptors(sb, emitted, in features); + } + else + { + GenerateConcreteOverload( + sb, + emitted, + features.SupportsCallerArgExpr, + features.SupportsNullable, + features.StubHasExpressionParameters); + } + + _ = sb.BlankLine(); + + for (var i = 0; i < emitted.Invocations.Length; i++) + { + var inv = emitted.Invocations[i]; + GenerateObservationMethod( + sb, + inv, + CodeGeneratorHelpers.ResolveObservedTypeInfo(allClasses, inv.SourceTypeFullName, inv.PropertyPaths[0]), + ObservationMethodSuffix(inv)); + } + } + + /// Emits one interceptor per generated observation, claiming every call site that reaches it. + /// The string builder to append to. + /// The group of call sites being claimed. + /// The consumer compilation's language-feature snapshot. + private static void GenerateInterceptors(SourceWriter sb, TypeGroup group, in LanguageFeatures features) + { + var supportsCallerArgExpr = features.SupportsCallerArgExpr; + var supportsNullable = features.SupportsNullable; + var stubHasExpressionParameters = features.StubHasExpressionParameters; + + foreach (var entry in InterceptorEmitter.GroupCallSites( + group.Invocations, + static x => x.Interceptor, + ObservationMethodSuffix)) + { + var first = entry.Value[0]; + + foreach (var callSite in entry.Value) + { + InterceptorEmitter.AppendAttribute(sb, callSite.Interceptor); + } + + _ = sb.Append($"internal static {IObservable}<").Append(first.ReturnTypeFullName) + .Append("> __Intercept_WhenAnyObservable_").Append(entry.Key); + InterceptorEmitter.AppendTypeParameterList(sb, first.GenericResult); + _ = sb.OpenParameterList(); + + AppendParameterList(sb, first, supportsCallerArgExpr, supportsNullable, stubHasExpressionParameters); + + _ = sb.Indent() + .Append("=> __WhenAnyObservable_").Append(entry.Key).Append("(objectToMonitor") + .Append(first.HasSelector ? SelectorArgument : string.Empty).Line(");") + .Outdent() + .BlankLine(); + } + } + + /// Writes the parameters a WhenAnyObservable member declares, closing the list. + /// The string builder to append to. + /// The invocation whose types the parameters are written from. + /// Whether the target language version supports CallerArgumentExpression. + /// Whether the target supports nullable reference types (C# 8+). + /// Whether the runtime stub declares the expression parameters. + /// + /// One list serves the overload and the interceptor, because both have to be the stub's signature: the + /// overload only wins resolution against a candidate it is otherwise indistinguishable from, and an + /// interceptor is refused outright unless its signature is the intercepted method's. + /// + private static void AppendParameterList( + SourceWriter sb, + WhenAnyObservableInvocationInfo first, + bool supportsCallerArgExpr, + bool supportsNullable, + bool stubHasExpressionParameters) + { + var propCount = first.PropertyPaths.Length; + + _ = sb.Append("this ").Append(first.SourceTypeFullName).Line(" objectToMonitor,"); + + for (var i = 0; i < propCount; i++) + { + _ = sb.Append(GeneratedSyntax.SelectorTypeOpen).Append(first.SourceTypeFullName).Append($", {IObservable}<") + .Append(first.InnerObservableTypeFullNames[i]).Append(supportsNullable ? ">?" : ">") + .Append(">> ").Append(SelectorParameterPrefix).Append(i + 1).Line(","); + } + + if (first.HasSelector) + { + _ = sb.Append(GetSelectorType(first)).Line(" selector,"); + } + + if (stubHasExpressionParameters) + { + for (var i = 0; i < propCount; i++) + { + CodeGeneratorHelpers.AppendExpressionParameter( + sb, + $"obs{i + 1}", + $"obs{i + 1}Expression", + supportsCallerArgExpr); + } + } + + CodeGeneratorHelpers.AppendCallerInfoParameters(sb); + } + + /// Ends the overload where the stub it displaces would have ended: at the runtime engine. + /// The string builder to append to. + /// The number of observed observable properties. + /// Whether the overload takes a selector. + /// + /// The type arguments are left to inference here. WhenAnyObservable states the element type carried by each + /// observed IObservable<T> rather than the property's own type, and the generated parameters + /// already spell that out, so inference reaches it without the generator taking the type name apart. + /// + private static void GenerateRuntimeFallback(SourceWriter sb, int propCount, bool hasSelector) + { + var arguments = new PooledStringBuilder(CodeGeneratorHelpers.FragmentBufferCapacity); + _ = arguments.Append("objectToMonitor"); + + for (var i = 0; i < propCount; i++) + { + _ = arguments.Append(", obs").Append(i + 1); + } + + if (hasSelector) + { + _ = arguments.Append(SelectorArgument); + } + + CodeGeneratorHelpers.AppendStubFallbackCall( + sb, + Constants.WhenAnyObservableMethodName, + string.Empty, + arguments.ToStringAndReturn()); + } + + /// Emits the if/else-if dispatch table that routes each matched invocation to its generated method. + /// The string builder to append to. + /// The type group containing invocations that share a signature. + /// Whether the target language version supports CallerArgumentExpression. + /// The number of observable expressions. + /// Whether a selector function is present. + private static void EmitDispatchTable( + SourceWriter sb, + TypeGroup group, + bool supportsCallerArgExpr, + int propCount, + bool hasSelector) + { + for (var i = 0; i < group.Invocations.Length; i++) + { + var inv = group.Invocations[i]; + + if (supportsCallerArgExpr) + { + CodeGeneratorHelpers.AppendSelectorTextCondition( + sb, + i, + SelectorParameterPrefix, + inv.ExpressionTexts, + propCount); + } + else + { + CodeGeneratorHelpers.AppendInlineCallerInfoCondition( + sb, + i, + inv.CallerLineNumber, + CodeGeneratorHelpers.ComputePathSuffix(inv.CallerFilePath)); + } + + _ = sb.BeginReturn().Append("__WhenAnyObservable_").Append(ObservationMethodSuffix(inv)).Append("(objectToMonitor") + .Append(hasSelector ? SelectorArgument : string.Empty).Line(");") + .CloseBlock(); + } + } + + /// Names the generated observation method a call site dispatches to. + /// The call site. + /// The stable suffix its method is named with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string ObservationMethodSuffix(WhenAnyObservableInvocationInfo inv) => + CodeGeneratorHelpers.ComputeStableMethodSuffix( + inv.SourceTypeFullName, + inv.CallerFilePath, + inv.CallerLineNumber, + inv.ExpressionTexts); + + /// Groups invocations by source type and observable type signature for overload generation. + /// The first invocation in the group, used for type information. + /// All invocations sharing the same type signature. + internal sealed record TypeGroup( + WhenAnyObservableInvocationInfo First, + WhenAnyObservableInvocationInfo[] Invocations); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Constants.cs b/src/ReactiveUI.Binding.SourceGenerators/Constants.cs new file mode 100644 index 00000000..74019069 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Constants.cs @@ -0,0 +1,228 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators; + +/// +/// Constants shared between the source generator and analyzer projects. +/// Contains well-known metadata names for platform detection and API stub definitions. +/// +internal static class Constants +{ + /// Metadata name for . + internal const string INotifyPropertyChangedMetadataName = "System.ComponentModel.INotifyPropertyChanged"; + + /// Metadata name for . + internal const string INotifyPropertyChangingMetadataName = "System.ComponentModel.INotifyPropertyChanging"; + + /// Metadata name for ReactiveUI's IReactiveObject interface. + internal const string IReactiveObjectMetadataName = "ReactiveUI.IReactiveObject"; + + /// Metadata name for the class declaring ReactiveUI's public RaisePropertyChanged extension. + internal const string IReactiveObjectExtensionsMetadataName = "ReactiveUI.IReactiveObjectExtensions"; + + /// Metadata name for the same class in ReactiveUI's System.Reactive flavour. + internal const string ReactiveIReactiveObjectExtensionsMetadataName = "ReactiveUI.Reactive.IReactiveObjectExtensions"; + + /// Metadata name for the attribute that ranks one applicable overload above another (C# 13). + internal const string OverloadResolutionPriorityAttributeMetadataName = + "System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute"; + + /// Metadata name for . + internal const string PropertyChangedEventArgsMetadataName = "System.ComponentModel.PropertyChangedEventArgs"; + + /// Metadata name for . + internal const string PropertyChangingEventArgsMetadataName = "System.ComponentModel.PropertyChangingEventArgs"; + + /// Metadata name for . + internal const string PropertyChangedEventHandlerMetadataName = "System.ComponentModel.PropertyChangedEventHandler"; + + /// Metadata name for . + internal const string PropertyChangingEventHandlerMetadataName = "System.ComponentModel.PropertyChangingEventHandler"; + + /// Metadata name for WPF's DependencyObject base class. + internal const string WpfDependencyObjectMetadataName = "System.Windows.DependencyObject"; + + /// Metadata name for WinUI's DependencyObject base class. + internal const string WinUIDependencyObjectMetadataName = "Microsoft.UI.Xaml.DependencyObject"; + + /// Metadata name for Apple's NSObject base class (KVO support). + internal const string NSObjectMetadataName = "Foundation.NSObject"; + + /// Metadata name for WinForms' Component base class. + internal const string WinFormsComponentMetadataName = "System.ComponentModel.Component"; + + /// Metadata name for Android's View base class. + internal const string AndroidViewMetadataName = "Android.Views.View"; + + /// Metadata name for . + internal const string INotifyDataErrorInfoMetadataName = "System.ComponentModel.INotifyDataErrorInfo"; + + /// Class name for the runtime API stub extension class emitted as post-initialization output. + internal const string StubExtensionClassName = "ReactiveUIBindingExtensions"; + + /// Class name for the scheduler-related extension methods stub class. + internal const string SchedulerExtensionClassName = "ReactiveSchedulerExtensions"; + + /// Class name for the generated per-invocation dispatch class. + internal const string GeneratedExtensionClassName = "__ReactiveUIGeneratedBindings"; + + /// + /// The namespace the dispatch overloads are emitted into on consumers that predate global usings, where + /// there is no way to reach a compilation-private namespace. + /// + internal const string SharedGeneratedNamespace = "ReactiveUI.Binding"; + + /// + /// The root under which each assembly gets its own generated namespace, used when the build exposes no root + /// namespace to emit into. + /// + internal const string GeneratedNamespaceRoot = "ReactiveUI.Binding.Generated"; + + /// The namespace interceptors are emitted into. + /// + /// Fixed rather than derived from the consumer, because nothing has to reach it: an interceptor claims its + /// call site by name and is never found by lookup. Being fixed is what lets the shipped props opt exactly + /// this namespace into interception without knowing anything about the project it is opting in. + /// + internal const string InterceptorNamespace = "ReactiveUI.Binding.Generated.Interceptors"; + + /// The build property a consumer's compiler reads the interception opt-in from. + internal const string InterceptorsNamespacesFeature = "InterceptorsNamespaces"; + + /// Metadata name of the attribute that exposes an assembly's internals to another. + internal const string InternalsVisibleToAttributeName = "System.Runtime.CompilerServices.InternalsVisibleToAttribute"; + + /// The namespace the System.Reactive flavour of the runtime library lives in. + internal const string ReactiveRuntimeNamespace = "ReactiveUI.Binding.Reactive"; + + /// Metadata name of the runtime stub class in the lean runtime package. + internal const string LeanStubMetadataName = "ReactiveUI.Binding.ReactiveUIBindingExtensions"; + + /// Metadata name of the runtime stub class in the System.Reactive runtime package. + internal const string ReactiveStubMetadataName = "ReactiveUI.Binding.Reactive.ReactiveUIBindingExtensions"; + + /// + /// Metadata name of a type the System.Reactive flavour of ReactiveUI.Primitives declares, used to reach that + /// namespace and read the names it offers. + /// + internal const string PrimitivesReactiveAnchorMetadataName = "ReactiveUI.Primitives.Reactive.LinqExtensions"; + + /// The scheduler abstraction the lean runtime library schedules on. + internal const string LeanSchedulerTypeName = "global::ReactiveUI.Primitives.Concurrency.ISequencer"; + + /// The scheduler abstraction the System.Reactive flavour schedules on. + internal const string ReactiveSchedulerTypeName = "global::System.Reactive.Concurrency.IScheduler"; + + /// The generated namespace segment used when the compilation has no assembly name. + internal const string AnonymousAssemblyNamespaceSegment = "Anonymous"; + + /// Method name for after-change property observation (WhenChanged). + internal const string WhenChangedMethodName = "WhenChanged"; + + /// Method name for before-change property observation (WhenChanging). + internal const string WhenChangingMethodName = "WhenChanging"; + + /// Method name for source-generated one-way binding (BindOneWay). + internal const string BindOneWayMethodName = "BindOneWay"; + + /// Method name for source-generated two-way binding (BindTwoWay). + internal const string BindTwoWayMethodName = "BindTwoWay"; + + /// Method name for ReactiveUI-compatible one-way binding (OneWayBind). + internal const string OneWayBindMethodName = "OneWayBind"; + + /// Method name for ReactiveUI-compatible two-way binding (Bind). + internal const string BindMethodName = "Bind"; + + /// Method name for multi-property value observation (WhenAnyValue). + internal const string WhenAnyValueMethodName = "WhenAnyValue"; + + /// Method name for multi-property observation with IObservedChange wrappers (WhenAny). + internal const string WhenAnyMethodName = "WhenAny"; + + /// Method name for observable-of-observables merging (WhenAnyObservable). + internal const string WhenAnyObservableMethodName = "WhenAnyObservable"; + + /// Method name for interaction binding (BindInteraction). + internal const string BindInteractionMethodName = "BindInteraction"; + + /// Method name for command binding (BindCommand). + internal const string BindCommandMethodName = "BindCommand"; + + /// Method name for binding an observable stream to a target property (BindTo). + internal const string BindToMethodName = "BindTo"; + + /// Method name for executing a command with each value a stream produces (InvokeCommand). + internal const string InvokeCommandMethodName = "InvokeCommand"; + + /// Method name for backing a read-only property with an observable (ToProperty). + internal const string ToPropertyMethodName = "ToProperty"; + + /// Metadata name for the open generic IViewFor<T> interface used for view resolution. + internal const string IViewForGenericMetadataName = "ReactiveUI.Binding.IViewFor`1"; + + /// Metadata name for the System.Reactive flavour's open generic IViewFor<T> interface. + internal const string ReactiveIViewForGenericMetadataName = "ReactiveUI.Binding.Reactive.IViewFor`1"; + + /// The namespace the lean runtime declares its view types in, with the trailing dot. + internal const string LeanViewNamespacePrefix = "ReactiveUI.Binding."; + + /// The namespace the System.Reactive runtime declares its view types in, with the trailing dot. + internal const string ReactiveViewNamespacePrefix = "ReactiveUI.Binding.Reactive."; + + /// Metadata name of ReactiveUI.SourceGenerators' generic [IViewFor<T>] attribute. + internal const string SourceGeneratorsGenericIViewForAttributeMetadataName = "ReactiveUI.SourceGenerators.IViewForAttribute`1"; + + /// Metadata name of ReactiveUI.SourceGenerators' [IViewFor("...")] attribute. + internal const string SourceGeneratorsIViewForAttributeMetadataName = "ReactiveUI.SourceGenerators.IViewForAttribute"; + + /// Metadata name of ReactiveUI.SourceGenerators' [Reactive] attribute. + internal const string SourceGeneratorsReactiveAttributeMetadataName = "ReactiveUI.SourceGenerators.ReactiveAttribute"; + + /// Metadata name of ReactiveUI.SourceGenerators' [ReactiveCollection] attribute. + internal const string SourceGeneratorsReactiveCollectionAttributeMetadataName = "ReactiveUI.SourceGenerators.ReactiveCollectionAttribute"; + + /// Metadata name of ReactiveUI.SourceGenerators' [BindableDerivedList] attribute. + internal const string SourceGeneratorsBindableDerivedListAttributeMetadataName = "ReactiveUI.SourceGenerators.BindableDerivedListAttribute"; + + /// Metadata name of ReactiveUI.SourceGenerators' [ReactiveCommand] attribute. + internal const string SourceGeneratorsReactiveCommandAttributeMetadataName = "ReactiveUI.SourceGenerators.ReactiveCommandAttribute"; + + /// Metadata name of ReactiveUI.SourceGenerators' [IReactiveObject] attribute. + internal const string SourceGeneratorsIReactiveObjectAttributeMetadataName = "ReactiveUI.SourceGenerators.IReactiveObjectAttribute"; + + /// Metadata name for the ExcludeFromViewRegistrationAttribute used to skip view auto-registration. + internal const string ExcludeFromViewRegistrationAttributeMetadataName = + "ReactiveUI.Binding.ExcludeFromViewRegistrationAttribute"; + + /// Metadata name for the SingleInstanceViewAttribute used for singleton view caching. + internal const string SingleInstanceViewAttributeMetadataName = "ReactiveUI.Binding.SingleInstanceViewAttribute"; + + /// Metadata name for the ViewContractAttribute used for contract-based view registration. + internal const string ViewContractAttributeMetadataName = "ReactiveUI.Binding.ViewContractAttribute"; + + /// Metadata name for the IBindingTypeConverter interface used for custom type conversions. + internal const string IBindingTypeConverterMetadataName = "ReactiveUI.Binding.IBindingTypeConverter"; + + /// Metadata name for the open generic IInteraction<TInput, TOutput> interface. + internal const string IInteractionMetadataName = "ReactiveUI.Binding.IInteraction`2"; + + /// Metadata name for the System.Windows.Input.ICommand interface. + internal const string ICommandMetadataName = "System.Windows.Input.ICommand"; + + /// Metadata name for the CallerFilePathAttribute used in dispatch stubs. + internal const string CallerFilePathAttributeName = "System.Runtime.CompilerServices.CallerFilePathAttribute"; + + /// Metadata name for the CallerLineNumberAttribute used in dispatch stubs. + internal const string CallerLineNumberAttributeName = "System.Runtime.CompilerServices.CallerLineNumberAttribute"; + + /// Metadata name for the CallerArgumentExpressionAttribute used in dispatch stubs for C# 10+ projects. + internal const string CallerArgumentExpressionAttributeMetadataName = + "System.Runtime.CompilerServices.CallerArgumentExpressionAttribute"; + + /// Metadata name for the ModuleInitializerAttribute the generated view dispatch registers itself with. + internal const string ModuleInitializerAttributeMetadataName = + "System.Runtime.CompilerServices.ModuleInitializerAttribute"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/DiagnosticWarnings.cs b/src/ReactiveUI.Binding.SourceGenerators/DiagnosticWarnings.cs new file mode 100644 index 00000000..0e94c665 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/DiagnosticWarnings.cs @@ -0,0 +1,380 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators; + +/// +/// Diagnostic descriptors shared between the source generator and analyzer projects. +/// The generator itself does NOT report diagnostics — the separate analyzer project does. +/// This file is linked into the analyzer project via Compile Include. +/// +[ExcludeFromCodeCoverage] +internal static class DiagnosticWarnings +{ + /// The diagnostic category shared by all RXUIBIND descriptors. + internal const string UsageCategory = "Usage"; + + /// RXUIBIND001: Expression must be inline lambda for compile-time optimization. + internal static readonly DiagnosticDescriptor NonInlineLambda = new( + "RXUIBIND001", + "Expression must be inline lambda", + "Expression argument must be an inline lambda expression for compile-time optimization. A variable or " + + "method reference is not generated, so the call throws unless it names the Unsafe overload.", + UsageCategory, + DiagnosticSeverity.Error, + true, + NoneInlineLambdaDescription); + + /// RXUIBIND002: Type has no observable properties. + internal static readonly DiagnosticDescriptor NoObservableProperties = new( + "RXUIBIND002", + "Type has no observable properties", + "Type '{0}' has no observable properties and does not implement any observable notification mechanism", + UsageCategory, + DiagnosticSeverity.Warning, + true, + NoObservablePropertiesDescription); + + /// RXUIBIND010: A type in the middle of an observed path raises no notification. + internal static readonly DiagnosticDescriptor SilentPathLink = new( + "RXUIBIND010", + "Observed path passes through a type that raises no notification", + "Type '{0}' raises no notification, so '{1}' is read once and the observation stops following the path there", + UsageCategory, + DiagnosticSeverity.Warning, + true, + SilentPathLinkDescription); + + /// RXUIBIND011: A binding call resolved to ReactiveUI's mixin rather than a generated overload. + internal static readonly DiagnosticDescriptor MixinShadowsGeneratedBinding = new( + "RXUIBIND011", + "Binding call resolved to ReactiveUI's own mixin", + "'{0}' resolved to ReactiveUI's '{1}', so this call generates nothing and takes the runtime expression engine", + UsageCategory, + DiagnosticSeverity.Warning, + true, + MixinShadowsGeneratedBindingDescription); + + /// RXUIBIND012: ToProperty targets a type whose change notifications generated code cannot raise. + internal static readonly DiagnosticDescriptor UnraisableToPropertySource = new( + "RXUIBIND012", + "ToProperty source raises no notification generated code can reach", + "Generated code cannot raise change notifications for '{0}', so this ToProperty call generates nothing and throws when it runs", + UsageCategory, + DiagnosticSeverity.Error, + true, + UnraisableToPropertySourceDescription); + + /// RXUIBIND013: ToProperty names its property in a form the generator cannot read. + internal static readonly DiagnosticDescriptor UnreadableToPropertyName = new( + "RXUIBIND013", + "ToProperty property must be named directly", + "Name the property as 'x => x.Property' or as a constant such as nameof(Property); this call generates nothing and throws when it runs", + UsageCategory, + DiagnosticSeverity.Error, + true, + UnreadableToPropertyNameDescription); + + /// RXUIBIND014: below C# 13, a ToProperty initial value passed by position makes the call ambiguous. + internal static readonly DiagnosticDescriptor UnnamedToPropertyInitialValue = new( + "RXUIBIND014", + "Name the ToProperty initial value below C# 13", + "Below C# 13 this initial value also fits a caller-information parameter, so the call is ambiguous; write it as 'initialValue: {0}'", + UsageCategory, + DiagnosticSeverity.Error, + true, + UnnamedToPropertyInitialValueDescription); + + /// RXUIBIND015: a binding call names a type that generated code cannot reach. + internal static readonly DiagnosticDescriptor UnreachableType = new( + "RXUIBIND015", + "Binding call names a type generated code cannot reach", + "'{0}' is anonymous, file-local, private or protected, so no generated code claims this call; use an internal or public type, make the calling class partial, or call the Unsafe overload", + UsageCategory, + DiagnosticSeverity.Error, + true, + UnreachableTypeDescription); + + /// RXUIBIND016: a binding call names a type parameter of the calling code. + internal static readonly DiagnosticDescriptor TypeParameterCall = new( + "RXUIBIND016", + "Binding call is made through a type parameter", + "'{0}' is built from a type parameter that no generated code can stand in for, so no generated code claims this call; call the Unsafe overload", + UsageCategory, + DiagnosticSeverity.Error, + true, + TypeParameterCallDescription); + + /// RXUIBIND017: a binding writes to a UI object whose platform package, which marshals the write, is not referenced. + internal static readonly DiagnosticDescriptor MissingViewThreadInvoker = new( + "RXUIBIND017", + "Binding writes to a UI object without its platform package", + "'{0}' belongs to a UI thread, but '{1}' is not referenced, so writes from another thread are not marshalled onto it; reference '{1}'", + UsageCategory, + DiagnosticSeverity.Warning, + true, + MissingViewThreadInvokerDescription); + + /// RXUIBIND018: [ObservableAsProperty] marks something other than a partial get-only instance property. + internal static readonly DiagnosticDescriptor ObservableAsPropertyNeedsPartialProperty = new( + "RXUIBIND018", + "ObservableAsProperty needs a partial get-only property", + "'{0}' is not a partial get-only instance property, so nothing is generated for it; declare the property as 'partial T {0} {{ get; }}'", + UsageCategory, + DiagnosticSeverity.Warning, + true, + ObservableAsPropertyNeedsPartialPropertyDescription); + + /// RXUIBIND021: a binding call has no generated binding, so the runtime stub it resolves to throws. + internal static readonly DiagnosticDescriptor NoGeneratedBinding = new( + "RXUIBIND021", + "Binding call has no generated binding", + "'{0}' has no generated binding, so it throws at run time; name each member directly in the lambdas, declare a member another source generator adds as a partial property, or call {0}Unsafe", + UsageCategory, + DiagnosticSeverity.Error, + true, + NoGeneratedBindingDescription); + + /// + /// RXUIBIND020: a view is registered only in the service locator, which ResolveView(object) does not ask. + /// Reported when the compilation ends, once every registration, view and mapping is known. + /// + internal static readonly DiagnosticDescriptor ServiceLocatorOnlyView = new( + "RXUIBIND020", + "View is registered only in the service locator", + "IViewFor<{0}> is registered only in the service locator, so ResolveView with a view model held as an object does not find it; add it with Map, or call ResolveViewUnsafe", + UsageCategory, + DiagnosticSeverity.Info, + true, + ServiceLocatorOnlyViewDescription, + customTags: WellKnownDiagnosticTags.CompilationEnd); + + /// RXUIBIND019: a method marked [ObservableAsProperty] takes parameters. + internal static readonly DiagnosticDescriptor ObservableAsPropertyMethodHasParameters = new( + "RXUIBIND019", + "ObservableAsProperty method takes parameters", + "'{0}' takes parameters, so it cannot supply a property's values; remove the parameters or the attribute", + UsageCategory, + DiagnosticSeverity.Warning, + true, + ObservableAsPropertyMethodHasParametersDescription); + + /// RXUIBIND003: Expression contains private/protected member. + internal static readonly DiagnosticDescriptor PrivateMember = new( + "RXUIBIND003", + "Expression contains private or protected member", + "Expression accesses private or protected member '{0}' which cannot be observed by a generated extension method", + UsageCategory, + DiagnosticSeverity.Error, + true, + PrivateMemberDescription); + + /// RXUIBIND004: Type does not support before-change notifications. + internal static readonly DiagnosticDescriptor NoBeforeChangeSupport = new( + "RXUIBIND004", + "Type does not support before-change notifications", + "Type '{0}' does not support before-change notifications via {1}; WhenChanging reads the value once and then stays silent", + UsageCategory, + DiagnosticSeverity.Warning, + true, + NoBeforeChangeSupportDescription); + + /// RXUIBIND005: Source type implements INotifyDataErrorInfo. + internal static readonly DiagnosticDescriptor ValidationNotGenerated = new( + "RXUIBIND005", + "Validation binding not generated", + "Source type '{0}' implements INotifyDataErrorInfo; validation state propagation is not generated and requires runtime engine or manual ErrorsChanged subscription", + UsageCategory, + DiagnosticSeverity.Info, + true, + ValidationNotGeneratedDescription); + + /// RXUIBIND009: The generated dispatch for this call site is out of reach. + internal static readonly DiagnosticDescriptor DispatchOutOfReach = new( + "RXUIBIND009", + "Generated binding dispatch is out of reach here", + "This binding throws rather than reaching its generated code. The assembly exposes its internals, so on " + + "C# 9 and below the generated dispatch has to live in the root namespace '{0}' to stay unambiguous, and " + + "this file's namespace '{1}' is not under it. Move the file under the root namespace, raise the language " + + "version to 10 or later, or name the Unsafe overload to resolve the expression at run time.", + UsageCategory, + DiagnosticSeverity.Error, + true, + DispatchOutOfReachDescription); + + /// RXUIBIND006: Expression contains unsupported path segment (indexer, static field, read-only leaf field, or method call). + internal static readonly DiagnosticDescriptor UnsupportedPathSegment = new( + "RXUIBIND006", + "Expression contains unsupported path segment", + "Expression contains '{0}' which is not a property or instance field access. Indexers, static fields, a read-only field at the end of " + + "the path, and method calls are not generated, so the call throws unless it names the Unsafe overload.", + UsageCategory, + DiagnosticSeverity.Error, + true, + UnsupportedPathSegmentDescription); + + /// RXUIBIND007: BindCommand control has no bindable event. + internal static readonly DiagnosticDescriptor NoBindableEvent = new( + "RXUIBIND007", + "Control has no bindable event", + "Control type '{0}' has no default bindable event (Click, TouchUpInside, Pressed) and no 'toEvent' was specified", + UsageCategory, + DiagnosticSeverity.Warning, + true, + NoBindableEventDescription); + + /// RXUIBIND008: Property does not implement IInteraction. + internal static readonly DiagnosticDescriptor InvalidInteractionType = new( + "RXUIBIND008", + "Property is not an IInteraction", + "Property '{0}' does not implement IInteraction", + UsageCategory, + DiagnosticSeverity.Warning, + true, + InvalidInteractionTypeDescription); + + /// The string description of the out-of-reach dispatch warning. + private const string DispatchOutOfReachDescription = + "Compile-time dispatch is chosen by extension-method lookup, which only reaches an overload declared " + + "in a namespace enclosing the call site. Before C# 10 there is no global using to widen that, and an " + + "assembly that exposes its internals cannot leave the overloads in the shared namespace without " + + "risking an ambiguous call against the assembly it exposes them to. A file outside the root namespace " + + "therefore binds to the stub, which throws and names the Unsafe overload that resolves the expression " + + "by reflection."; + + /// The string description of the none inline lambda. + private const string NoneInlineLambdaDescription = + "The source generator can only optimize inline lambda expressions (e.g., x => x.Property). " + + "A variable reference, a method call, or any other non-inline expression produces no generated dispatch, " + + "so the call throws. Name the Unsafe overload - WhenChangedUnsafe, BindOneWayUnsafe and so on - to walk " + + "the chain by reflection instead, which reports the requirement at the call site under trimming."; + + /// The string description of the no observable properties warning. + private const string NoObservablePropertiesDescription = + "The type used in the binding expression does not implement INotifyPropertyChanged, INotifyPropertyChanging, " + + "IReactiveObject, or inherit from any known observable base type."; + + /// The string description of the private member warning. + private const string PrivateMemberDescription = + "The source generator generates extension methods which cannot access private or protected members. " + + "No dispatch is emitted for the call, so it throws unless it names the Unsafe overload."; + + /// The string description of the no before-change support warning. + private const string NoBeforeChangeSupportDescription = + "The notification mechanism for this type does not provide before-change events. " + + "WPF DependencyObjects, WinForms Components, and Android Views only support after-change notifications, " + + "so the observation reports the value as it stands, once, and then nothing further."; + + /// The string description of the validation not generated warning. + private const string ValidationNotGeneratedDescription = + "The generated bindings handle value binding only. " + + "Validation state propagation from INotifyDataErrorInfo requires the runtime ReactiveUI binding engine " + + "or a manual ErrorsChanged subscription."; + + /// The string description of the unsupported path segment warning. + private const string UnsupportedPathSegmentDescription = + "The source generator reads chains of properties and instance fields (e.g., x => x.Foo.Bar, or v => v.NameBox.Text " + + "through a control named in XAML). A field raises no notification, so it is read once. Indexers, static fields, " + + "a read-only field at the end of the path, and method calls require runtime expression analysis."; + + /// The string description of the no bindable event warning. + private const string NoBindableEventDescription = + "The source generator could not find a default event to bind on the control type. " + + "Specify the 'toEvent' parameter explicitly."; + + /// The string description of the invalid interaction type warning. + private const string InvalidInteractionTypeDescription = + "The property selected in the BindInteraction expression must implement IInteraction."; + + /// The string description of the shadowed binding warning. + private const string MixinShadowsGeneratedBindingDescription = + "Which method a binding call reaches is decided by extension-method lookup. Where ReactiveUI's own " + + "namespace is imported and this package's is not, the call binds to ReactiveUI's mixin and the " + + "generator never sees it: no dispatch is emitted, and the call takes the runtime expression engine " + + "that a generated binding exists to avoid. Nothing else reports this, because the call was never " + + "recognised as one to generate for. Import 'ReactiveUI.Binding' in the file to restore the generated " + + "overload, which lookup prefers over the generic one."; + + /// The string description of the unraisable ToProperty source warning. + private const string UnraisableToPropertySourceDescription = + "A type can only raise its own events, so generated code needs a member that does it. Any one of these works: " + + "derive from ReactiveUI's ReactiveObject or implement IReactiveObject; expose a public or internal " + + "RaisePropertyChanged or OnPropertyChanged method; or declare the type, and every type it is nested in, " + + "as partial, so the generator can add a member that raises the type's own event."; + + /// The string description of the ObservableAsProperty target warning. + private const string ObservableAsPropertyNeedsPartialPropertyDescription = + "The generator writes the body of a partial get-only instance property that you declare, so every generator in " + + "the build can see the property. A field, a method or an observable property marked with the attribute, as " + + "ReactiveUI's older source generator allowed, gets nothing. The code fix rewrites those as partial properties, " + + "which needs C# 13."; + + /// The string description of the missing generated binding warning. + private const string NoGeneratedBindingDescription = + "The generator writes a binding for each call it can read, and the call runs that binding instead of the runtime " + + "method it names. A call it cannot read still runs the runtime method, which throws. A generator reads your code " + + "without any generator's output, so a member another source generator adds cannot be read. The members " + + "ReactiveUI.SourceGenerators adds are the exception: their rules are known, so they are read. Declare other " + + "generated members as partial properties, or call the Unsafe overload, which finds them by reflection. A call " + + "through such a member is reported as a warning, because only the other generator could change it. Every " + + "other cause is one you can fix, such as a selector that computes a value or a call written through the " + + "class that declares the method, and fails the build."; + + /// The string description of the service-locator-only view information. + private const string ServiceLocatorOnlyViewDescription = + "ResolveView with a view model held as an object asks the generated view lookup and then the Map registrations. It " + + "does not ask the service locator, because that needs a type built at run time. A view model whose view is " + + "registered only in the service locator, with no generated view and no Map in this project, resolves to null " + + "there. ResolveView and ResolveViewUnsafe still ask the service locator."; + + /// The string description of the ObservableAsProperty method parameters warning. + private const string ObservableAsPropertyMethodHasParametersDescription = + "A method marked [ObservableAsProperty] supplies the observable a property is built from, so it is called with " + + "no arguments."; + + /// The string description of the unnamed ToProperty initial value error. + private const string UnnamedToPropertyInitialValueDescription = + "The selector overloads of ToProperty take optional caller-information string parameters. For a string property, " + + "an initial value passed by position fits both the overload with an initial value and the overload without one. " + + "C# 13 and later prefer the initial-value overload; earlier versions need the argument named initialValue."; + + /// The string description of the unreadable ToProperty name warning. + private const string UnreadableToPropertyNameDescription = + "The generator reads the property's name from the call. A selector has to read one member straight off its " + + "parameter, as in x => x.Property, and a string has to be a compile-time constant."; + + /// The string description of the missing view-thread invoker warning. + private const string MissingViewThreadInvokerDescription = + "A binding writes to a WPF, WinForms or MAUI object on the thread that owns it, through the invoker the " + + "matching ReactiveUI.Binding platform package ships. Without that package the binding has no invoker for " + + "the object, and a value arriving on another thread is written on that thread. Reference the platform package."; + + /// The string description of the type parameter call warning. + private const string TypeParameterCallDescription = + "Generated code names the closed types a call is made with. With Roslyn 4.13 or newer and interceptors on, a " + + "call built from the calling code's type parameters is still generated, as code generic over them, when each " + + "type parameter the call uses, and each one its constraints name, is itself one of the called method's type " + + "arguments. Any other such call would throw when it runs, so the build fails at the call instead. Call the " + + "Unsafe overload, which resolves the path at run time."; + + /// The string description of the unreachable type warning. + private const string UnreachableTypeDescription = + "Generated code lives in a class of its own, so it can only name types that are accessible from outside the " + + "types that declare them. An anonymous type, a file-local type, a private or protected nested type, or a " + + "type built from one is out of reach. With Roslyn 4.13 or newer and interceptors on, two kinds of call are " + + "still generated. A " + + "call whose only such type is its selector's result gets a generic interceptor. A call made inside a " + + "partial, non-generic class that can name every type gets its code added to that class. Any other call " + + "would throw when it runs, so the build fails at the call instead. Use an internal or public type, declare " + + "the calling class and the classes around it partial, or call the Unsafe overload."; + + /// The string description of the silent path link warning. + private const string SilentPathLinkDescription = + "A type in the middle of an observed path that raises no notification is read once and never again, " + + "so the observation stops following the path at that link and never sees a later value. " + + "Give the type a notification mechanism, or observe a path that does not pass through it."; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Generators/ObservableAsPropertyGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Generators/ObservableAsPropertyGenerator.cs new file mode 100644 index 00000000..3fdf66b7 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Generators/ObservableAsPropertyGenerator.cs @@ -0,0 +1,329 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.SourceGenerators.Generators; + +/// Writes the body of each partial property marked [ObservableAsProperty], and its helper field. +/// +/// +/// The attribute is a runtime type, so nothing is declared into the consumer's assembly: a friend assembly granted +/// InternalsVisibleTo never sees a second copy of it. The generator only adds members to a partial type the +/// consumer declared. +/// +/// +/// Only a partial property is accepted. Its declaration is the consumer's own source, so every generator in the build, +/// this one included, sees the property and can observe or bind it. A property that a generator writes from a field +/// would be invisible to the other generators, which is the failure this attribute exists to avoid. +/// +/// +internal static class ObservableAsPropertyGenerator +{ + /// The attribute's metadata name in the lean runtime. + private const string LeanAttributeName = "ReactiveUI.Binding.ObservableAsPropertyAttribute"; + + /// The attribute's metadata name in the System.Reactive runtime. + private const string ReactiveAttributeName = "ReactiveUI.Binding.Reactive.ObservableAsPropertyAttribute"; + + /// The helper type the generated field holds. + private const string HelperType = GeneratedTypeNames.ObservableAsPropertyHelper; + + /// The prefix a fully qualified type name starts with. + private const string GlobalPrefix = "global::"; + + /// The suffix every generated file name ends with. + private const string HintSuffix = ".ObservableAsProperties.g.cs"; + + /// The type format a partial property's implementing part has to repeat exactly, nullable annotation included. + private static readonly SymbolDisplayFormat TypeFormat = SymbolDisplayFormat.FullyQualifiedFormat + .AddMiscellaneousOptions(SymbolDisplayMiscellaneousOptions.IncludeNullableReferenceTypeModifier); + + /// Registers the pipeline for both runtime flavours' attribute. + /// The generator initialization context. + /// The consumer compilation's language-feature snapshot. + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValueProvider languageFeatures) + { + // Converted once and shared, so both flavours' registrations use the same two delegates. + Func isCandidate = IsCandidate; + Func extract = Extract; + var lean = context.SyntaxProvider.ForAttributeWithMetadataName(LeanAttributeName, isCandidate, extract).Collect(); + var reactive = context.SyntaxProvider.ForAttributeWithMetadataName(ReactiveAttributeName, isCandidate, extract).Collect(); + + context.RegisterSourceOutput( + lean.Combine(reactive).Combine(languageFeatures), + static (ctx, data) => Emit(in ctx, RoslynArray.Unwrap(data.Left.Left), RoslynArray.Unwrap(data.Left.Right), data.Right)); + } + + /// Accepts only a partial property whose sole accessor is a bodiless getter, from syntax alone. + /// The syntax node the attribute is on. + /// Cancellation token. + /// for partial T Name { get; }. + internal static bool IsCandidate(SyntaxNode node, CancellationToken ct) => + node is PropertyDeclarationSyntax + { + ExpressionBody: null, + AccessorList.Accessors: [{ RawKind: (int)SyntaxKind.GetAccessorDeclaration, Body: null, ExpressionBody: null }], + } property + && property.Modifiers.Any(SyntaxKind.PartialKeyword); + + /// Reads a candidate property into its model. + /// The attribute syntax context. + /// Cancellation token. + /// The model, or null when the property's type is not partial all the way out. + internal static ObservableAsPropertyInfo? Extract(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + // A static property has no instance to hold its helper; the analyzer reports it. + if (context.TargetSymbol is not IPropertySymbol { IsStatic: false, ContainingType: { } type } property + || PartialTypeRaisePlugin.DescribeDeclaration(type) is not { } declaration) + { + return null; + } + + var options = ObservableAsPropertyOptions.Read(context.Attributes[0]); + var (initialValue, storesInitialValue) = InitialValueFor(property.Type, options.InitialValue); + var syntax = (PropertyDeclarationSyntax)context.TargetNode; + return new( + declaration, + HintNameFor(type), + syntax.Modifiers.ToString(), + property.Type.ToDisplayString(TypeFormat), + property.Name, + (options.UseProtected ? "protected" : "private") + (options.ReadOnly ? " readonly" : string.Empty), + initialValue, + storesInitialValue, + storesInitialValue ? UsingsOf(syntax) : new([])); + } + + /// Collects the directives an initial value expression was written against, in the order they appear. + /// The property declaration. + /// The extern alias directives, then the using directives of the file and its namespaces. + /// + /// The expression is copied into a generated file of its own, so it only binds the way it did in the consumer's file + /// when that file's directives come with it. Namespace-level directives are lifted to the top of the generated file. + /// + internal static EquatableArray UsingsOf(PropertyDeclarationSyntax property) + { + var directives = new List(); + var unit = (CompilationUnitSyntax)property.SyntaxTree.GetRoot(); + foreach (var alias in unit.Externs) + { + directives.Add(alias.ToString().Trim()); + } + + foreach (var directive in unit.Usings) + { + directives.Add(directive.ToString().Trim()); + } + + for (var node = property.Parent; node is not null; node = node.Parent) + { + if (node is BaseNamespaceDeclarationSyntax scope) + { + foreach (var directive in scope.Usings) + { + directives.Add(directive.ToString().Trim()); + } + } + } + + return new([.. directives]); + } + + /// Works out what a property returns before its helper is assigned. + /// The property type. + /// The attribute's InitialValue, or null. + /// + /// The expression, or null for the type's default, and whether it is held in a backing field. A string property's + /// text is its value, so it is written as a literal. Any other type's text is an expression, evaluated once. + /// + internal static (string? Expression, bool Stores) InitialValueFor(ITypeSymbol type, string? initialValue) + { + var isString = type.SpecialType == SpecialType.System_String; + if (initialValue is not null) + { + return isString ? (SymbolDisplay.FormatLiteral(initialValue, true), false) : (initialValue, true); + } + + // A non-nullable string never reports null, so it starts empty. + return isString && type.NullableAnnotation != NullableAnnotation.Annotated + ? ("global::System.String.Empty", false) + : (null, false); + } + + /// Writes one file per type, holding every marked property the type declares. + /// The source production context. + /// The properties marked with the lean runtime's attribute. + /// The properties marked with the System.Reactive runtime's attribute. + /// The consumer compilation's language-feature snapshot. + private static void Emit( + in SourceProductionContext context, + ObservableAsPropertyInfo?[] lean, + ObservableAsPropertyInfo?[] reactive, + in LanguageFeatures features) + { + var byType = new Dictionary>(StringComparer.Ordinal); + var order = new List(); + Group(lean, byType, order); + Group(reactive, byType, order); + + for (var i = 0; i < order.Count; i++) + { + var properties = byType[order[i]]; + CodeGeneratorHelpers.AddGeneratedSource(context, order[i], Generate(properties, features), features); + } + } + + /// Collects properties under the file their type is written to. + /// The extracted properties, with nulls for declined candidates. + /// The properties per file. + /// The files in first-seen order, so output is deterministic. + private static void Group( + ObservableAsPropertyInfo?[] properties, + Dictionary> byType, + List order) + { + for (var i = 0; i < properties.Length; i++) + { + if (properties[i] is not { } property) + { + continue; + } + + if (!byType.TryGetValue(property.HintName, out var list)) + { + list = []; + byType[property.HintName] = list; + order.Add(property.HintName); + } + + list.Add(property); + } + } + + /// Writes the partial declarations holding each property's helper field and body. + /// The properties one type declares. + /// The consumer compilation's language-feature snapshot. + /// The file's text. + private static string Generate(List properties, in LanguageFeatures features) + { + var declaration = properties[0].Declaration; + var sb = SourceWriter.Rent(CodeGeneratorHelpers.PerInvocationBufferCapacity * properties.Count) + .FileHeader(features.EmitGeneratedCodeMarkers, enableNullable: true) + .BlankLine(); + + if (AppendUsings(sb, properties)) + { + _ = sb.BlankLine(); + } + + CodeGeneratorHelpers.OpenPartialDeclaration(sb, declaration); + for (var i = 0; i < properties.Count; i++) + { + if (i > 0) + { + _ = sb.BlankLine(); + } + + AppendProperty(sb, properties[i]); + } + + CodeGeneratorHelpers.ClosePartialDeclaration(sb, declaration); + + return sb.ToStringAndReturn(); + } + + /// Writes each directive the type's initial values need, once. + /// The writer, at the top of the file. + /// The properties one type declares. + /// when any directive was written. + private static bool AppendUsings(SourceWriter sb, List properties) + { + HashSet? written = null; + for (var i = 0; i < properties.Count; i++) + { + var usings = properties[i].Usings; + for (var j = 0; j < usings.Length; j++) + { + written ??= [with(StringComparer.Ordinal)]; + if (written.Add(usings[j])) + { + _ = sb.Line(usings[j]); + } + } + } + + return written is not null; + } + + /// Writes one property's helper field and the body that reads it. + /// The writer, at the level of the type's members. + /// The property. + private static void AppendProperty(SourceWriter sb, ObservableAsPropertyInfo property) + { + var name = property.PropertyName; + if (property.StoresInitialValue) + { + _ = sb.Append("/// The value returns until its helper is assigned.") + .Append("private readonly ").Append(property.TypeFullName).Append(' '); + _ = AppendFieldName(sb, name).Append(" = ").Append(property.InitialValue!).EndStatement() + .BlankLine(); + } + + _ = sb.Append("/// Backs ; assign it with ToProperty.") + .Append(property.HelperModifiers).Append(' ').Append(HelperType).Append('<').Append(property.TypeFullName).Append(">? "); + _ = AppendFieldName(sb, name).Append("Helper").EndStatement() + .BlankLine() + .Append(property.Modifiers).Append(' ').Append(property.TypeFullName).Append(' ').Append(name).Append(" => "); + + // A source that produces a value as it is subscribed raises the property's notifications before the helper is + // assigned, and a listener reading the property then asks the starting helper for its value. + _ = AppendFieldName(sb, name).Append("Helper is null ? ").Append(HelperType).Append('<').Append(property.TypeFullName) + .Append(">.PendingValue(this, ").AppendQuoted(name).Append(", "); + _ = property.StoresInitialValue + ? AppendFieldName(sb, name) + : sb.Append(property.InitialValue ?? "default!"); + _ = AppendFieldName(sb.Append(") : "), name).Line("Helper.Value;"); + } + + /// Appends a field name for a property, _{name} with the first letter lowered, without building a string for it. + /// The string builder to append to. + /// The property name. + /// The builder, for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter AppendFieldName(SourceWriter sb, string propertyName) => + sb.Append('_').Append(char.ToLowerInvariant(propertyName[0])).Append(propertyName, 1, propertyName.Length - 1); + + /// Names a type's generated file from its metadata name, which is unique within the compilation. + /// The type. + /// The hint name. + private static string HintNameFor(INamedTypeSymbol type) + { + // The display string is the one unavoidable allocation; the hint name is built from it in a pooled buffer. + var display = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var name = new PooledStringBuilder(display.Length + HintSuffix.Length); + for (var i = GlobalPrefix.Length; i < display.Length; i++) + { + var c = display[i]; + _ = c switch + { + '<' => name.Append('['), + '>' => name.Append(']'), + ' ' => name, + _ => name.Append(c), + }; + } + + return name.Append(HintSuffix).ToStringAndReturn(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Generators/SourceGeneratorsCompilation.cs b/src/ReactiveUI.Binding.SourceGenerators/Generators/SourceGeneratorsCompilation.cs new file mode 100644 index 00000000..1350163d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Generators/SourceGeneratorsCompilation.cs @@ -0,0 +1,189 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Generators; + +/// +/// Builds the compilation call sites are read from when the consumer uses ReactiveUI.SourceGenerators or a XAML source +/// generator: the consumer's compilation, plus declarations of the members those generators add. +/// +/// +/// +/// Every generator reads the compilation as the consumer wrote it, without any generator's output. A call site that +/// binds a property ReactiveUI.SourceGenerators writes, such as the one [Reactive] writes for a field, names a +/// member that does not exist yet, so it cannot be read at all. A class marked [IReactiveObject] looks as if it +/// raised no notification. A control named in a MAUI or Avalonia page is a field those platforms' generators write, so a +/// binding to it cannot be read either. +/// +/// +/// This pipeline declares those members and interfaces in one file that is never emitted, and adds it to a private copy +/// of the compilation. Call sites are read from that copy, so they see the same members the final build does. A +/// compilation that uses none of the attributes gets no copy, and its call sites are read as before. +/// +/// +internal static class SourceGeneratorsCompilation +{ + /// The capacity the declarations file starts with. + private const int DeclarationsCapacity = 1024; + + /// Registers the attribute pipelines and returns the compilation call sites are read from. + /// The generator initialization context. + /// The compilation with the declared members, or null when the consumer uses none of the attributes. + internal static IncrementalValueProvider Register(in IncrementalGeneratorInitializationContext context) + { + Func isVariable = static (node, _) => node is VariableDeclaratorSyntax; + Func isMethod = static (node, _) => node is MethodDeclarationSyntax; + Func isType = static (node, _) => node is TypeDeclarationSyntax; + + var reactive = Collect(in context, Constants.SourceGeneratorsReactiveAttributeMetadataName, isVariable, SourceGeneratorsMemberExtractor.ExtractReactive); + var collections = Collect(in context, Constants.SourceGeneratorsReactiveCollectionAttributeMetadataName, isVariable, SourceGeneratorsMemberExtractor.ExtractReactiveCollection); + var derivedLists = Collect(in context, Constants.SourceGeneratorsBindableDerivedListAttributeMetadataName, isVariable, SourceGeneratorsMemberExtractor.ExtractBindableDerivedList); + var commands = Collect(in context, Constants.SourceGeneratorsReactiveCommandAttributeMetadataName, isMethod, SourceGeneratorsMemberExtractor.ExtractReactiveCommand); + var reactiveObjects = Collect(in context, Constants.SourceGeneratorsIReactiveObjectAttributeMetadataName, isType, SourceGeneratorsMemberExtractor.ExtractIReactiveObject); + + // XAML pages are read once per change to the file; their types are resolved against the compilation. + var xamlFields = context.AdditionalTextsProvider + .Combine(context.AnalyzerConfigOptionsProvider) + .Select(static (data, ct) => XamlPageReader.Read(data.Left, data.Right.GetOptions(data.Left), data.Right.GlobalOptions, ct)) + .Where(static page => page is not null) + .Select(static (page, _) => page!) + .Collect() + .Combine(context.CompilationProvider) + .Select(static (data, ct) => XamlMemberResolver.Resolve(RoslynArray.Unwrap(data.Left), data.Right, ct)); + + var declarations = reactiveObjects + .Combine(reactive) + .Combine(collections) + .Combine(derivedLists) + .Combine(commands) + .Combine(xamlFields) + .Select(static (data, _) => WriteDeclarations( + data.Left.Left.Left.Left.Left, + data.Left.Left.Left.Left.Right, + data.Left.Left.Left.Right, + data.Left.Left.Right, + data.Left.Right, + data.Right)); + + // The declarations are parsed once per change to them, not once per edit anywhere in the compilation. + var tree = declarations + .Combine(context.ParseOptionsProvider) + .Select(static (data, ct) => data.Left.Length == 0 + ? null + : CSharpSyntaxTree.ParseText(data.Left, data.Right as CSharpParseOptions, cancellationToken: ct)); + + return context.CompilationProvider + .Combine(tree) + .Select(static (data, _) => data.Right is null ? null : data.Left.AddSyntaxTrees(data.Right)); + } + + /// Writes the declarations of every member and interface, grouped by the type they belong to. + /// The members each attribute describes, with nulls for the ones it declined. + /// The declarations file, or an empty string when there is nothing to declare. + internal static string WriteDeclarations(params EquatableArray[] groups) + { + var order = new List(); + var interfaces = new Dictionary(); + var properties = new Dictionary>(); + foreach (var group in groups) + { + foreach (var member in group.AsSpan()) + { + Add(member, order, interfaces, properties); + } + } + + if (order.Count == 0) + { + return string.Empty; + } + + var writer = SourceWriter.Rent(DeclarationsCapacity); + foreach (var declaration in order) + { + var opened = interfaces.TryGetValue(declaration, out var implemented) + ? declaration with { TypeHeaders = WithInterface(declaration.TypeHeaders, implemented) } + : declaration; + + CodeGeneratorHelpers.OpenPartialDeclaration(writer, opened); + foreach (var property in properties[declaration]) + { + _ = writer.Line(property); + } + + CodeGeneratorHelpers.ClosePartialDeclaration(writer, opened); + } + + return writer.ToStringAndReturn(); + } + + /// Files a member under the type it belongs to, keeping the order types are first seen in. + /// The member. + /// The types, in the order they were first seen. + /// The interface each type gains. + /// The properties each type gains. + private static void Add( + SourceGeneratorsMember member, + List order, + Dictionary interfaces, + Dictionary> properties) + { + if (!properties.TryGetValue(member.Declaration, out var list)) + { + list = []; + properties.Add(member.Declaration, list); + order.Add(member.Declaration); + } + + if (member.Interface is { } implemented) + { + interfaces[member.Declaration] = implemented; + return; + } + + list.Add(member.Property!); + } + + /// Runs one attribute's pipeline and gathers what it describes. + /// The generator initialization context. + /// The attribute's metadata name. + /// The kind of declaration the attribute is placed on. + /// The description of what the attribute adds. + /// Every description, with nulls for the declarations the attribute adds nothing to. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static IncrementalValueProvider> Collect( + in IncrementalGeneratorInitializationContext context, + string metadataName, + Func predicate, + Func extract) => + context.SyntaxProvider.ForAttributeWithMetadataName(metadataName, predicate, extract) + .Where(static member => member is not null) + .Select(static (member, _) => member!) + .Collect() + .Select(static (members, _) => EquatableArray.FromRoslyn(members)); + + /// Adds an interface to the innermost type's header. + /// The headers, outermost first. + /// The fully qualified interface. + /// The headers with the interface on the last one. + private static EquatableArray WithInterface(EquatableArray headers, string implemented) + { + var copy = new string[headers.Length]; + for (var i = 0; i < copy.Length; i++) + { + copy[i] = headers[i]; + } + + copy[^1] = $"{copy[^1]} : {implemented}"; + return new(copy); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Generators/ViewLocatorDispatchGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Generators/ViewLocatorDispatchGenerator.cs new file mode 100644 index 00000000..44bba542 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Generators/ViewLocatorDispatchGenerator.cs @@ -0,0 +1,526 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Generators; + +/// +/// Generates the AOT-safe view dispatch code for entries. +/// Emits a type-switch function that resolves views without reflection. +/// +internal static class ViewLocatorDispatchGenerator +{ + /// Opens the test that narrows a resolved instance to a view type. + private const string InstanceTypeTestOpen = "if (instance is "; + + /// Closes a call that passes the requested contract through to a resolver. + private const string ContractResolverCall = "(contract);"; + + /// + /// The test that limits a view with no contract to a request with no contract. A request under a contract no + /// generated view claims falls through, so the locator tries its mappings and the service locator with that contract. + /// + private const string DefaultContractTest = "contract.Length == 0"; + + /// The identifier prefix used for the per-view resolver methods emitted in the generated source. + private const string ResolverMethodNamePrefix = "__ResolveView_"; + + /// + /// Registers the view locator dispatch pipeline into the incremental generator. + /// Scans for classes implementing IViewFor<T> and generates a dispatch method. + /// + /// The incremental generator initialization context. + /// The consumer compilation's C# language-feature snapshot. + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValueProvider languageFeatures) + { + var viewRegistrations = context.SyntaxProvider + .CreateSyntaxProvider( + RoslynHelpers.IsClassWithBaseList, + ViewRegistrationExtractor.ExtractFromIViewForImplementation) + .Where(static x => x is not null) + .Select(static (x, _) => x!); + + // ReactiveUI.SourceGenerators adds IViewFor in output this generator cannot see, so its attribute is read too. + Func isClass = static (node, _) => node is ClassDeclarationSyntax; + Func fromAttribute = ViewRegistrationExtractor.ExtractFromIViewForAttribute; + var genericAttribute = context.SyntaxProvider + .ForAttributeWithMetadataName(Constants.SourceGeneratorsGenericIViewForAttributeMetadataName, isClass, fromAttribute) + .Collect(); + var namedAttribute = context.SyntaxProvider + .ForAttributeWithMetadataName(Constants.SourceGeneratorsIViewForAttributeMetadataName, isClass, fromAttribute) + .Collect(); + + // Views found through the interface come first, so deduplication keeps them over the attribute's. + context.RegisterSourceOutput( + viewRegistrations.Collect().Combine(genericAttribute).Combine(namedAttribute).Combine(languageFeatures), + static (ctx, data) => Generate( + ctx, + Concatenate(RoslynArray.Unwrap(data.Left.Left.Left), RoslynArray.Unwrap(data.Left.Left.Right), RoslynArray.Unwrap(data.Left.Right)), + data.Right)); + } + + /// Joins the registrations each pipeline found, interface registrations first. + /// The views found through IViewFor<T>. + /// The views found through [IViewFor<T>], with nulls for declined ones. + /// The views found through [IViewFor("...")], with nulls for declined ones. + /// Every registration, in that order. + internal static ViewRegistrationInfo[] Concatenate( + ViewRegistrationInfo[] fromInterfaces, + ViewRegistrationInfo?[] fromGenericAttribute, + ViewRegistrationInfo?[] fromNamedAttribute) + { + if (fromGenericAttribute.Length == 0 && fromNamedAttribute.Length == 0) + { + return fromInterfaces; + } + + List all = [with(fromInterfaces.Length + fromGenericAttribute.Length + fromNamedAttribute.Length)]; + all.AddRange(fromInterfaces); + AddFound(all, fromGenericAttribute); + AddFound(all, fromNamedAttribute); + return all.ToArray(); + } + + /// Generates the ViewDispatch.g.cs source file from collected view registrations. + /// The source production context. + /// All detected view registration infos. + /// The consumer compilation's language-feature and generation-option snapshot. + internal static void Generate(in SourceProductionContext context, ViewRegistrationInfo[] registrations, in LanguageFeatures features) + { + if (registrations.Length == 0) + { + return; + } + + // Deduplicate by (ViewModel FQN, Contract) pair — first occurrence wins + var deduplicated = Deduplicate(registrations); + + const int DispatchPreambleCapacity = 2_048; + const int PerRegistrationCapacity = 512; + + var sb = SourceWriter.Rent(DispatchPreambleCapacity + (deduplicated.Count * PerRegistrationCapacity)); + GenerateSource(sb, deduplicated, features); + CodeGeneratorHelpers.AddGeneratedSource( + context, + "ViewDispatch.g.cs", + sb.ToStringAndReturn(), + features); + } + + /// Generates the full source output into the writer. + /// The writer, at the start of the file. + /// The deduplicated registrations. + /// The consumer compilation's language-feature and generation-option snapshot. + internal static void GenerateSource(SourceWriter sb, List registrations, in LanguageFeatures features) + { + var supportsNullable = features.SupportsNullable; + CodeGeneratorHelpers.OpenGeneratedClass( + sb.FileHeader(features.EmitGeneratedCodeMarkers, supportsNullable) + .BlankLine() + .OpenNamespace(features.GeneratedNamespace), + features); + + // Singleton cache fields for [SingleInstanceView] views + EmitSingletonFields(sb, registrations); + + EmitRegistrationHook(sb, features); + + // Emit the per-view-model dispatch branches into the dispatch function body. + EmitDispatchBranches(sb, registrations); + + _ = sb.BlankLine() + .Comment("No compile-time mapping found; fall back to runtime resolution.") + .Return("null") + .CloseBlock(); + + // Per-view resolver methods + for (var i = 0; i < registrations.Count; i++) + { + GenerateResolverMethod(sb, registrations[i], i, supportsNullable); + } + + _ = sb.CloseBlock() + .CloseBlock(); + + if (features.DeclaresModuleInitializerAttribute) + { + EmitModuleInitializerAttribute(sb); + } + } + + /// Adds the registrations a pipeline found, skipping the ones it declined. + /// The registrations so far. + /// The pipeline's results, with nulls for declined ones. + private static void AddFound(List all, ViewRegistrationInfo?[] found) + { + for (var i = 0; i < found.Length; i++) + { + if (found[i] is { } registration) + { + all.Add(registration); + } + } + } + + /// Deduplicates view registrations by (view model fully qualified name, contract) pair. + /// The raw registrations. + /// A deduplicated list of registrations. + private static List Deduplicate(ViewRegistrationInfo[] registrations) + { + var seen = new HashSet(); + var result = new List(registrations.Length); + + for (var i = 0; i < registrations.Length; i++) + { + var reg = registrations[i]; + if (seen.Add(new(reg.ViewModelFullyQualifiedName, reg.Contract))) + { + result.Add(reg); + } + } + + return result; + } + + /// Declares the module initializer attribute for a consumer whose framework does not ship it. + /// The writer, at the start of a line outside any namespace. + /// + /// File-local, so the declaration belongs to this file alone: a shared internal one would be a type visible to + /// every assembly granted InternalsVisibleTo, colliding with that assembly's own. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void EmitModuleInitializerAttribute(SourceWriter sb) => + sb.BlankLine() + .OpenNamespace("System.Runtime.CompilerServices") + .Summary("Marks a method the runtime calls when its module loads.") + .Attribute($"{GeneratedTypeNames.AttributeUsage}({GeneratedTypeNames.AttributeTargets}.Method, AllowMultiple = false)") + .OpenType($"file sealed class ModuleInitializerAttribute : {GeneratedTypeNames.Attribute}") + .CloseBlock() + .CloseBlock(); + + /// Emits what registers the dispatch function, and the signature of the dispatch function itself. + /// The writer, at the class's member level; left inside the dispatch function's body. + /// The consumer compilation's language-feature and generation-option snapshot. + /// + /// From C# 9 the registration is a module initializer, which runs before any code in the assembly, so a + /// view resolves whether or not a binding has run. An older consumer has no such hook. Its registration is + /// a static constructor, which runs when the class is first used; a field initializer would not do, because + /// the runtime only runs one when a static field is read, and no generated member reads one. + /// + private static void EmitRegistrationHook(SourceWriter sb, in LanguageFeatures features) + { + _ = sb.OpenSummary() + .DocLine("Registers the source-generated view dispatch function with"); + + if (features.SupportsModuleInitializer) + { + _ = sb.DocLine($" when the module loads.") + .CloseSummary() + .Attribute("global::System.Runtime.CompilerServices.ModuleInitializer") + .Line("internal static void __RegisterViewDispatch()"); + } + else + { + _ = sb.DocLine($" when this class is first used.") + .CloseSummary() + .Append("static ").Append(features.GeneratedClassName).Line("()"); + } + + _ = sb.OpenBlock() + .Line($"{GeneratedTypeNames.DefaultViewLocator}.SetGeneratedViewDispatch(") + .Indent() + .Line("__TryResolveView);") + .Outdent() + .CloseBlock() + .BlankLine(); + + EmitDispatchSignature(sb, features.SupportsNullable ? "?" : string.Empty); + } + + /// Emits the documentation and signature of the dispatch function, and opens its body. + /// The writer, at the class's member level; left inside the dispatch function's body. + /// The nullable annotation to emit, or an empty string when unsupported. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void EmitDispatchSignature(SourceWriter sb, string nullable) => + sb.OpenSummary() + .DocLine("Compile-time generated type-switch dispatch for view resolution.") + .DocLine("Attempts to resolve a view for the given view model instance without reflection.") + .CloseSummary() + .DocLine("The view model instance to resolve a view for.") + .DocLine("The contract string (empty string for default).") + .DocLine("The resolved view, or if no generated mapping exists.") + .Append($"private static {GeneratedTypeNames.IViewFor}").Append(nullable).Line(" __TryResolveView(") + .Indent() + .Line("object instance, string contract)") + .Outdent() + .OpenBlock(); + + /// Emits the singleton cache fields for [SingleInstanceView] views with a parameterless constructor. + /// The writer, at the class's member level. + /// The deduplicated registrations. + private static void EmitSingletonFields(SourceWriter sb, List registrations) + { + for (var i = 0; i < registrations.Count; i++) + { + var reg = registrations[i]; + if (reg.IsSingleInstance && reg.HasParameterlessConstructor) + { + _ = sb.OpenSummary() + .BeginDocLine().Append("Cached singleton instance for (marked with [SingleInstanceView]).") + .CloseSummary() + .Append("private static ").Append(reg.ViewFullyQualifiedName).Append(" __singletonView_").Append(i).EndStatement() + .BlankLine(); + } + } + } + + /// + /// Groups registrations by ViewModel FQN and emits the dispatch branches in order. + /// Contract-specific checks are emitted before the default (no-contract) branch within a single + /// type-switch block. Without grouping, a default branch emitted first would unconditionally + /// match and shadow contract-specific branches. + /// + /// The writer, inside the dispatch function's body. + /// The deduplicated registrations. + private static void EmitDispatchBranches(SourceWriter sb, List registrations) + { + var viewModelOrder = new List(registrations.Count); + var viewModelGroupIndices = new Dictionary>(registrations.Count); + for (var i = 0; i < registrations.Count; i++) + { + var viewModelFqn = registrations[i].ViewModelFullyQualifiedName; + if (!viewModelGroupIndices.TryGetValue(viewModelFqn, out var indices)) + { + indices = []; + viewModelGroupIndices[viewModelFqn] = indices; + viewModelOrder.Add(viewModelFqn); + } + + indices.Add(i); + } + + for (var g = 0; g < viewModelOrder.Count; g++) + { + var viewModelFqn = viewModelOrder[g]; + var indices = viewModelGroupIndices[viewModelFqn]; + + if (indices.Count == 1) + { + // Single registration per VM: emit the compact form. + EmitSingleRegistrationDispatch(sb, registrations, indices[0]); + } + else + { + // Multiple registrations for same VM: group into single type-switch. + EmitGroupedDispatch(sb, registrations, viewModelFqn, indices); + } + } + } + + /// + /// Emits a dispatch branch for a single registration (one view per VM type). + /// Preserves the compact output format used by existing tests. + /// + /// The writer, inside the dispatch function's body. + /// All registrations. + /// The registration index. + private static void EmitSingleRegistrationDispatch( + SourceWriter sb, + List registrations, + int index) + { + var reg = registrations[index]; + + _ = sb.BeginComment().Append(reg.ViewModelFullyQualifiedName).Append(" -> ").Append(reg.ViewFullyQualifiedName); + if (reg.Contract is not null) + { + var escapedLiteral = SymbolDisplay.FormatLiteral(reg.Contract, true); + _ = sb.Append(" [contract: ").Append(escapedLiteral).Line("]") + .Append(InstanceTypeTestOpen).Append(reg.ViewModelFullyQualifiedName).CloseCondition() + .BeginIf().Append("contract == ").Append(escapedLiteral).CloseCondition(); + AppendResolverReturn(sb, index); + _ = sb.CloseBlock(); + } + else + { + _ = sb.EndLine() + .Append(InstanceTypeTestOpen).Append(reg.ViewModelFullyQualifiedName).Append(" && ").Append(DefaultContractTest).CloseCondition(); + AppendResolverReturn(sb, index); + } + + _ = sb.CloseBlock(); + } + + /// + /// Emits a grouped dispatch branch for a VM type with multiple registrations. + /// Contract-specific checks are emitted first, with the default (no-contract) branch last. + /// + /// The writer, inside the dispatch function's body. + /// All registrations. + /// The fully qualified VM type name. + /// The registration indices for this VM type. + private static void EmitGroupedDispatch( + SourceWriter sb, + List registrations, + string viewModelFqn, + List indices) + { + _ = sb.BeginComment().Append(viewModelFqn).Line(" — multiple views") + .Append(InstanceTypeTestOpen).Append(viewModelFqn).CloseCondition(); + + // Contract-specific branches first + for (var j = 0; j < indices.Count; j++) + { + var idx = indices[j]; + var reg = registrations[idx]; + if (reg.Contract is null) + { + continue; + } + + var escapedLiteral = SymbolDisplay.FormatLiteral(reg.Contract, true); + _ = sb.BeginComment().Append("-> ").Append(reg.ViewFullyQualifiedName).Append(" [contract: ").Append(escapedLiteral).Line("]") + .BeginIf().Append("contract == ").Append(escapedLiteral).CloseCondition(); + AppendResolverReturn(sb, idx); + _ = sb.CloseBlock(); + } + + // Default (no-contract) branch last + for (var j = 0; j < indices.Count; j++) + { + var idx = indices[j]; + var reg = registrations[idx]; + if (reg.Contract is not null) + { + continue; + } + + _ = sb.BeginComment().Append("-> ").Append(reg.ViewFullyQualifiedName).Line(" (default)") + .If(DefaultContractTest); + AppendResolverReturn(sb, idx); + _ = sb.CloseBlock(); + break; // Only one default per VM (deduplicated earlier) + } + + _ = sb.CloseBlock(); + } + + /// Writes the return that hands the requested contract to one view's resolver. + /// The writer, inside the branch that matched the view. + /// The registration index, which names the resolver. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendResolverReturn(SourceWriter sb, int index) => + _ = sb.BeginReturn().Append(ResolverMethodNamePrefix).Append(index).Line(ContractResolverCall); + + /// Generates a per-view-model resolver method. + /// The writer, at the class's member level. + /// The view registration info. + /// The unique index for method naming. + /// Whether the target supports nullable reference types (C# 8+). + private static void GenerateResolverMethod(SourceWriter sb, ViewRegistrationInfo reg, int index, bool supportsNullable) + { + var nullable = supportsNullable ? "?" : string.Empty; + + var strategyDoc = (reg.IsSingleInstance, reg.HasParameterlessConstructor) switch + { + (true, true) => "Returns a cached singleton instance (marked with [SingleInstanceView]).", + (true, false) => "Service locator only — [SingleInstanceView] without parameterless constructor.", + (false, true) => "Tries the service locator first, then falls back to direct construction.", + (false, false) => "Service locator only — no direct construction available." + }; + + _ = sb.BlankLine() + .OpenSummary() + .BeginDocLine().Append("Resolves a view for .") + .DocLine(strategyDoc) + .CloseSummary() + .DocLine("The contract string (empty string for default).") + .DocLine("The resolved view, or if resolution fails.") + .Append($"private static {GeneratedTypeNames.IViewFor}").Append(nullable).Append(' ').Append(ResolverMethodNamePrefix).Append(index) + .Line("(string contract)") + .OpenBlock() + .Comment("Normalize contract: empty string means no contract (null for Splat lookup).") + .Append("string").Append(nullable).Line(" svcContract = contract.Length == 0 ? null : contract;") + .BlankLine() + .Comment("Prefer service-locator-registered view (supports DI-configured instances).") + .Line("var view = global::Splat.AppLocator.Current") + .Indent() + .Append($".GetService<{GeneratedTypeNames.IViewFor}<").Append(reg.ViewModelFullyQualifiedName).Line(">>(") + .Indent() + .Line("svcContract);") + .Outdent() + .Outdent() + .If("view != null") + .Return("view") + .CloseBlock(); + + EmitResolverFallback(sb, reg, index); + + _ = sb.CloseBlock(); + } + + /// + /// Emits what the resolver does when the service locator has nothing registered: construct the + /// view directly, cache a singleton, or give up. + /// + /// The writer, inside the resolver's body. + /// The view registration being emitted. + /// The registration's index, used to name the singleton field. + private static void EmitResolverFallback(SourceWriter sb, ViewRegistrationInfo reg, int index) + { + _ = sb.BlankLine(); + if (!reg.HasParameterlessConstructor) + { + _ = sb.Return("null"); + return; + } + + if (!reg.IsSingleInstance) + { + _ = sb.BeginComment().Append("Fallback: direct construction (").Append(reg.ViewFullyQualifiedName).Line(" has a parameterless constructor).") + .BeginReturn(); + _ = AppendViewResult(sb, reg, $"new {reg.ViewFullyQualifiedName}()").EndStatement(); + return; + } + + var fieldName = $"__singletonView_{index}"; + _ = sb.BeginComment().Append("Fallback: singleton construction (").Append(reg.ViewFullyQualifiedName).Line(" has [SingleInstanceView]).") + .BeginIf().Append(fieldName).Append(" == null").CloseCondition() + .Line("System.Threading.Interlocked.CompareExchange(") + .Indent() + .Append("ref ").Append(fieldName).Line(",") + .Append("new ").Append(reg.ViewFullyQualifiedName).Line("(),") + .Line("null);") + .Outdent() + .CloseBlock() + .BlankLine() + .BeginReturn(); + _ = AppendViewResult(sb, reg, fieldName).EndStatement(); + } + + /// Writes a constructed or cached view as the resolver's result. + /// The writer, after return . + /// The view registration. + /// The expression holding the view. + /// The writer, for chaining. + /// + /// A view found through [IViewFor] may not implement IViewFor: ReactiveUI.SourceGenerators only adds + /// the interface to a class deriving from a UI type it supports. Casting through keeps the + /// resolver compiling either way, and a view without the interface resolves to null. + /// + private static SourceWriter AppendViewResult(SourceWriter sb, ViewRegistrationInfo reg, string view) => + reg.IsDeclaredByAttribute + ? sb.Append("(object)").Append(view).Append($" as {GeneratedTypeNames.IViewFor}") + : sb.Append(view); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindToExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindToExtractor.cs new file mode 100644 index 00000000..8e8dd796 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindToExtractor.cs @@ -0,0 +1,151 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; +using ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; +using ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts from BindTo invocations. +internal static class BindToExtractor +{ + /// The minimum number of arguments a BindTo invocation must have (target, property). + private const int MinimumBindToArgumentCount = 2; + + /// Pipeline B transform: extracts from a BindTo invocation. + /// The generator syntax context. + /// Cancellation token. + /// A POCO, or null if the invocation is not analyzable. + internal static BindToInvocationInfo? ExtractBindToInvocation(CallSiteContext context, CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null + || !ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !CallSiteHosting.TryResolve(context, methodSymbol, ct, out var scope)) + { + return null; + } + + // Need at least 2 arguments: target, property. + var args = invocation.ArgumentList.Arguments; + if (!ExtractorValidation.HasMinimumArguments(args.Count, MinimumBindToArgumentCount)) + { + return null; + } + + // The source value type is the T in the receiver's IObservable. + var receiverType = semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type; + var sourceValueType = GetObservableValueType(receiverType); + if (sourceValueType is null) + { + return null; + } + + var targetPropertyArg = args[1].Expression; + var targetPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(targetPropertyArg, semanticModel, scope, ct); + var targetType = semanticModel.GetTypeInfo(args[0].Expression, ct).Type; + var targetTypeName = scope.NameOf(targetType); + + // A target the model cannot name leaves nothing to declare a member against, generated or otherwise. + if (targetTypeName is null) + { + return null; + } + + // A selector the compiler cannot read names no path, so nothing is generated and the stub throws, + // naming the Unsafe overload that resolves it. + if (targetPropertyPath is not { Length: > 0 }) + { + return null; + } + + var leaf = targetPropertyPath[^1]; + var sourceValueTypeFullName = sourceValueType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + + DetectConversionParameters(methodSymbol, out var hasConversionHint, out var hasConverterOverride); + + var targetValueType = ConversionPluginRegistry.SelectorType(targetPropertyArg, semanticModel, ct); + var targetExpressionText = targetPropertyArg.ToString(); + + return new( + invocation.SyntaxTree.FilePath, + SyntaxHelpers.CallerLineNumber(invocation, ct), + sourceValueTypeFullName, + targetTypeName, + new(targetPropertyPath), + leaf.PropertyTypeFullName, + leaf.IsReferenceType, + hasConversionHint, + hasConverterOverride, + targetExpressionText, + InterceptableLocationReader.Read(semanticModel, invocation, ct), + ViewThreadPluginRegistry.InvokerFor(targetType, semanticModel.Compilation), + scope.Call) + { + Conversion = ConversionPluginRegistry.Select(sourceValueType, targetValueType, semanticModel.Compilation), + SetMethod = SetMethodPluginRegistry.Select(sourceValueType, targetValueType), + }; + } + + /// + /// Returns the T of System.IObservable<T> for the given receiver type, + /// checking the type itself and all implemented interfaces. + /// + /// The receiver type symbol. + /// The observable value type, or null if the receiver is not an observable. + internal static ITypeSymbol? GetObservableValueType(ITypeSymbol? receiver) + { + if (receiver is INamedTypeSymbol direct && SymbolHelpers.IsIObservable(direct)) + { + return direct.TypeArguments[0]; + } + + // A null receiver has no interfaces, so it returns null like one that implements none. + foreach (var iface in receiver?.AllInterfaces ?? System.Collections.Immutable.ImmutableArray.Empty) + { + if (SymbolHelpers.IsIObservable(iface)) + { + return iface.TypeArguments[0]; + } + } + + return null; + } + + /// + /// Scans the method parameters to detect the presence of a conversionHint parameter + /// and an IBindingTypeConverter-typed converterOverride parameter. + /// + /// The resolved method symbol. + /// Set to true if a conversionHint parameter exists. + /// Set to true if an IBindingTypeConverter converter override exists. + private static void DetectConversionParameters( + IMethodSymbol methodSymbol, + out bool hasConversionHint, + out bool hasConverterOverride) + { + hasConversionHint = false; + hasConverterOverride = false; + + foreach (var parameter in methodSymbol.Parameters) + { + if (parameter.Name == "conversionHint") + { + hasConversionHint = true; + } + else if (parameter.Name == "converterOverride" && parameter.Type.Name == "IBindingTypeConverter") + { + hasConverterOverride = true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindingExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindingExtractor.cs new file mode 100644 index 00000000..c85bfaaa --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/BindingExtractor.cs @@ -0,0 +1,196 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; +using ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; +using ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts BindingInvocationInfo from BindOneWay, BindTwoWay, OneWayBind, and Bind invocations. +internal static class BindingExtractor +{ + /// + /// The minimum number of arguments a binding invocation must have + /// (source/view, target/view model, source property, target property). + /// + private const int MinimumBindingArgumentCount = 3; + + /// Pipeline B transform: extracts BindingInvocationInfo from a BindOneWay/BindTwoWay/OneWayBind/Bind invocation. + /// The generator syntax context. + /// Cancellation token. + /// A BindingInvocationInfo POCO, or null if the invocation is not analyzable. + /// If the cancellation token is triggered. + internal static BindingInvocationInfo? ExtractBindInvocation(CallSiteContext context, CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null) + { + return null; + } + + // Verify this is our stub or generated method + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !CallSiteHosting.TryResolve(context, methodSymbol, ct, out var scope)) + { + return null; + } + + var methodName = memberAccess.Name.Identifier.Text; + var isTwoWay = methodName is Constants.BindTwoWayMethodName or Constants.BindMethodName; + + // Need at least 3 arguments: source/view (this), target/viewModel, sourceProp/vmProp, targetProp/viewProp + var args = invocation.ArgumentList.Arguments; + InvalidOperationExceptionHelper.EnsureMinimumArguments(args.Count, MinimumBindingArgumentCount); + + // Extract property paths + var sourcePropertyArg = args[1].Expression; + var targetPropertyArg = args[2].Expression; + + var sourcePropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(sourcePropertyArg, semanticModel, scope, ct); + var targetPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(targetPropertyArg, semanticModel, scope, ct); + + if (sourcePropertyPath is null || targetPropertyPath is null) + { + return null; + } + + if (ResolveBindingSides(memberAccess, args, methodName, semanticModel, scope, ct) is not { } sides) + { + return null; + } + + DetectBindingParameters(methodSymbol, out var hasConversion, out var hasScheduler, out var hasConverterOverride); + + var sourceValueType = ConversionPluginRegistry.SelectorType(sourcePropertyArg, semanticModel, ct); + var targetValueType = ConversionPluginRegistry.SelectorType(targetPropertyArg, semanticModel, ct); + + return new( + invocation.SyntaxTree.FilePath, + SyntaxHelpers.CallerLineNumber(invocation, ct), + sides.SourceTypeFullName, + new(sourcePropertyPath), + sides.TargetTypeFullName, + new(targetPropertyPath), + sourcePropertyPath[^1].PropertyTypeFullName, + targetPropertyPath[^1].PropertyTypeFullName, + hasConversion, + hasScheduler, + isTwoWay, + methodName, + sourcePropertyArg.ToString(), + targetPropertyArg.ToString(), + hasConverterOverride, + InterceptableLocationReader.Read(semanticModel, invocation, ct), + sides.SourceViewThreadInvoker, + sides.TargetViewThreadInvoker, + scope.Call) + { + ForwardConversion = ConversionPluginRegistry.Select(sourceValueType, targetValueType, semanticModel.Compilation), + ReverseConversion = isTwoWay ? ConversionPluginRegistry.Select(targetValueType, sourceValueType, semanticModel.Compilation) : null, + SetMethod = SelectSetMethod(isTwoWay, hasConversion, hasConverterOverride, sourceValueType, targetValueType), + }; + } + + /// Selects the native mutation a one-way binding writes through, when nothing converts the value on the way. + /// Whether the binding drives both sides. + /// Whether the call site passes a delegate that converts the value. + /// Whether the call site passes a converter object. + /// The type the source produces. + /// The type the target holds. + /// The mutation, or when the value is assigned. + private static SetMethodInfo? SelectSetMethod( + bool isTwoWay, + bool hasConversion, + bool hasConverterOverride, + ITypeSymbol? sourceValueType, + ITypeSymbol? targetValueType) => + isTwoWay || hasConversion || hasConverterOverride ? null : SetMethodPluginRegistry.Select(sourceValueType, targetValueType); + + /// + /// Resolves which side of the binding is the source and which is the target. The view-first + /// overloads take the view as the receiver, so the roles are swapped relative to the others. + /// + /// The member access the invocation hangs off. + /// The invocation arguments. + /// The invoked method name. + /// The semantic model. + /// Where the generated code is declared, which decides the types it can name. + /// Cancellation token. + /// + /// The fully qualified source and target type names, or when either side names a + /// type a generated overload could not declare. + /// + private static BindingSides? ResolveBindingSides( + MemberAccessExpressionSyntax memberAccess, + SeparatedSyntaxList args, + string methodName, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + var receiverType = semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type; + var firstArgType = semanticModel.GetTypeInfo(args[0].Expression, ct).Type; + var receiverTypeName = scope.NameOf(receiverType); + var firstArgTypeName = scope.NameOf(firstArgType); + + if (receiverTypeName is null || firstArgTypeName is null) + { + return null; + } + + var receiverInvoker = ViewThreadPluginRegistry.InvokerFor(receiverType, semanticModel.Compilation); + var firstArgInvoker = ViewThreadPluginRegistry.InvokerFor(firstArgType, semanticModel.Compilation); + + var isViewFirst = methodName is Constants.OneWayBindMethodName or Constants.BindMethodName; + return isViewFirst + ? new BindingSides(firstArgTypeName, receiverTypeName, firstArgInvoker, receiverInvoker) + : new BindingSides(receiverTypeName, firstArgTypeName, receiverInvoker, firstArgInvoker); + } + + /// + /// Scans the method parameters to detect conversion, scheduler, and converter-override + /// capabilities of the binding overload. + /// + /// The resolved method symbol. + /// Set to true if a conversion/selector parameter exists. + /// Set to true if a scheduler parameter exists. + /// Set to true if an IBindingTypeConverter converter override exists. + private static void DetectBindingParameters( + IMethodSymbol methodSymbol, + out bool hasConversion, + out bool hasScheduler, + out bool hasConverterOverride) + { + hasConversion = false; + hasScheduler = false; + hasConverterOverride = false; + + foreach (var parameter in methodSymbol.Parameters) + { + // A converter object shares a name with the delegate the same parameter takes elsewhere, so the type + // decides which one this is. + if (SymbolHelpers.DetectHasConverterOverride(parameter)) + { + hasConverterOverride = true; + } + else if (parameter.Name is "conversionFunc" or "sourceToTargetConv" or "selector" or "vmToViewConverter" or "viewModelToViewConverter") + { + hasConversion = true; + } + + if (parameter.Name == "scheduler") + { + hasScheduler = true; + } + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteContext.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteContext.cs new file mode 100644 index 00000000..8257417b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteContext.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// A call site and the semantic model it is read with. +/// The call site. +/// The semantic model that binds it. +/// +/// The model comes from the consumer's compilation, or from the copy that also declares the members ReactiveUI.SourceGenerators +/// adds, so a call site that binds one of those members can be read. It is never part of a pipeline's output. +/// +internal readonly record struct CallSiteContext(SyntaxNode Node, SemanticModel SemanticModel) +{ + /// The semantic model of each file of each compilation copy, shared by every call site in the file. + /// + /// A semantic model caches the members it binds. Call sites in one method share that cache. + /// The table holds the models only while the compilation copy is alive. + /// + private static readonly ConditionalWeakTable> Models = new(); + + /// Reads a call site from the compilation that declares ReactiveUI.SourceGenerators' members, when there is one. + /// The syntax context the scan found the call site in. + /// The compilation with those members declared, or null when the consumer uses none. + /// The call site with the model to read it with. + internal static CallSiteContext From(GeneratorSyntaxContext context, Compilation? sourceGenerators) => + new(context.Node, sourceGenerators is null ? context.SemanticModel : ModelFor(sourceGenerators, context.Node.SyntaxTree)); + + /// Gets the one semantic model a compilation's file is read with. + /// The compilation. + /// The file. + /// The file's model, created on first use. + /// + /// Transforms run in parallel. A semantic model supports queries from several threads. + /// Two first readers can each create a model. Both receive the model the dictionary keeps. + /// + internal static SemanticModel ModelFor(Compilation compilation, SyntaxTree tree) + { + var models = Models.GetValue(compilation, static _ => new()); + return models.TryGetValue(tree, out var model) + ? model + : models.GetOrAdd(tree, compilation.GetSemanticModel(tree)); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteHosting.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteHosting.cs new file mode 100644 index 00000000..953acfaa --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CallSiteHosting.cs @@ -0,0 +1,485 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Decides where a call site's generated code is declared, so that it can name every type and member the call uses. +/// +/// +/// Generated code normally sits in a class of its own, which can only name closed types visible outside the classes +/// that declare them. On a build that intercepts, a call that needs more gets its code moved: +/// +/// +/// +/// A call built from the caller's type parameters moves into a generic class whose type parameters stand in for them. +/// Each of the caller's type parameters has to be one of the called method's own type arguments, so the interceptor can +/// hand it on. +/// +/// +/// A call that names a private or protected type or member moves into the caller's own partial class, which can name +/// it. That class has to be partial, together with every class it is nested in, and none of them may be generic. +/// +/// +/// +/// An interceptor in the generated namespace claims the call. It repeats the called method's signature with its type +/// parameters, so it names nothing out of reach, and forwards to an entry point next to the moved code. A call that +/// meets none of these rules stays out of reach, and an error fails the build at the call. +/// +/// +internal static class CallSiteHosting +{ + /// The name prefix of the interceptor's own type parameters, which never clash with the caller's. + private const string TypeParameterPrefix = "__S"; + + /// The format the hosted signature is written in, which keeps nullable reference annotations. + private static readonly SymbolDisplayFormat SignatureFormat = + SymbolDisplayFormat.FullyQualifiedFormat.AddMiscellaneousOptions( + SymbolDisplayMiscellaneousOptions.IncludeNullableReferenceTypeModifier); + + /// Resolves the scope a call site's generated code is written in. + /// The call site and its semantic model. + /// The resolved binding method. + /// Cancellation token. + /// The scope the generated code can name types in, which may move while the call is read. + /// when generated code can name every type argument of the call. + internal static bool TryResolve(in CallSiteContext context, IMethodSymbol method, CancellationToken ct, out ReachScope scope) + { + scope = ReachScope.ForCall(context, method, ct); + return scope.CanNameAll(method.TypeArguments); + } + + /// Determines whether every type parameter a type is built from is one of a list. + /// The type. + /// The type parameters in scope. + /// when the type names no other type parameter. + internal static bool UsesOnly(ITypeSymbol type, ITypeParameterSymbol[] typeParameters) => + type switch + { + ITypeParameterSymbol parameter => IndexOf(typeParameters, parameter) >= 0, + IArrayTypeSymbol array => UsesOnly(array.ElementType, typeParameters), + INamedTypeSymbol named => AllUseOnly(named.TypeArguments, typeParameters) + && (named.ContainingType is not { } containing || UsesOnly(containing, typeParameters)), + _ => true, + }; + + /// Moves a call's generated code out of a class of its own. + /// The call site and its semantic model. + /// The resolved binding method. + /// Whether the code moves into the caller's own partial class, rather than only a generic class. + /// Cancellation token. + /// Where the code moved to, or null when the call cannot move there. + internal static MovedScope? TryMove(in CallSiteContext context, IMethodSymbol method, bool intoCaller, CancellationToken ct) + { + if (CallerTypeParameters(method) is not { } callerTypeParameters || (!intoCaller && callerTypeParameters.Length == 0)) + { + return null; + } + + INamedTypeSymbol? hostType = null; + PartialTypeDeclaration? declaration = null; + if (intoCaller) + { + hostType = FindHostType(context, context.SemanticModel.Compilation, ct); + declaration = hostType is null ? null : PartialTypeRaisePlugin.DescribeDeclaration(hostType); + if (declaration is null) + { + return null; + } + } + + return Describe(method, hostType, declaration, callerTypeParameters) is { } call + ? new MovedScope(hostType, callerTypeParameters, call) + : null; + } + + /// Writes the constraint clauses of a list of type parameters, with each type parameter renamed as given. + /// The type parameters, in order. + /// The name each type parameter, and each type parameter its constraints name, is written as. + /// The clauses, each starting with where; a type parameter with no constraint gets none. + /// + /// Generic code that repeats a parameter type such as IViewFor<TViewModel> only accepts a type argument + /// that meets the same constraints, so the constraints are repeated too. + /// + internal static EquatableArray ConstraintClauses( + ITypeParameterSymbol[] typeParameters, + Dictionary names) + { + var clauses = new List(typeParameters.Length); + foreach (var typeParameter in typeParameters) + { + if (TypeParameterConstraints.Of(typeParameter, names).Format() is { } constraints) + { + clauses.Add($"where {names[typeParameter]} : {constraints}"); + } + } + + return new([.. clauses]); + } + + /// Writes a type, with each type parameter in a map written by its mapped name. + /// The type. + /// The names to write type parameters by. + /// The type's text. + internal static string Render(ITypeSymbol type, Dictionary names) + { + var text = new PooledStringBuilder(); + foreach (var part in type.ToDisplayParts(SignatureFormat)) + { + _ = part.Symbol is ITypeParameterSymbol parameter && names.TryGetValue(parameter, out var name) + ? text.Append(name) + : text.Append(part.ToString()); + } + + return text.ToStringAndReturn(); + } + + /// Collects the caller's type parameters a call is closed over, when each can be handed on by the interceptor. + /// The resolved binding method. + /// + /// The type parameters in the order the call first names them, or null when one of them is not itself one of the + /// method's type arguments, or when their constraints name a type parameter outside the list. + /// + private static ITypeParameterSymbol[]? CallerTypeParameters(IMethodSymbol method) + { + var found = new List(); + foreach (var argument in method.TypeArguments) + { + Collect(argument, found); + } + + var collected = found.ToArray(); + foreach (var parameter in collected) + { + if (IndexOf(method.TypeArguments.AsSpan(), parameter) < 0) + { + return null; + } + + foreach (var constraint in parameter.ConstraintTypes) + { + if (!UsesOnly(constraint, collected)) + { + return null; + } + } + } + + return collected; + } + + /// Adds every type parameter a type is built from to a list, once each. + /// The type. + /// The list. + private static void Collect(ITypeSymbol type, List found) + { + if (type is ITypeParameterSymbol parameter) + { + AddOnce(found, parameter); + } + else if (type is IArrayTypeSymbol array) + { + Collect(array.ElementType, found); + } + else if (type is INamedTypeSymbol named) + { + foreach (var argument in named.TypeArguments) + { + Collect(argument, found); + } + + if (named.ContainingType is { } containing) + { + Collect(containing, found); + } + } + } + + /// Adds a type parameter to a list unless it is already there. + /// The list. + /// The type parameter. + private static void AddOnce(List found, ITypeParameterSymbol parameter) + { + for (var i = 0; i < found.Count; i++) + { + if (SymbolEqualityComparer.Default.Equals(found[i], parameter)) + { + return; + } + } + + found.Add(parameter); + } + + /// Finds a symbol in a list, by symbol equality. + /// The kind of symbol. + /// The list. + /// The symbol. + /// Its position, or -1. + private static int IndexOf(ReadOnlySpan symbols, ISymbol symbol) + where T : ISymbol + { + for (var i = 0; i < symbols.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(symbols[i], symbol)) + { + return i; + } + } + + return -1; + } + + /// Determines whether every type in a list names only the given type parameters. + /// The types. + /// The type parameters in scope. + /// when they do. + private static bool AllUseOnly(ImmutableArray types, ITypeParameterSymbol[] typeParameters) + { + for (var i = 0; i < types.Length; i++) + { + if (!UsesOnly(types[i], typeParameters)) + { + return false; + } + } + + return true; + } + + /// Finds the innermost class around a call site that the generated namespace can reach. + /// The call site and its semantic model. + /// The consumer compilation. + /// Cancellation token. + /// The class, or null when it is file-local or a generic class encloses the call before it is found. + /// + /// A binding call always sits in a member, so it always has a class around it, and the outermost class is visible + /// to its own assembly. A private class nested in the caller's class is skipped outward: the interceptor has to + /// call into the class it picks, so that class has to be visible from the generated namespace. + /// + private static INamedTypeSymbol? FindHostType(in CallSiteContext context, Compilation compilation, CancellationToken ct) + { + var type = context.SemanticModel.GetEnclosingSymbol(context.Node.SpanStart, ct)!.ContainingType; + while (!type.IsGenericType && !compilation.IsSymbolAccessibleWithin(type, compilation.Assembly)) + { + type = type.ContainingType; + } + + // A file-local class cannot be extended from a generated file, which is never the same file. + return type.IsGenericType || ExtractorValidation.ContainsNamelessType(type) ? null : type; + } + + /// Describes the method a moved call site calls, in the terms its generic interceptor needs. + /// The resolved binding method, as the call closes it. + /// The caller's class the code moves into, or null for the generated class. + /// The partial declarations that reach the caller's class. + /// The caller's type parameters the moved code is generic over. + /// The description, or null when the method is not a classic extension method. + /// + /// A member of an extension block is not a classic extension method, and an interceptor for it would have to take + /// the block's type parameters as well, so it does not move. + /// + private static HostedCall? Describe( + IMethodSymbol method, + INamedTypeSymbol? hostType, + PartialTypeDeclaration? declaration, + ITypeParameterSymbol[] callerTypeParameters) + { + var closed = method.GetConstructedReducedFrom() ?? method; + var definition = closed.OriginalDefinition; + if (!definition.IsExtensionMethod) + { + return null; + } + + // The interceptor's type parameters are renamed so they never clash with the caller's, which the moved code keeps. + var stubNames = new Dictionary(SymbolEqualityComparer.Default); + var typeParameters = new string[definition.TypeParameters.Length]; + for (var i = 0; i < typeParameters.Length; i++) + { + typeParameters[i] = $"{TypeParameterPrefix}{i}"; + stubNames[definition.TypeParameters[i]] = typeParameters[i]; + } + + // Each caller type parameter is handed on as the interceptor type parameter the call closed over it. + var callerNames = new Dictionary(SymbolEqualityComparer.Default); + var handedOn = new Dictionary(SymbolEqualityComparer.Default); + var wrapperParameters = new string[callerTypeParameters.Length]; + var wrapperArguments = new string[callerTypeParameters.Length]; + for (var i = 0; i < callerTypeParameters.Length; i++) + { + wrapperParameters[i] = callerTypeParameters[i].Name; + wrapperArguments[i] = typeParameters[IndexOf(closed.TypeArguments.AsSpan(), callerTypeParameters[i])]; + callerNames[callerTypeParameters[i]] = wrapperParameters[i]; + handedOn[callerTypeParameters[i]] = wrapperArguments[i]; + } + + var parameters = new HostedParameter[definition.Parameters.Length]; + for (var i = 0; i < parameters.Length; i++) + { + parameters[i] = new( + definition.Parameters[i].Name, + Render(definition.Parameters[i].Type, stubNames), + Render(closed.Parameters[i].Type, callerNames)); + } + + return new( + hostType?.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + declaration, + new(typeParameters), + InterceptorConstraints(definition, closed, stubNames, handedOn), + Render(definition.ReturnType, stubNames), + Render(closed.ReturnType, callerNames), + new(parameters)) + { + WrapperTypeParameters = new(wrapperParameters), + WrapperConstraints = ConstraintClauses(callerTypeParameters, callerNames), + WrapperTypeArguments = new(wrapperArguments), + }; + } + + /// Writes the interceptor's constraint clauses: the called method's, and those of each caller type parameter it hands on. + /// The called method as declared. + /// The called method as the call closes it. + /// The interceptor's name for each of the method's type parameters. + /// The interceptor's name for each caller type parameter. + /// The clauses. + /// + /// The moved code is generic over the caller's type parameters with their constraints, so the interceptor type + /// parameter that stands in for one has to meet them too. + /// + private static EquatableArray InterceptorConstraints( + IMethodSymbol definition, + IMethodSymbol closed, + Dictionary stubNames, + Dictionary handedOn) + { + var clauses = new List(definition.TypeParameters.Length); + for (var i = 0; i < definition.TypeParameters.Length; i++) + { + var constraints = TypeParameterConstraints.Of(definition.TypeParameters[i], stubNames); + if (closed.TypeArguments[i] is ITypeParameterSymbol caller) + { + constraints = constraints.With(TypeParameterConstraints.Of(caller, handedOn)); + } + + if (constraints.Format() is { } text) + { + clauses.Add($"where {stubNames[definition.TypeParameters[i]]} : {text}"); + } + } + + return new([.. clauses]); + } + + /// Where a call's generated code moved to. + /// The caller's class, or null when the code stays in the generated class. + /// The caller's type parameters the moved code is generic over. + /// The call, described for the interceptor that claims it. + internal sealed record MovedScope(INamedTypeSymbol? Host, ITypeParameterSymbol[] TypeParameters, HostedCall Call); + + /// The constraints on one type parameter, as written in a where clause. + /// The kind constraint, such as class or struct, or null. + /// The constraint types, written out. + /// Whether the type parameter has a constructor constraint. + /// Whether one of the constraint types is a class, which makes the type parameter a reference type. + internal sealed record TypeParameterConstraints(string? Kind, List Types, bool HasConstructor, bool HasClassType = false) + { + /// The kind constraint for a reference type that may be null. + private const string NullableClassKind = "class?"; + + /// Reads a type parameter's constraints. + /// The type parameter. + /// The names to write type parameters by. + /// The constraints. + internal static TypeParameterConstraints Of(ITypeParameterSymbol typeParameter, Dictionary names) + { + var types = new List(typeParameter.ConstraintTypes.Length); + var hasClassType = false; + foreach (var constraintType in typeParameter.ConstraintTypes) + { + types.Add(Render(constraintType, names)); + hasClassType |= constraintType.TypeKind == TypeKind.Class; + } + + return new(KindOf(typeParameter), types, typeParameter.HasConstructorConstraint, hasClassType); + } + + /// Combines these constraints with another set on the same type argument. + /// The other set. + /// The combined set. + /// + /// The type argument already meets both, because the call compiled, so the sets never conflict. A plain class + /// constraint is kept over an annotated or a not-null one, which it implies. + /// + internal TypeParameterConstraints With(TypeParameterConstraints other) + { + var types = new List(Types); + foreach (var type in other.Types) + { + if (!types.Contains(type)) + { + types.Add(type); + } + } + + return new(CombineKinds(Kind, other.Kind), types, HasConstructor || other.HasConstructor, HasClassType || other.HasClassType); + } + + /// Writes the constraints in the order C# requires. + /// The constraints, comma separated, or null when there are none. + internal string? Format() + { + var parts = new List(); + + // A class type constraint already makes the type parameter a reference type, and C# refuses the class + // constraint beside it (CS0450). + if (Kind is not null && !(HasClassType && Kind is "class" or NullableClassKind)) + { + parts.Add(Kind); + } + + parts.AddRange(Types); + + // A value type always has a constructor, and C# refuses the constraint beside struct or unmanaged. + if (HasConstructor && Kind is not ("struct" or "unmanaged")) + { + parts.Add("new()"); + } + + return parts.Count == 0 ? null : string.Join(", ", parts); + } + + /// Picks the kind constraint that implies the other. + /// The first kind, or null. + /// The second kind, or null. + /// The stricter kind. + private static string? CombineKinds(string? first, string? second) + { + if (first is null || first == second) + { + return second ?? first; + } + + return second is null || first is not (NullableClassKind or "notnull") ? first : second; + } + + /// Reads a type parameter's kind constraint. + /// The type parameter. + /// The constraint, or null when it has none. + private static string? KindOf(ITypeParameterSymbol typeParameter) => + typeParameter switch + { + { HasReferenceTypeConstraint: true } => typeParameter.ReferenceTypeConstraintNullableAnnotation == NullableAnnotation.Annotated ? NullableClassKind : "class", + { HasUnmanagedTypeConstraint: true } => "unmanaged", + { HasValueTypeConstraint: true } => "struct", + { HasNotNullConstraint: true } => "notnull", + _ => null, + }; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/CommandExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CommandExtractor.cs new file mode 100644 index 00000000..644fc9a9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/CommandExtractor.cs @@ -0,0 +1,447 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; +using ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts values from BindCommand invocations and provides compile-time command property detection helpers. +internal static class CommandExtractor +{ + /// The minimum number of arguments a BindCommand invocation must have (view model, property name, control name). + private const int MinimumBindCommandArgumentCount = 3; + + /// The argument index at which optional withParameter lambdas may start. + private const int WithParameterSearchStartIndex = 3; + + /// Extracts generator input metadata from a recognized BindCommand invocation. + /// + /// The generator syntax context whose node is expected to be an invocation expression. + /// + /// The token used to cancel semantic model operations. + /// + /// A populated when the invocation targets a recognized + /// extension method and its command/control expressions can be analyzed; otherwise, . + /// + /// If the cancellation token is triggered. + internal static BindCommandInvocationInfo? ExtractBindCommandInvocation( + CallSiteContext context, + CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + + // Verify this is our stub or generated method + if (methodSymbol is null + || !ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !CallSiteHosting.TryResolve(context, methodSymbol, ct, out var scope)) + { + return null; + } + + var args = invocation.ArgumentList.Arguments; + InvalidOperationExceptionHelper.EnsureMinimumArguments(args.Count, MinimumBindCommandArgumentCount); + + // The command path comes from the 2nd argument, the control path from the 3rd. + var commandPropertyArg = args[1].Expression; + var controlPropertyArg = args[2].Expression; + var commandPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(commandPropertyArg, semanticModel, scope, ct); + var controlPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(controlPropertyArg, semanticModel, scope, ct); + if (commandPropertyPath is null || controlPropertyPath is null) + { + return null; + } + + // Determine parameter overload (Expression vs IObservable withParameter). A parameter path the generator cannot + // read would be dropped, so the call is left to fail the build instead. + var parameterOverload = DetectParameterOverload(methodSymbol, args, semanticModel, scope, ct); + if (parameterOverload is { HasExpressionParameter: true, ParameterPropertyPath: null } + || ResolveBindCommandSides(memberAccess, args, semanticModel, scope, ct) is not { } sides) + { + return null; + } + + var controlBinding = ResolveControlBinding(methodSymbol, args, controlPropertyArg, semanticModel, ct); + + return new( + invocation.SyntaxTree.FilePath, + SyntaxHelpers.CallerLineNumber(invocation, ct), + sides.ViewTypeFullName, + sides.ViewModelTypeFullName, + new(commandPropertyPath), + new(controlPropertyPath), + commandPropertyPath[^1].PropertyTypeFullName, + controlPropertyPath[^1].PropertyTypeFullName, + parameterOverload.HasObservableParameter, + parameterOverload.HasExpressionParameter, + parameterOverload.ParameterTypeFullName, + parameterOverload.ParameterIsReferenceType, + parameterOverload.ParameterPropertyPath, + controlBinding.EventName, + controlBinding.EventArgsTypeFullName, + Constants.BindCommandMethodName, + commandPropertyArg.ToString(), + controlPropertyArg.ToString(), + parameterOverload.ParameterExpressionText, + controlBinding.Capabilities.HasCommand, + controlBinding.Capabilities.HasCommandParameter, + controlBinding.Capabilities.HasEnabled, + InterceptableLocationReader.Read(semanticModel, invocation, ct), + sides.ViewThreadInvoker, + scope.Call) + { HasExplicitEvent = controlBinding.HasExplicitEvent, NativeCommand = controlBinding.NativeCommand, ControlViewThreadInvoker = controlBinding.ViewThreadInvoker }; + } + + /// Searches invocation arguments for a valid withParameter lambda expression. + /// The argument list from the invocation. + /// The semantic model used to resolve lambda property paths. + /// The token used to cancel semantic model operations. + /// + /// The parameter property path, leaf type name, and normalized expression text when a supported + /// lambda is found; otherwise, . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ParameterLambda? FindParameterLambda( + SeparatedSyntaxList args, + SemanticModel semanticModel, + CancellationToken ct) => + FindParameterLambda(args, semanticModel, ReachScope.Assembly(semanticModel.Compilation), ct); + + /// Searches invocation arguments for a valid withParameter lambda expression. + /// The argument list from the invocation. + /// The semantic model used to resolve lambda property paths. + /// Where the generated code that reads the path is declared. + /// The token used to cancel semantic model operations. + /// + /// The parameter property path, leaf type name, and normalized expression text when a supported + /// lambda is found; otherwise, . + /// + internal static ParameterLambda? FindParameterLambda( + SeparatedSyntaxList args, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + for (var argumentIndex = WithParameterSearchStartIndex; argumentIndex < args.Count; argumentIndex++) + { + var paramPath = SyntaxHelpers.ExtractPropertyPathFromLambda(args[argumentIndex].Expression, semanticModel, scope, ct); + if (paramPath is not null) + { + return new ParameterLambda( + paramPath, + paramPath[^1].PropertyTypeFullName, + args[argumentIndex].Expression.ToString()); + } + } + + return null; + } + + /// + /// Determines whether an argument matches the "toEvent" parameter by either + /// named argument syntax (toEvent: "Click") or positional match. + /// + /// The argument syntax to check. + /// The index of this argument in the argument list. + /// The index of the toEvent parameter in the method signature. + /// true if the argument is the toEvent argument. + internal static bool IsToEventArgument( + ArgumentSyntax argument, + int argumentIndex, + int parameterIndex) + { + var nameColon = argument.NameColon; + return nameColon is not null ? nameColon.Name.Identifier.Text == "toEvent" : argumentIndex == parameterIndex; + } + + /// Resolves an explicit toEvent event name from the invocation arguments, if present. + /// The resolved method symbol. + /// The invocation argument list. + /// The semantic model. + /// Cancellation token. + /// The explicit event name, or null when none is supplied. + internal static string? ResolveExplicitEventName( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + SemanticModel semanticModel, + CancellationToken ct) + { + for (var i = 0; i < methodSymbol.Parameters.Length; i++) + { + if (methodSymbol.Parameters[i].Name != "toEvent") + { + continue; + } + + // Find matching argument + for (var argumentIndex = 0; argumentIndex < args.Count; argumentIndex++) + { + if (!IsToEventArgument(args[argumentIndex], argumentIndex, i)) + { + continue; + } + + var constant = semanticModel.GetConstantValue(args[argumentIndex].Expression, ct); + return constant is { HasValue: true, Value: string eventName } && !string.IsNullOrEmpty(eventName) + ? eventName + : null; + } + + return null; + } + + return null; + } + + /// Resolves the view and view model types the invocation binds between. + /// The member access the invocation hangs off. + /// The invocation arguments. + /// The semantic model. + /// Where the generated code is declared, which decides the types it can name. + /// Cancellation token. + /// + /// The fully qualified view and view model type names, or when either names a type + /// a generated overload could not declare. + /// + internal static BindCommandSides? ResolveBindCommandSides( + MemberAccessExpressionSyntax memberAccess, + SeparatedSyntaxList args, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + var viewType = semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type; + var viewTypeFullName = scope.NameOf(viewType); + var viewModelTypeFullName = scope.NameOf(semanticModel.GetTypeInfo(args[0].Expression, ct).Type); + + return viewTypeFullName is null || viewModelTypeFullName is null + ? null + : new BindCommandSides( + viewTypeFullName, + viewModelTypeFullName, + ViewThreadPluginRegistry.InvokerFor(viewType, semanticModel.Compilation)); + } + + /// + /// Resolves the event the command binds to and what the control supports, from the explicit + /// toEvent argument when present and the control's own members otherwise. + /// + /// The resolved BindCommand method. + /// The invocation arguments. + /// The control selector expression. + /// The semantic model. + /// Cancellation token. + /// The event name, its argument type, and the control's binding capabilities. + internal static ControlBinding ResolveControlBinding( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + ExpressionSyntax controlPropertyArg, + SemanticModel semanticModel, + CancellationToken ct) + { + var resolvedEventName = ResolveExplicitEventName(methodSymbol, args, semanticModel, ct); + var explicitEvent = !string.IsNullOrEmpty(resolvedEventName); + + var controlLeafType = SymbolHelpers.ResolveNamedType(semanticModel, controlPropertyArg, ct); + + var resolvedEventArgsTypeFullName = ResolveEventArgsTypeFullName(controlLeafType, ref resolvedEventName); + + return new(resolvedEventName, resolvedEventArgsTypeFullName, DetectControlCapabilities(controlLeafType)) + { + HasExplicitEvent = explicitEvent, + NativeCommand = explicitEvent ? null : RuntimeSupported(CommandBindingPluginRegistry.InspectControl(controlLeafType), semanticModel.Compilation), + ViewThreadInvoker = ViewThreadPluginRegistry.InvokerFor(controlLeafType, semanticModel.Compilation), + }; + } + + /// Drops a native route whose runtime support the consumer does not reference. + /// The native route the control offers, or null. + /// The consumer compilation. + /// The route, or null when generated code would name a runtime type the compilation cannot see. + /// + /// AppKit target/action installs the runtime's AppKitCommandTarget, which only the macOS head of the + /// runtime declares. Without it the binding takes the event or property route instead. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static NativeCommandInfo? RuntimeSupported(NativeCommandInfo? native, Compilation compilation) => + native is { Kind: NativeCommandKind.AppKitTargetAction } + && !SymbolHelpers.ResolvesEither(compilation, GeneratedTypeNames.AppKitCommandTargetMetadataName, GeneratedTypeNames.ReactiveAppKitCommandTargetMetadataName) + ? null + : native; + + /// + /// Inspects the method's withParameter parameter (if any) to determine whether the + /// overload takes an Expression or IObservable parameter, and extracts the + /// associated parameter property path / type / expression text. + /// + /// The resolved method symbol. + /// The invocation argument list. + /// The semantic model. + /// Cancellation token. + /// The detected parameter overload information. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ParameterOverloadInfo DetectParameterOverload( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + SemanticModel semanticModel, + CancellationToken ct) => + DetectParameterOverload(methodSymbol, args, semanticModel, ReachScope.Assembly(semanticModel.Compilation), ct); + + /// Detects whether the method has a withParameter overload, reading its path in the given scope. + /// The resolved method symbol. + /// The invocation argument list. + /// The semantic model. + /// Where the generated code that reads the path is declared. + /// Cancellation token. + /// The detected parameter overload information. + internal static ParameterOverloadInfo DetectParameterOverload( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + var result = new ParameterOverloadInfo(); + + for (var i = 0; i < methodSymbol.Parameters.Length; i++) + { + var param = methodSymbol.Parameters[i]; + if (param.Name != "withParameter") + { + continue; + } + + if (param.Type is INamedTypeSymbol { Name: "Expression" }) + { + result.HasExpressionParameter = true; + + // Find the withParameter argument + var paramResult = FindParameterLambda(args, semanticModel, scope, ct); + if (paramResult is not null) + { + result.ParameterPropertyPath = new EquatableArray(paramResult.Value.PropertyPath); + result.ParameterTypeFullName = paramResult.Value.TypeFullName; + result.ParameterExpressionText = paramResult.Value.ExpressionText; + + // The parameter selector's leaf type determines whether the generated withParameter + // expression is annotated nullable; without this the lambda over a nullable property raises CS8603. + // The lambda is only reported once its leaf has been read, so the path always has one. + result.ParameterIsReferenceType = paramResult.Value.PropertyPath[^1].IsReferenceType; + } + } + else if (param.Type is INamedTypeSymbol observableType && SymbolHelpers.IsIObservable(observableType)) + { + result.HasObservableParameter = true; + result.ParameterTypeFullName = observableType.TypeArguments[0] + .ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + result.ParameterIsReferenceType = observableType.TypeArguments[0].IsReferenceType; + } + } + + return result; + } + + /// + /// Resolves the event args type for the control. When no explicit event name was supplied, + /// resolves the control's default event (updating ); + /// otherwise resolves the event args type for the explicit event name. + /// + /// The resolved control leaf type, or null. + /// The explicit event name (updated to the default event when null). + /// The fully qualified event args type name, or null. + internal static string? ResolveEventArgsTypeFullName( + INamedTypeSymbol? controlLeafType, + ref string? resolvedEventName) + { + if (controlLeafType is null) + { + return null; + } + + if (resolvedEventName is null) + { + // No explicit toEvent: resolve the control's default event and its args type. + resolvedEventName = EventHelpers.FindDefaultEvent(controlLeafType, out var defaultEventArgs); + return defaultEventArgs; + } + + // Resolve the event args type for the explicit event name. + return EventHelpers.FindEventArgsType(controlLeafType, resolvedEventName); + } + + /// Detects command/command-parameter/enabled property capabilities on the control leaf type. + /// The resolved control leaf type, or null. + /// The detected control capabilities (all false when is null). + internal static ControlCapabilities DetectControlCapabilities(INamedTypeSymbol? controlLeafType) + { + if (controlLeafType is null) + { + return default; + } + + var hasCommandProperty = CommandPropertyBindingPlugin.HasCommandProperties(controlLeafType, out var hasCommandParameterProperty); + var hasEnabledProperty = EventEnabledBindingPlugin.HasEnabledProperty(controlLeafType); + return new(hasCommandProperty, hasCommandParameterProperty, hasEnabledProperty); + } + + /// Command-related property capabilities detected on a control type. + /// Whether the control exposes a settable ICommand property. + /// Whether the control exposes a settable command-parameter property. + /// Whether the control exposes a settable enabled property. + internal readonly record struct ControlCapabilities( + bool HasCommand, + bool HasCommandParameter, + bool HasEnabled); + + /// How a control surfaces the interaction a command binds to. + /// The event the binding subscribes to, or null when the control exposes none. + /// The fully qualified argument type of that event. + /// What the control can do for a command binding. + internal readonly record struct ControlBinding( + string? EventName, + string? EventArgsTypeFullName, + ControlCapabilities Capabilities) + { + /// Gets a value indicating whether the caller selected an event. + public bool HasExplicitEvent { get; init; } + + /// Gets the verified native command members. + public NativeCommandInfo? NativeCommand { get; init; } + + /// Gets the invoker class a write to the control carries, or null for none. + public string? ViewThreadInvoker { get; init; } + } + + /// Holds the detected withParameter overload information for a BindCommand invocation. + internal sealed class ParameterOverloadInfo + { + /// Gets or sets a value indicating whether the overload has an IObservable withParameter. + public bool HasObservableParameter { get; set; } + + /// Gets or sets a value indicating whether the overload has an Expression withParameter. + public bool HasExpressionParameter { get; set; } + + /// Gets or sets the fully qualified parameter type name, or null. + public string? ParameterTypeFullName { get; set; } + + /// Gets or sets a value indicating whether the detected parameter type is a reference type. + public bool ParameterIsReferenceType { get; set; } + + /// Gets or sets the parameter property path, or null. + public EquatableArray? ParameterPropertyPath { get; set; } + + /// Gets or sets the normalized parameter expression text, or null. + public string? ParameterExpressionText { get; set; } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/EventHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/EventHelpers.cs new file mode 100644 index 00000000..4d6cebaa --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/EventHelpers.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Provides event detection helpers for command binding. +internal static class EventHelpers +{ + /// Finds the default event on a control type for command binding. Searches for Click, TouchUpInside, Pressed in order. + /// The control type. + /// The resulting event args type name. + /// The name of the default event, or null if not found. + internal static string? FindDefaultEvent(INamedTypeSymbol controlType, out string? eventArgsType) + { + eventArgsType = null; + string[] defaultEvents = ["Click", "TouchUpInside", "Pressed"]; + + for (var i = 0; i < defaultEvents.Length; i++) + { + var argsType = FindEventArgsType(controlType, defaultEvents[i]); + if (argsType is null) + { + continue; + } + + eventArgsType = argsType; + return defaultEvents[i]; + } + + return null; + } + + /// Finds the EventArgs type for a named event on a type, searching the type hierarchy. + /// The type symbol. + /// The name of the event. + /// The name of the EventArgs type, or null if the event was not found. + internal static string? FindEventArgsType(INamedTypeSymbol type, string eventName) + { + var current = type; + while (current is not null) + { + var members = current.GetMembers(eventName); + for (var i = 0; i < members.Length; i++) + { + if (members[i] is IEventSymbol eventSymbol) + { + return ExtractorValidation.ResolveEventArgsType(eventSymbol.Type); + } + } + + current = current.BaseType; + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ExtractorValidation.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ExtractorValidation.cs new file mode 100644 index 00000000..41f8f0ff --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ExtractorValidation.cs @@ -0,0 +1,322 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// +/// Provides shared validation helpers extracted from the extractor classes. +/// These are internal methods that enable direct unit testing of guard-clause branches. +/// +internal static class ExtractorValidation +{ + /// The number of parameters on a standard .NET event handler delegate (sender, event args). + private const int StandardEventHandlerParameterCount = 2; + + /// + /// Checks whether a containing type name matches one of the recognized + /// extension class names used by this generator (stub, scheduler, or generated). + /// + /// The containing type name to check. + /// if the name is recognized; otherwise . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsRecognizedExtensionClass(string? containingTypeName) => + containingTypeName is Constants.StubExtensionClassName + or Constants.SchedulerExtensionClassName + or Constants.GeneratedExtensionClassName + || (containingTypeName is not null + && containingTypeName.StartsWith($"{Constants.GeneratedExtensionClassName}_", StringComparison.Ordinal)); + + /// + /// Checks whether the type declaring an invoked method is one of the recognized extension classes + /// used by this generator (stub, scheduler, or generated). + /// + /// The type containing the invoked method. + /// if the declaring class is recognized; otherwise . + /// + /// An extension block declares its members in a synthesized grouping type rather than in the static class + /// itself, so the class carrying the recognized name is one level further out. Which of the two a call site + /// resolves to is decided by the compiler that hosts the generator rather than by anything in the consumer's + /// project, and the two disagree across compiler versions, so both shapes are accepted. Rejecting the + /// grouping type drops every call site of an API declared that way while leaving the rest generating. + /// + internal static bool IsRecognizedExtensionClass(INamedTypeSymbol? containingType) => + containingType is not null + && (IsRecognizedExtensionClass(containingType.Name) + || (IsExtensionGroupingType(containingType) + && IsRecognizedExtensionClass(containingType.ContainingType?.Name))); + + /// Checks whether an invocation has at least the required number of arguments. + /// The actual argument count. + /// The minimum required argument count. + /// if there are enough arguments; otherwise . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool HasMinimumArguments(int argumentCount, int minimumRequired) => + argumentCount >= minimumRequired; + + /// Checks whether an immutable array of items is non-empty and should be processed. + /// The type of items in the array. + /// The immutable array to check. + /// if the array has items; otherwise . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool HasItems(ImmutableArray items) => + !items.IsDefaultOrEmpty; + + /// Extracts an from a , returning null if the resolved symbol is not a method. + /// The symbol info from GetSymbolInfo. + /// The method symbol, or null. + /// + /// Only a symbol the model actually resolved is used. Candidates are deliberately not consulted: a call the + /// model could not narrow may have candidates of differing shape, and generating from one of those means + /// reading a call's arguments against the wrong parameter list. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static IMethodSymbol? ExtractMethodSymbol(SymbolInfo symbolInfo) => + symbolInfo.Symbol as IMethodSymbol; + + /// Determines whether generated code in the consumer's assembly can name a type. + /// The type, which may be null. + /// The consumer compilation. + /// when the type is closed and accessible from outside every type that declares it. + /// + /// Generated overloads and interceptors are declared in a class of their own, so a private or protected + /// nested type - or a generic closed over one - is out of their reach, and so is a type parameter of the + /// calling code, alone or as a type argument of another type. An anonymous type has no name at all, and a + /// file-local type has none outside its own file. The compiler counts both as accessible, so they are tested for + /// separately. Naming one anyway fails the consumer's whole build over generated code they cannot edit. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsReachableFromGeneratedCode(ITypeSymbol? type, Compilation compilation) => + type is not null + && !ContainsTypeParameter(type) + && !ContainsNamelessType(type) + && compilation.IsSymbolAccessibleWithin(type, compilation.Assembly); + + /// Determines whether a type is, or is built from, a type generated code has no name for. + /// The type. + /// when an anonymous or file-local type appears anywhere in the type. + /// Generated code sits in files of its own, so a file-local type is as nameless to it as an anonymous one. + internal static bool ContainsNamelessType(ITypeSymbol type) => + type switch + { + { IsAnonymousType: true } => true, + IArrayTypeSymbol array => ContainsNamelessType(array.ElementType), + INamedTypeSymbol named => named.IsFileLocal + || AnyContainsNamelessType(named.TypeArguments) + || (named.ContainingType is { } containing && ContainsNamelessType(containing)), + _ => false, + }; + + /// Finds the one type argument a generic interceptor has to take in place of naming it. + /// The resolved binding method. + /// The consumer compilation. + /// The position of the selector's result among the method's type arguments. + /// + /// when every type argument generated code cannot name is the selector's result, which an + /// interceptor can take as a type parameter. when another type argument is out of reach, + /// or the method has no selector whose result is one of its own type parameters. + /// + /// + /// Generated code only passes the result along: the user's selector builds it and the observation hands it on. + /// So an anonymous type, a private nested type, the caller's type parameter, or a type built from any of them can + /// stay a type parameter there. The compiler closes the interceptor over whatever the call closed the result over. + /// + internal static bool TryFindUnnameableResult(IMethodSymbol method, Compilation compilation, out int resultOrdinal) + { + resultOrdinal = FindSelectorResultOrdinal(method.OriginalDefinition); + if (resultOrdinal < 0 || method.ContainingType.IsGenericType) + { + return false; + } + + var typeArguments = method.TypeArguments; + for (var i = 0; i < typeArguments.Length; i++) + { + if (i != resultOrdinal && !IsReachableFromGeneratedCode(typeArguments[i], compilation)) + { + return false; + } + } + + return true; + } + + /// Determines whether a type is, or is built from, a type parameter. + /// The type. + /// when a type parameter appears anywhere in the type. + internal static bool ContainsTypeParameter(ITypeSymbol type) => + type switch + { + ITypeParameterSymbol => true, + IArrayTypeSymbol array => ContainsTypeParameter(array.ElementType), + INamedTypeSymbol named => AnyContainsTypeParameter(named.TypeArguments) + || (named.ContainingType is { } containing && ContainsTypeParameter(containing)), + _ => false, + }; + + /// Determines whether generated code can name every type an invoked binding method is closed over. + /// The resolved binding method. + /// The consumer compilation. + /// when every type argument is reachable. + /// + /// A generated overload repeats the stub's signature with its type arguments substituted, and the stub's own + /// types are public, so the type arguments are the only types the overload names that can be out of reach. + /// + internal static bool NamesOnlyReachableTypes(IMethodSymbol method, Compilation compilation) + { + var typeArguments = method.TypeArguments; + for (var i = 0; i < typeArguments.Length; i++) + { + if (!IsReachableFromGeneratedCode(typeArguments[i], compilation)) + { + return false; + } + } + + return true; + } + + /// Gets the fully qualified display name of a type symbol, returning null if the symbol is null. + /// The type symbol, which may be null. + /// The fully qualified type name, or null. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? GetTypeDisplayName(ITypeSymbol? type) => + type?.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + + /// Names a type only when a generated overload could declare a parameter of it. + /// The type symbol, which may be null. + /// The fully qualified type name, or when no overload could name it. + /// + /// + /// A call made through a type parameter binds to whatever closes it, which the call site does not name. Writing the + /// parameter's own name into code that is not generic over it puts an identifier no consumer declared into their + /// build, so the whole compilation fails over generated code they cannot edit. ReachScope.NameOf + /// names one only where the generated code is generic over it. + /// + /// + /// A static type fails the same way and reaches here by a different route: a call written through the + /// stub's declaring class - ReactiveUIBindingExtensions.WhenChanged(vm, x => x.Name) - puts that + /// class where the observed object goes, and no member can declare a parameter of it or close a generic + /// over it. Such a call resolves against that class's own members, so neither a generated overload nor an + /// interceptor matching the call written on an instance is a candidate for it either way. + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? GetDeclarableTypeDisplayName(ITypeSymbol? type) => + type is INamedTypeSymbol { IsStatic: false } named ? GetTypeDisplayName(named) : null; + + /// + /// Searches method parameters for a selector or conversion function parameter + /// and returns the fully qualified return type (the last type argument of the Func). + /// + /// The method parameters to search. + /// The parameter names to match (e.g. "selector", "conversionFunc"). + /// The fully qualified return type, or null if no matching parameter was found. + internal static string? FindSelectorReturnType( + ImmutableArray parameters, + params string[] parameterNames) + { + for (var i = 0; i < parameters.Length; i++) + { + var parameter = parameters[i]; + if (parameter.Type is INamedTypeSymbol { TypeArguments.Length: > 0 } funcType) + { + for (var n = 0; n < parameterNames.Length; n++) + { + if (parameter.Name == parameterNames[n]) + { + return funcType.TypeArguments[funcType.TypeArguments.Length - 1] + .ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + } + } + } + } + + return null; + } + + /// + /// Resolves the event delegate type to its event args type. + /// Returns "global::System.EventArgs" as a fallback when the delegate type + /// is not a named type or has a non-standard parameter count. + /// + /// The event's delegate type symbol. + /// The fully qualified event args type name. + internal static string ResolveEventArgsType(ITypeSymbol? delegateType) + { + if (delegateType is not INamedTypeSymbol namedDelegateType) + { + return "global::System.EventArgs"; + } + + var invokeMethod = namedDelegateType.DelegateInvokeMethod; + return invokeMethod is { Parameters.Length: StandardEventHandlerParameterCount } + ? invokeMethod.Parameters[1].Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat) + : "global::System.EventArgs"; + } + + /// Checks whether a type is the synthesized grouping type that holds an extension block's members. + /// The type to check. + /// if the type is an extension grouping type; otherwise . + /// + /// The grouping type is unnamed when the declaration is read from source and is named <>E__N + /// when it is read from metadata. Neither spelling is a legal C# identifier, so no type a consumer can + /// declare is mistaken for one. + /// + private static bool IsExtensionGroupingType(INamedTypeSymbol type) => + type.Name.Length == 0 || type.Name[0] == '<'; + + /// Finds which of a method's own type parameters its selector returns. + /// The method as declared, with its type parameters unsubstituted. + /// The type parameter's ordinal, or -1 when the method has no selector returning one. + private static int FindSelectorResultOrdinal(IMethodSymbol definition) + { + var parameters = definition.Parameters; + for (var i = 0; i < parameters.Length; i++) + { + if (parameters[i] is { Name: "selector" or "conversionFunc", Type: INamedTypeSymbol { TypeArguments.Length: > 0 } func } + && func.TypeArguments[func.TypeArguments.Length - 1] is ITypeParameterSymbol { TypeParameterKind: TypeParameterKind.Method } result) + { + return result.Ordinal; + } + } + + return -1; + } + + /// Determines whether any of a list of types is, or is built from, a type generated code has no name for. + /// The types. + /// when an anonymous or file-local type appears in any of them. + private static bool AnyContainsNamelessType(ImmutableArray types) + { + for (var i = 0; i < types.Length; i++) + { + if (ContainsNamelessType(types[i])) + { + return true; + } + } + + return false; + } + + /// Determines whether any of a list of types is, or is built from, a type parameter. + /// The types. + /// when a type parameter appears in any of them. + private static bool AnyContainsTypeParameter(ImmutableArray types) + { + for (var i = 0; i < types.Length; i++) + { + if (ContainsTypeParameter(types[i])) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/InteractionExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InteractionExtractor.cs new file mode 100644 index 00000000..367c3b0d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InteractionExtractor.cs @@ -0,0 +1,224 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts BindInteractionInvocationInfo from BindInteraction invocations. +internal static class InteractionExtractor +{ + /// The minimum number of arguments a BindInteraction invocation must have (view model, property name, handler). + private const int MinimumBindInteractionArgumentCount = 3; + + /// Pipeline B transform: extracts BindInteractionInvocationInfo from a BindInteraction invocation. + /// The generator syntax context. + /// Cancellation token. + /// A BindInteractionInvocationInfo POCO, or null if the invocation is not analyzable. + /// If the cancellation token is triggered. + internal static BindInteractionInvocationInfo? ExtractBindInteractionInvocation( + CallSiteContext context, + CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null) + { + return null; + } + + // Verify this is our stub or generated method + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !CallSiteHosting.TryResolve(context, methodSymbol, ct, out var scope)) + { + return null; + } + + var args = invocation.ArgumentList.Arguments; + InvalidOperationExceptionHelper.EnsureMinimumArguments(args.Count, MinimumBindInteractionArgumentCount); + + // Extract the interaction property path from the second argument (propertyName) + var propertyNameArg = args[1].Expression; + var interactionPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(propertyNameArg, semanticModel, scope, ct); + if (interactionPropertyPath is null) + { + return null; + } + + ResolveValidatedInteractionTypes( + propertyNameArg, + semanticModel, + ct, + out var inputTypeFullName, + out var outputTypeFullName); + + // Determine handler type (Task vs Observable) + var isTaskHandler = DetermineHandlerVariant(methodSymbol, out var dontCareTypeFullName); + + // Get types + var viewTypeFullName = ResolveViewType(memberAccess, semanticModel, scope, ct, out var viewClassInfo); + if (viewTypeFullName is null) + { + return null; + } + + var viewModelTypeFullName = InvalidOperationExceptionHelper.EnsureNotNull( + ExtractorValidation.GetTypeDisplayName(semanticModel.GetTypeInfo(args[0].Expression, ct).Type), + "view model type display name"); + + var filePath = invocation.SyntaxTree.FilePath; + var lineNumber = SyntaxHelpers.CallerLineNumber(invocation, ct); + var expressionText = propertyNameArg.ToString(); + + return new( + filePath, + lineNumber, + viewTypeFullName, + viewModelTypeFullName, + new(interactionPropertyPath), + inputTypeFullName, + outputTypeFullName, + isTaskHandler, + dontCareTypeFullName, + Constants.BindInteractionMethodName, + expressionText, + viewClassInfo, + InterceptableLocationReader.Read(semanticModel, invocation, ct), + scope.Call); + } + + /// Resolves the interaction's two type arguments, refusing a call site that names neither. + /// The lambda naming the interaction property. + /// The semantic model. + /// The cancellation token. + /// The fully qualified interaction input type. + /// The fully qualified interaction output type. + private static void ResolveValidatedInteractionTypes( + ExpressionSyntax propertyNameArg, + SemanticModel semanticModel, + CancellationToken ct, + out string inputTypeFullName, + out string outputTypeFullName) + { + ResolveInteractionTypeArguments(propertyNameArg, semanticModel, ct, out var input, out var output); + + inputTypeFullName = + InvalidOperationExceptionHelper.EnsureNotNullOrEmpty(input, "interaction TInput type argument"); + outputTypeFullName = + InvalidOperationExceptionHelper.EnsureNotNullOrEmpty(output, "interaction TOutput type argument"); + } + + /// Names the view type the call was made on, and reads how it notifies from the same symbol. + /// The member access naming the view the call was made on. + /// The semantic model. + /// Where the generated code is declared, which decides the types it can name. + /// The cancellation token. + /// How the view notifies, or when no type was named. + /// The fully qualified view type name, or when the view names no type. + /// + /// This API takes no lambda rooted on the view, so no property path carries the view's mechanism the way + /// the other view-first APIs' paths do, and the declaration scan only sees types the consumer writes. + /// Reading it from the symbol is what lets a view declared in a referenced assembly still be followed + /// through the view model it holds. + /// + private static string? ResolveViewType( + MemberAccessExpressionSyntax memberAccess, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct, + out ClassBindingInfo? viewClassInfo) + { + viewClassInfo = null; + var viewType = semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type; + + // A view typed by the caller's type parameter only reaches here when the generated code is generic over it, and + // how it notifies is read from its constraint. + if (NotifyingType(viewType) is { } viewTypeSymbol) + { + viewClassInfo = TypeDetectionExtractor.ExtractFromSymbol(viewTypeSymbol, semanticModel.Compilation, ct); + } + + return scope.NameOf(viewType); + } + + /// Reads the type whose notifications a view raises: the view's own, or its type parameter's first constraint. + /// The view's type. + /// The type, or null when there is none to read. + private static INamedTypeSymbol? NotifyingType(ITypeSymbol? viewType) => + viewType switch + { + INamedTypeSymbol named => named, + ITypeParameterSymbol { ConstraintTypes: [INamedTypeSymbol first, ..] } => first, + _ => null, + }; + + /// + /// Resolves the TInput and TOutput type arguments of the targeted + /// IInteraction<TInput, TOutput> member from the type of the lambda body. + /// + /// The property-name lambda expression. + /// The semantic model. + /// Cancellation token. + /// The resolved fully qualified TInput type, or empty string. + /// The resolved fully qualified TOutput type, or empty string. + /// + /// The caller only reaches here once it has resolved a property path from this same argument, which fails + /// unless it is a lambda with an expression body, so neither is tested again. The body's type is read rather + /// than its member's symbol, so an interaction held in a field resolves as well as one held in a property. + /// + private static void ResolveInteractionTypeArguments( + ExpressionSyntax propertyNameArg, + SemanticModel semanticModel, + CancellationToken ct, + out string inputTypeFullName, + out string outputTypeFullName) + { + var body = ((LambdaExpressionSyntax)propertyNameArg).Body; + _ = SymbolHelpers.ExtractInteractionTypeArguments( + semanticModel.GetTypeInfo(body, ct).Type!, + out inputTypeFullName, + out outputTypeFullName); + } + + /// + /// Determines whether the BindInteraction handler is a Task-based or Observable-based handler + /// by inspecting the method's handler parameter type. + /// + /// The resolved method symbol. + /// + /// For observable handlers, the fully qualified TDontCare type argument; otherwise null. + /// + /// for a Task-based handler; otherwise . + private static bool DetermineHandlerVariant(IMethodSymbol methodSymbol, out string? dontCareTypeFullName) + { + dontCareTypeFullName = null; + + // The handler parameter is the 3rd argument (index 2). + // Check the method's parameter type to determine handler variant. + for (var i = 0; i < methodSymbol.Parameters.Length; i++) + { + var param = methodSymbol.Parameters[i]; + + // Observable handler: Func, IObservable> + if (param is not { Name: "handler", Type: INamedTypeSymbol handlerType } + || handlerType.TypeArguments.Length != 2 + || handlerType.TypeArguments[1] is not INamedTypeSymbol returnType + || !SymbolHelpers.IsIObservable(returnType)) + { + continue; + } + + dontCareTypeFullName = returnType.TypeArguments[0] + .ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + return false; + } + + return true; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/InterceptableLocationReader.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InterceptableLocationReader.cs new file mode 100644 index 00000000..6c2c15be --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InterceptableLocationReader.cs @@ -0,0 +1,116 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Threading; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Reads the call-site description an interceptor has to name. +/// +/// The only place either build asks the compiler about interception. The 4.13 build has the API and answers; +/// the baseline build has no such API to call and answers that it described nothing, which every caller +/// already handles because a call site can be undescribable on a new compiler too. +/// +internal static class InterceptableLocationReader +{ + /// Gets a value indicating whether this build can describe a call site at all. + /// + /// Fixed when the generator is compiled, not read from the consumer: which of the two builds is loaded is + /// decided by the compiler's own version, through the analyzer slot the package was resolved from. + /// + internal static bool IsSupported => +#if ROSLYN_4_13 + true; +#else + false; +#endif + + /// Determines whether the consumer has opted the generated namespace into interception. + /// The consumer's parse options, which carry the opt-in the build set. + /// when an interceptor emitted here would be honoured. + /// + /// Interception is refused outright for a namespace the project did not list, so emitting one without the + /// opt-in turns every call site into a build error. The package's own props lists the generated namespace, + /// which is why this is normally true; a consumer who clears the property gets the dispatch overloads back. + /// A listed namespace covers the ones nested under it, so a prefix counts as a match. + /// + internal static bool IsOptedIn(ParseOptions parseOptions) + { + if (!parseOptions.Features.TryGetValue(Constants.InterceptorsNamespacesFeature, out var namespaces) + || string.IsNullOrEmpty(namespaces)) + { + return false; + } + + foreach (var candidate in namespaces.Split(';')) + { + var trimmed = candidate.Trim(); + if (trimmed.Length == 0) + { + continue; + } + + if (string.Equals(trimmed, Constants.InterceptorNamespace, StringComparison.Ordinal) + || (Constants.InterceptorNamespace.Length > trimmed.Length + && Constants.InterceptorNamespace[trimmed.Length] == '.' + && Constants.InterceptorNamespace.StartsWith(trimmed, StringComparison.Ordinal))) + { + return true; + } + } + + return false; + } + + /// Determines whether an interceptor emitted for this compilation would be honoured. + /// The consumer's parse options, which carry the opt-in the build set. + /// when this build can describe a call site and the project listed the namespace. + /// + /// The one question both the generator and the analyzer ask before deciding whether the dispatch overloads + /// still matter, so the two answer it the same way. Which build is loaded settles the first half outright, + /// which is why the baseline never reads the options at all. + /// + internal static bool IsInterceptionEnabled(ParseOptions parseOptions) + { +#if ROSLYN_4_13 + return IsOptedIn(parseOptions); +#else + + // The baseline compiler describes no call site, so there is no interceptor for a listing to honour. + _ = parseOptions; + return false; +#endif + } + + /// Describes a call site, when the host compiler can. + /// The model the invocation was bound in. + /// The call site. + /// Cancels the read. + /// The description, or a location reporting that none was produced. + internal static InterceptorLocation Read( + SemanticModel semanticModel, + InvocationExpressionSyntax invocation, + CancellationToken cancellationToken) + { +#if ROSLYN_4_13 + var location = Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetInterceptableLocation( + semanticModel, + invocation, + cancellationToken); + + return location is null ? default : new InterceptorLocation(location.Version, location.Data); +#else + + // The baseline compiler cannot describe a call site, so nothing here is interceptable. The arguments + // are read so the two builds keep one signature rather than diverging on what they accept. + _ = semanticModel; + _ = invocation; + _ = cancellationToken; + return default; +#endif + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvalidOperationExceptionHelper.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvalidOperationExceptionHelper.cs new file mode 100644 index 00000000..3278c444 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvalidOperationExceptionHelper.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// +/// Throws for defensive guards that should never +/// be reached in practice. Excluded from code coverage because the branches are unreachable +/// under normal Roslyn semantic analysis. +/// +[ExcludeFromCodeCoverage] +internal static class InvalidOperationExceptionHelper +{ + /// + /// Returns the value if non-null; otherwise throws . + /// Used to replace if (x == null) return null; defensive guards in extractors + /// so the null-check branch lives inside an [ExcludeFromCodeCoverage] method. + /// + /// The non-nullable value type or reference type. + /// The value to check. + /// A description of what was unexpectedly null. + /// The non-null . + /// Thrown when is null. + internal static T EnsureNotNull(T? value, string context) + where T : class => + value ?? throw new InvalidOperationException($"Unexpected null in source generator pipeline: {context}"); + + /// Returns the value if non-null and non-empty; otherwise throws . + /// The string value to check. + /// A description of what was unexpectedly null or empty. + /// The non-null, non-empty . + /// Thrown when is null or empty. + internal static string EnsureNotNullOrEmpty(string? value, string context) => + string.IsNullOrEmpty(value) + ? throw new InvalidOperationException($"Unexpected null or empty in source generator pipeline: {context}") + : value!; + + /// + /// Throws if the argument count is less than the minimum. + /// Used to replace if (!HasMinimumArguments(...)) return null; defensive guards in extractors + /// where the syntax predicate guarantees sufficient arguments. + /// + /// The actual argument count. + /// The minimum required count. + /// Thrown when is less than . + internal static void EnsureMinimumArguments(int count, int minimum) + { + if (count >= minimum) + { + return; + } + + throw new InvalidOperationException( + $"Expected at least {minimum} arguments but found {count} in source generator pipeline"); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvokeCommandExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvokeCommandExtractor.cs new file mode 100644 index 00000000..2d6b4548 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/InvokeCommandExtractor.cs @@ -0,0 +1,81 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts from InvokeCommand invocations. +internal static class InvokeCommandExtractor +{ + /// The minimum number of arguments this overload carries (target, command property). + private const int MinimumInvokeCommandArgumentCount = 2; + + /// Pipeline B transform: extracts from an InvokeCommand invocation. + /// The generator syntax context. + /// Cancellation token. + /// An POCO, or null if the invocation is not analyzable. + internal static InvokeCommandInvocationInfo? ExtractInvokeCommandInvocation( + CallSiteContext context, + CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null) + { + return null; + } + + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !CallSiteHosting.TryResolve(context, methodSymbol, ct, out var scope)) + { + return null; + } + + // The overload taking the command itself has one argument and no selector to observe. + var args = invocation.ArgumentList.Arguments; + if (!ExtractorValidation.HasMinimumArguments(args.Count, MinimumInvokeCommandArgumentCount)) + { + return null; + } + + // The values offered as the command parameter are the T of the receiver's IObservable. + var sourceValueType = BindToExtractor.GetObservableValueType( + semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type); + if (sourceValueType is null) + { + return null; + } + + var commandArg = args[1].Expression; + var commandPropertyPath = SyntaxHelpers.ExtractPropertyPathFromLambda(commandArg, semanticModel, scope, ct); + var targetTypeName = + scope.NameOf(semanticModel.GetTypeInfo(args[0].Expression, ct).Type); + + // A target the model cannot name leaves nothing to declare a member against, generated or otherwise. + if (targetTypeName is null) + { + return null; + } + + // A selector the compiler cannot read names no path, so nothing is generated and the stub throws, + // naming the Unsafe overload that resolves it. + return commandPropertyPath is not { Length: > 0 } + ? null + : new( + invocation.SyntaxTree.FilePath, + SyntaxHelpers.CallerLineNumber(invocation, ct), + sourceValueType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + targetTypeName, + new(commandPropertyPath), + commandArg.ToString(), + InterceptableLocationReader.Read(semanticModel, invocation, ct), + scope.Call); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeCommandMembers.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeCommandMembers.cs new file mode 100644 index 00000000..5ea54982 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeCommandMembers.cs @@ -0,0 +1,89 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Shares native command member validation between generation and diagnostics. +internal static class NativeCommandMembers +{ + /// The parameter count of a native event delegate or UIKit target overload. + private const int NativeParameterCount = 2; + + /// Checks a framework hierarchy by its declared CLR name. + /// The concrete type. + /// The framework base type. + /// True when the type belongs to the hierarchy. + internal static bool DerivesFrom(INamedTypeSymbol type, string name) + { + for (var current = type; current is not null; current = current.BaseType) + { + if (NativeTypeIdentity.Matches(current, name)) + { + return true; + } + } + + return false; + } + + /// Finds a member through the base chain while respecting member hiding. + /// The concrete type. + /// The member name. + /// The nearest declaration. + internal static ISymbol? FindMember(INamedTypeSymbol type, string name) + { + for (var current = type; current is not null; current = current.BaseType) + { + var members = current.GetMembers(name); + if (!members.IsEmpty) + { + return members[0]; + } + } + + return null; + } + + /// Checks for a public instance event with the native two-argument void delegate. + /// The concrete owner. + /// The event name. + /// True when generated code can attach its handler. + internal static bool HasEvent(INamedTypeSymbol type, string name) => + FindMember(type, name) is IEventSymbol { IsStatic: false, DeclaredAccessibility: Accessibility.Public, Type: INamedTypeSymbol delegateType } + && delegateType.DelegateInvokeMethod is { ReturnsVoid: true, Parameters.Length: NativeParameterCount } invoke + && invoke.Parameters[0].RefKind == RefKind.None && invoke.Parameters[1].RefKind == RefKind.None; + + /// Checks the public setter and exact type of a native property. + /// The concrete owner. + /// The property name. + /// The native property type. + /// True when the generated assignment is legal. + internal static bool HasWritableProperty(INamedTypeSymbol type, string name, string propertyType) => + FindMember(type, name) is IPropertySymbol { IsStatic: false, SetMethod.DeclaredAccessibility: Accessibility.Public } property + && (propertyType == "bool" ? property.Type.SpecialType == SpecialType.System_Boolean : NativeTypeIdentity.Matches(property.Type, propertyType)); + + /// Checks UIKit's delegate-based target method overload. + /// The concrete control. + /// The native method name. + /// True when the native overload is accessible. + internal static bool HasTargetMethod(INamedTypeSymbol type, string name) + { + for (var current = type; current is not null; current = current.BaseType) + { + foreach (var member in current.GetMembers(name)) + { + if (member is IMethodSymbol { IsStatic: false, DeclaredAccessibility: Accessibility.Public, Parameters.Length: NativeParameterCount } method + && NativeTypeIdentity.Matches(method.Parameters[0].Type, "System.EventHandler") + && NativeTypeIdentity.Matches(method.Parameters[1].Type, "UIKit.UIControlEvent")) + { + return true; + } + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeTypeIdentity.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeTypeIdentity.cs new file mode 100644 index 00000000..dd87a4b0 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/NativeTypeIdentity.cs @@ -0,0 +1,35 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Matches native type names without allocating a formatted symbol display. +internal static class NativeTypeIdentity +{ + /// Compares namespace and containing-type segments ordinally. + /// The candidate type. + /// The native type name using dots for nested types. + /// True when the complete type identity matches. + internal static bool Matches(ITypeSymbol? type, string qualifiedName) + { + ISymbol? current = type; + var end = qualifiedName.Length; + while (current is not null && end > 0) + { + var start = qualifiedName.LastIndexOf('.', end - 1) + 1; + var name = current.MetadataName; + if (name.Length != end - start || string.CompareOrdinal(name, 0, qualifiedName, start, name.Length) != 0) + { + return false; + } + + current = current.ContainingSymbol; + end = start - 1; + } + + return end < 0 && current is INamespaceSymbol { IsGlobalNamespace: true }; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservableAsPropertyOptions.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservableAsPropertyOptions.cs new file mode 100644 index 00000000..bfef1fef --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservableAsPropertyOptions.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// The named arguments of an [ObservableAsProperty] that change what the generator writes. +/// Whether the helper field is readonly. +/// Whether the helper field is protected rather than private. +/// The value the property returns until its helper is assigned, or null. +internal readonly record struct ObservableAsPropertyOptions(bool ReadOnly, bool UseProtected, string? InitialValue) +{ + /// Reads the options from an attribute, ignoring any argument of an unexpected type. + /// The [ObservableAsProperty] attribute. + /// The options; the defaults for any argument not given. + internal static ObservableAsPropertyOptions Read(AttributeData attribute) + { + var readOnly = false; + var useProtected = false; + string? initialValue = null; + var arguments = attribute.NamedArguments; + for (var i = 0; i < arguments.Length; i++) + { + var (name, value) = (arguments[i].Key, arguments[i].Value.Value); + switch (name) + { + case "ReadOnly" when value is bool flag: + { + readOnly = flag; + break; + } + + case "UseProtected" when value is bool flag: + { + useProtected = flag; + break; + } + + case "InitialValue" when value is string text: + { + initialValue = text; + break; + } + } + } + + return new(readOnly, useProtected, initialValue); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservationExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservationExtractor.cs new file mode 100644 index 00000000..13f73109 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ObservationExtractor.cs @@ -0,0 +1,308 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts InvocationInfo from WhenChanged, WhenChanging, WhenAnyValue, and WhenAny invocations. +internal static class ObservationExtractor +{ + /// Pipeline B transform: extracts InvocationInfo from a WhenChanged invocation. + /// The generator syntax context. + /// Cancellation token. + /// An InvocationInfo POCO, or null if the invocation is not analyzable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static InvocationInfo? ExtractWhenChangedInvocation(CallSiteContext context, CancellationToken ct) => + ExtractInvocationInfo(context, false, Constants.WhenChangedMethodName, ct); + + /// Pipeline B transform: extracts InvocationInfo from a WhenChanging invocation. + /// The generator syntax context. + /// Cancellation token. + /// An InvocationInfo POCO, or null if the invocation is not analyzable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static InvocationInfo? ExtractWhenChangingInvocation(CallSiteContext context, CancellationToken ct) => + ExtractInvocationInfo(context, true, Constants.WhenChangingMethodName, ct); + + /// Pipeline B transform: extracts InvocationInfo from a WhenAnyValue invocation. + /// The generator syntax context. + /// Cancellation token. + /// An InvocationInfo POCO, or null if the invocation is not analyzable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static InvocationInfo? ExtractWhenAnyValueInvocation(CallSiteContext context, CancellationToken ct) => + ExtractInvocationInfo(context, false, Constants.WhenAnyValueMethodName, ct); + + /// Pipeline B transform: extracts InvocationInfo from a WhenAny invocation (with IObservedChange selector). + /// The generator syntax context. + /// Cancellation token. + /// An InvocationInfo POCO, or null if the invocation is not analyzable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static InvocationInfo? ExtractWhenAnyInvocation(CallSiteContext context, CancellationToken ct) => + ExtractInvocationInfo(context, false, Constants.WhenAnyMethodName, ct); + + /// Determines whether a parameter is the overload's projection over the observed values. + /// The parameter name to test. + /// when the parameter carries the projection. + /// + /// The observation APIs spell it two ways: WhenChanged and WhenChanging take a + /// conversionFunc, while WhenAny and WhenAnyValue take a selector. Either one + /// means the same thing to the emitters - the overload returns the projection rather than the values. + /// + internal static bool IsSelectorParameterName(string parameterName) => + parameterName is "conversionFunc" or "selector"; + + /// Extracts the invocation info from the generator syntax context. + /// The generator syntax context. + /// A value indicating whether the invocation is before a change. + /// The expected method name. + /// Cancellation token. + /// An InvocationInfo POCO, or null if the invocation is not analyzable. + /// If the cancellation token is triggered. + internal static InvocationInfo? ExtractInvocationInfo( + CallSiteContext context, + bool isBeforeChange, + string expectedMethodName, + CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null) + { + return null; + } + + // Verify this is our stub or generated method + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !TryResolveScope(context, methodSymbol, ct, out var scope, out var genericResult)) + { + return null; + } + + var args = invocation.ArgumentList.Arguments; + var propertyPaths = new List>(args.Count); + var expressionTexts = new List(args.Count); + + var hasSelector = CollectPropertyPaths( + methodSymbol, + args, + semanticModel, + scope, + propertyPaths, + expressionTexts, + ct); + + if (propertyPaths.Count == 0) + { + return null; + } + + // Get the source type from the receiver + var sourceTypeFullName = + scope.NameOf(semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type); + if (sourceTypeFullName is null) + { + return null; + } + + var returnTypeFullName = genericResult.IsGeneric + ? GenericResult.TypeParameterName + : ComputeReturnTypeFullName(methodSymbol, propertyPaths, hasSelector); + + var filePath = invocation.SyntaxTree.FilePath; + var lineNumber = SyntaxHelpers.CallerLineNumber(invocation, ct); + + return new( + filePath, + lineNumber, + sourceTypeFullName, + new([.. propertyPaths]), + returnTypeFullName, + isBeforeChange, + hasSelector, + expectedMethodName, + new([.. expressionTexts]), + InterceptableLocationReader.Read(semanticModel, invocation, ct), + genericResult, + scope.Call); + } + + /// Decides where an observation call's generated code is declared, and whether its result is a type parameter. + /// The call site and its semantic model. + /// The resolved binding method. + /// Cancellation token. + /// The scope the generated code can name types in, which may move while the call is read. + /// Where the result sits when generated code takes it as a type parameter. + /// when the call can be generated; otherwise . + /// + /// A result generated code cannot name is taken as a type parameter first, because that needs nothing of the + /// caller, and the code then stays where it is. Any other call moves only when its types or paths need it. + /// + internal static bool TryResolveScope( + in CallSiteContext context, + IMethodSymbol method, + CancellationToken ct, + out ReachScope scope, + out GenericResult genericResult) + { + scope = ReachScope.ForCall(context, method, ct); + if (!TryReadGenericResult(method, context.SemanticModel.Compilation, out genericResult)) + { + return scope.CanNameAll(method.TypeArguments); + } + + if (genericResult.IsGeneric) + { + scope.Pin(); + } + + return true; + } + + /// Decides whether generated code can write a call's types, taking its selector's result as a type parameter if need be. + /// The resolved binding method. + /// The consumer compilation. + /// Where the result sits when generated code takes it as a type parameter. + /// when the call can be generated; otherwise . + /// + /// Only an interceptor can be generic over the result, because it takes the called method's own type + /// parameters. A build that cannot describe a call site has no interceptor to write, so such a call stays on + /// the diagnostic path there. + /// + internal static bool TryReadGenericResult(IMethodSymbol method, Compilation compilation, out GenericResult genericResult) + { + genericResult = default; + if (ExtractorValidation.NamesOnlyReachableTypes(method, compilation)) + { + return true; + } + + if (!InterceptableLocationReader.IsSupported + || !ExtractorValidation.TryFindUnnameableResult(method, compilation, out var ordinal)) + { + return false; + } + + genericResult = new(method.TypeArguments.Length, ordinal); + return true; + } + + /// + /// Loops over the method parameters, collecting property paths and expression texts for + /// each Expression<Func<...>> argument and detecting a selector parameter. + /// + /// The resolved method symbol. + /// The invocation argument list. + /// The semantic model. + /// Where the generated code that reads the paths is declared. + /// The list to append extracted property paths to. + /// The list to append normalized expression texts to. + /// Cancellation token. + /// + /// if a selector/conversion parameter was found. When a path cannot be read, + /// is left empty. + /// + private static bool CollectPropertyPaths( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + SemanticModel semanticModel, + ReachScope scope, + List> propertyPaths, + List expressionTexts, + CancellationToken ct) + { + var hasSelector = false; + + for (var i = 0; i < methodSymbol.Parameters.Length; i++) + { + var parameter = methodSymbol.Parameters[i]; + + // The parameter list is walked by position, so a call that supplies fewer arguments than the + // resolved method declares - the trailing caller-info ones are always omitted - has nothing at + // this position. Reading past the arguments would throw out of the transform, and a generator + // that throws contributes no source at all, taking every unrelated file down with it. + if (i >= args.Count) + { + break; + } + + // Check if parameter type is Expression> + if (parameter.Type is INamedTypeSymbol { Name: "Expression" }) + { + // One path generated code cannot read leaves the whole call to the runtime stub. Keeping the + // others would generate a method with fewer parameters than the call, which an interceptor cannot claim. + var path = SyntaxHelpers.ExtractPropertyPathFromLambda(args[i].Expression, semanticModel, scope, ct); + if (path is null) + { + propertyPaths.Clear(); + return false; + } + + propertyPaths.Add(new(path)); + expressionTexts.Add( + args[i].Expression.ToString()); + } + else if (IsSelectorParameterName(parameter.Name)) + { + hasSelector = true; + } + } + + return hasSelector; + } + + /// + /// Computes the observation return type from the collected property paths rather than from + /// methodSymbol.ReturnType. This avoids an off-by-one issue where overload resolution + /// might resolve to a previously-generated concrete overload with a different property count. + /// + /// The resolved method symbol. + /// The collected property paths. + /// Whether the overload has a selector/conversion parameter. + /// The fully qualified return type name. + private static string ComputeReturnTypeFullName( + IMethodSymbol methodSymbol, + List> propertyPaths, + bool hasSelector) + { + if (hasSelector) + { + // For selector overloads, find the selector parameter's Func<..., TReturn> + // and extract TReturn (the last type argument). + // hasSelector is only true when the parameter exists, so this always returns non-null. + return ExtractorValidation.FindSelectorReturnType( + methodSymbol.Parameters, + "conversionFunc", + "selector")!; + } + + if (propertyPaths.Count == 1) + { + // Single property: return type is the leaf property type. + var singlePath = propertyPaths[0]; + return singlePath[singlePath.Length - 1].PropertyTypeFullName; + } + + // Multiple properties: the emission carries every value, so the return type names them as one. + var valuesBuilder = new System.Text.StringBuilder(CodeGeneration.GeneratedTypeNames.PropertyValues).Append('<'); + for (var i = 0; i < propertyPaths.Count; i++) + { + var path = propertyPaths[i]; + var leafType = path[path.Length - 1].PropertyTypeFullName; + _ = valuesBuilder.Append(leafType); + if (i < propertyPaths.Count - 1) + { + _ = valuesBuilder.Append(", "); + } + } + + _ = valuesBuilder.Append('>'); + return valuesBuilder.ToString(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ReachScope.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ReachScope.cs new file mode 100644 index 00000000..59b8ba7d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ReachScope.cs @@ -0,0 +1,189 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Where a call site's generated code is declared, which decides the types and members it can name. +/// +/// +/// Most generated code sits in a class of its own in the consumer's assembly. On a build that intercepts, a call that +/// needs more moves, the first time it needs it: +/// +/// +/// into a generic class whose type parameters stand in for the caller's, when the call is built from them; +/// into the caller's own partial class, when the call names a private or protected type or member. +/// +/// +/// A move happens while the call's types and paths are read, so a call that needs neither costs nothing more. Never part +/// of a pipeline's output. +/// +/// +internal sealed class ReachScope +{ + /// The step a scope that cannot move any further is at. + private const int LastStep = 2; + + /// The call site and its semantic model, for a scope that can move. + private readonly CallSiteContext _context; + + /// The resolved binding method, or null for a scope that never moves. + private readonly IMethodSymbol? _method; + + /// Cancels the reads a move makes. + private readonly CancellationToken _cancellationToken; + + /// How far the scope has moved: 0 not at all, 1 into a generic class, 2 into the caller's class. + private int _step; + + /// Initializes a new instance of the class. + /// The consumer compilation. + /// The call site and its semantic model. + /// The resolved binding method, or null for a scope that never moves. + /// Cancels the reads a move makes. + private ReachScope(Compilation compilation, in CallSiteContext context, IMethodSymbol? method, CancellationToken cancellationToken) + { + Compilation = compilation; + _context = context; + _method = method; + _cancellationToken = cancellationToken; + _step = method is not null && InterceptableLocationReader.IsSupported ? 0 : LastStep; + } + + /// Gets the consumer compilation. + internal Compilation Compilation { get; } + + /// Gets the caller's class the generated code is declared in, or null when it sits in a class of its own. + internal INamedTypeSymbol? Host { get; private set; } + + /// Gets the caller's type parameters the generated code is generic over. + internal ITypeParameterSymbol[] TypeParameters { get; private set; } = Array.Empty(); + + /// Gets the call, described for the interceptor that claims it from the moved code, or null when it did not move. + internal HostedCall? Call { get; private set; } + + /// Creates a scope that never moves, for code declared in a class of its own. + /// The consumer compilation. + /// The scope. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ReachScope Assembly(Compilation compilation) => new(compilation, default, null, default); + + /// Creates a scope for one call site, which may move when the call needs it. + /// The call site and its semantic model. + /// The resolved binding method. + /// Cancels the reads a move makes. + /// The scope. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ReachScope ForCall(in CallSiteContext context, IMethodSymbol method, CancellationToken cancellationToken) => + new(context.SemanticModel.Compilation, context, method, cancellationToken); + + /// Stops the scope from moving, for a call whose generated code has to stay in a class of its own. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void Pin() => _step = LastStep; + + /// Determines whether code in this scope can name a type, moving the scope if that makes it possible. + /// The type, which may be null. + /// when the type is closed over names in scope, has a name, and is accessible here. + internal bool CanName(ITypeSymbol? type) + { + while (!CanNameHere(type)) + { + if (!Move()) + { + return false; + } + } + + return true; + } + + /// Determines whether code in this scope can name every type in a list, moving the scope if need be. + /// The types. + /// when every type can be named here. + internal bool CanNameAll(ImmutableArray types) + { + for (var i = 0; i < types.Length; i++) + { + if (!CanName(types[i])) + { + return false; + } + } + + return true; + } + + /// Names a type a generated member declares a parameter of, when code in this scope can. + /// The type, which may be null. + /// The fully qualified name, or null when no generated member could declare a parameter of it. + /// + /// The calling code's type parameter is named only when the generated code is generic over it, moving the scope there + /// if it can. + /// + internal string? NameOf(ITypeSymbol? type) + { + if (type is not ITypeParameterSymbol) + { + return ExtractorValidation.GetDeclarableTypeDisplayName(type); + } + + return CanName(type) ? ExtractorValidation.GetTypeDisplayName(type) : null; + } + + /// Determines whether code in this scope can read a member, moving the scope into the caller's class if need be. + /// The property or field. + /// The type the member is read through. + /// when the member is visible to the assembly, or to the caller's class. + internal bool CanRead(ISymbol member, ITypeSymbol owner) + { + if (member.DeclaredAccessibility is Accessibility.Public or Accessibility.Internal) + { + return true; + } + + while (Host is null) + { + if (!Move()) + { + return false; + } + } + + return Compilation.IsSymbolAccessibleWithin(member, Host, owner); + } + + /// Takes the next step out of a class of its own, when the call allows it. + /// when the scope moved. + private bool Move() + { + while (_step < LastStep) + { + _step++; + if (CallSiteHosting.TryMove(_context, _method!, _step == LastStep, _cancellationToken) is not { } moved) + { + continue; + } + + Host = moved.Host; + TypeParameters = moved.TypeParameters; + Call = moved.Call; + return true; + } + + return false; + } + + /// Determines whether code in this scope, as it stands, can name a type. + /// The type, which may be null. + /// when it can. + private bool CanNameHere(ITypeSymbol? type) => + type is not null + && !ExtractorValidation.ContainsNamelessType(type) + && CallSiteHosting.UsesOnly(type, TypeParameters) + && Compilation.IsSymbolAccessibleWithin(type, (ISymbol?)Host ?? Compilation.Assembly); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/SourceGeneratorsMemberExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SourceGeneratorsMemberExtractor.cs new file mode 100644 index 00000000..3cee4bf7 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SourceGeneratorsMemberExtractor.cs @@ -0,0 +1,456 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Describes the members ReactiveUI.SourceGenerators adds to a type, following its naming and typing rules. +/// +/// A generator never sees another generator's output, so a call site that binds a property ReactiveUI.SourceGenerators +/// writes has nothing to bind against. These rules repeat what that generator writes, so the call site can be read as +/// if its output were already there. They follow ReactiveUI.SourceGenerators 4.0.0. +/// +internal static class SourceGeneratorsMemberExtractor +{ + /// The prefix a Hungarian-style member name starts with. + private const string MemberPrefix = "m_"; + + /// The suffix an asynchronous command method's name drops. + private const string AsyncSuffix = "Async"; + + /// The suffix a generated command property's name ends with. + private const string CommandSuffix = "Command"; + + /// The name of the attribute argument that sets the generated setter's accessibility. + private const string SetModifierArgument = "SetModifier"; + + /// The name of the attribute argument that sets the generated property's accessibility. + private const string AccessModifierArgument = "AccessModifier"; + + /// The metadata name of the command factory in ReactiveUI's System.Reactive flavour. + private const string ReactiveCommandFactoryName = "ReactiveUI.Reactive.ReactiveCommand"; + + /// The metadata name of ReactiveUI's command factory. + private const string CommandFactoryName = "ReactiveUI.ReactiveCommand"; + + /// The name of the void type a ReactiveUI.Primitives command carries. + private const string RxVoidName = "ReactiveUI.Primitives.RxVoid"; + + /// The void type a ReactiveUI.Primitives command carries, fully qualified. + private const string RxVoidType = "global::ReactiveUI.Primitives.RxVoid"; + + /// The accessibility of a generated property that takes no access modifier. + private const string PublicAccessibility = "public"; + + /// The void type a System.Reactive command carries. + private const string UnitType = "global::System.Reactive.Unit"; + + /// The metadata name of CancellationToken, which a command method may take last. + private const string CancellationTokenName = "System.Threading.CancellationToken"; + + /// The value of the Protected access modifier. + private const int ProtectedModifier = 1; + + /// The value of the Internal access modifier. + private const int InternalModifier = 2; + + /// The value of the Private access modifier. + private const int PrivateModifier = 3; + + /// The value of the InternalProtected access modifier. + private const int ProtectedInternalModifier = 4; + + /// The value of the PrivateProtected access modifier. + private const int PrivateProtectedModifier = 5; + + /// The value of the Init setter modifier. + private const int InitModifier = 6; + + /// The accessor body every generated accessor declaration carries. It never runs. + private const string GetAccessor = "get { throw null; }"; + + /// Describes the property [Reactive] generates from a field. + /// The attribute context. + /// Cancellation token. + /// The property, or null when the attribute is misplaced on an event field. + /// Only fields reach this: the attribute on a partial property marks a property the consumer declares. + internal static SourceGeneratorsMember? ExtractReactive(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + ct.ThrowIfCancellationRequested(); + if (context.TargetSymbol is not IFieldSymbol field) + { + return null; + } + + var setter = ReadInt(context.Attributes[0], SetModifierArgument) switch + { + ProtectedModifier => "protected set { }", + InternalModifier => "internal set { }", + PrivateModifier => "private set { }", + ProtectedInternalModifier => "protected internal set { }", + PrivateProtectedModifier => "private protected set { }", + InitModifier => "init { }", + _ => "set { }", + }; + + return FromField(field, PublicAccessibility, setter); + } + + /// Describes the property [ReactiveCollection] generates from a field. + /// The attribute context. + /// Cancellation token. + /// The property, or null when the attribute is misplaced on an event field. + internal static SourceGeneratorsMember? ExtractReactiveCollection(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + ct.ThrowIfCancellationRequested(); + return context.TargetSymbol is IFieldSymbol field ? FromField(field, PublicAccessibility, "set { }") : null; + } + + /// Describes the read-only property [BindableDerivedList] generates from a field. + /// The attribute context. + /// Cancellation token. + /// The property. + internal static SourceGeneratorsMember? ExtractBindableDerivedList(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + ct.ThrowIfCancellationRequested(); + return FromField((IFieldSymbol)context.TargetSymbol, ReadAccessibility(context.Attributes[0]), null); + } + + /// Describes the command property [ReactiveCommand] generates from a method. + /// The attribute context. + /// Cancellation token. + /// The property, or null when the method takes more than one parameter the command could carry. + internal static SourceGeneratorsMember? ExtractReactiveCommand(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + ct.ThrowIfCancellationRequested(); + var method = (IMethodSymbol)context.TargetSymbol; + if (PartialTypeRaisePlugin.DescribeDeclaration(method.ContainingType) is not { } declaration) + { + return null; + } + + var returnType = method.ReturnType; + var isTask = IsTask(returnType); + var isObservable = IsObservable(returnType); + var output = isTask || isObservable ? Unwrap(returnType) : returnType; + + if (CommandInput(method, isTask, out var input) is false) + { + return null; + } + + var (commandNamespace, voidType) = ReadCommandApi(context.SemanticModel.Compilation); + var outputName = output is null or { SpecialType: SpecialType.System_Void } ? voidType : TypeName(output); + var inputName = input is null ? voidType : TypeName(input); + + var property = new PooledStringBuilder() + .Append(ReadAccessibility(context.Attributes[0])) + .Append(' ') + .Append(commandNamespace) + .Append(".ReactiveCommand<") + .Append(inputName) + .Append(", ") + .Append(outputName) + .Append("> ") + .Append(CommandName(method.Name, isTask)) + .Append(" { ") + .Append(GetAccessor) + .Append(" }") + .ToStringAndReturn(); + + return new(declaration, null, property); + } + + /// Describes the IReactiveObject implementation [IReactiveObject] adds to a class. + /// The attribute context. + /// Cancellation token. + /// The interface, or null when the compilation has no IReactiveObject to implement. + internal static SourceGeneratorsMember? ExtractIReactiveObject(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + ct.ThrowIfCancellationRequested(); + var reactiveObject = context.SemanticModel.Compilation.GetTypeByMetadataName(Constants.IReactiveObjectMetadataName); + return reactiveObject is not null + && PartialTypeRaisePlugin.DescribeDeclaration((INamedTypeSymbol)context.TargetSymbol) is { } declaration + ? new(declaration, TypeName(reactiveObject), null) + : null; + } + + /// Gets the name ReactiveUI.SourceGenerators gives the property it generates from a field. + /// The field's name. + /// The name without an m_ or leading-underscore prefix, its first letter upper case. + internal static string PropertyName(string fieldName) + { + var start = PrefixLength(fieldName); + return start >= fieldName.Length + ? fieldName + : char.ToUpperInvariant(fieldName[start]) + fieldName.Substring(start + 1); + } + + /// Gets the name ReactiveUI.SourceGenerators gives the command property it generates from a method. + /// The method's name. + /// Whether the method returns a task, which drops an Async suffix. + /// The method name's stem, its first letter upper case, followed by Command. + internal static string CommandName(string methodName, bool isAsync) + { + var start = PrefixLength(methodName); + var length = methodName.Length - start; + if (isAsync && length >= AsyncSuffix.Length && methodName.EndsWith(AsyncSuffix, StringComparison.Ordinal)) + { + length -= AsyncSuffix.Length; + } + + return length == 0 + ? CommandSuffix + : char.ToUpperInvariant(methodName[start]) + methodName.Substring(start + 1, length - 1) + CommandSuffix; + } + + /// Describes the property generated from a field. + /// The field. + /// The property's accessibility. + /// The setter declaration, or null for a read-only property. + /// The property, or null when its name would repeat the field's or its type is not partial. + private static SourceGeneratorsMember? FromField(IFieldSymbol field, string accessibility, string? setter) + { + var name = PropertyName(field.Name); + if (string.Equals(name, field.Name, StringComparison.Ordinal) + || PartialTypeRaisePlugin.DescribeDeclaration(field.ContainingType) is not { } declaration) + { + return null; + } + + var property = new PooledStringBuilder() + .Append(accessibility) + .Append(' ') + .Append(TypeName(field.Type)) + .Append(' ') + .Append(name) + .Append(" { ") + .Append(GetAccessor); + if (setter is not null) + { + _ = property.Append(' ').Append(setter); + } + + return new(declaration, null, property.Append(" }").ToStringAndReturn()); + } + + /// Finds the parameter a command carries, the way ReactiveUI.SourceGenerators does. + /// The command method. + /// Whether the method returns a task. + /// The parameter's type, or null when the command takes none. + /// when the method has more than one parameter to carry, and no command is generated. + /// + /// A task method may take a CancellationToken after its one parameter. Any other method that takes a + /// CancellationToken carries no parameter. + /// + private static bool CommandInput(IMethodSymbol method, bool isTask, out ITypeSymbol? input) + { + input = null; + var parameters = method.Parameters; + if (TakesCancellationToken(parameters)) + { + if (isTask && parameters.Length == 2) + { + input = parameters[0].Type; + } + + return true; + } + + if (parameters.Length > 1) + { + return false; + } + + input = parameters.IsEmpty ? null : parameters[0].Type; + return true; + } + + /// Determines whether any of a method's parameters is a CancellationToken. + /// The method's parameters. + /// when one of them is. + private static bool TakesCancellationToken(ImmutableArray parameters) + { + foreach (var parameter in parameters) + { + if (parameter.Type.ToDisplayString() == CancellationTokenName) + { + return true; + } + } + + return false; + } + + /// Reads which ReactiveUI declares the command type, and the type a command without a value carries. + /// The compilation. + /// The command type's namespace and the void type, both fully qualified. + private static (string Namespace, string VoidType) ReadCommandApi(Compilation compilation) + { + if (compilation.GetTypeByMetadataName(ReactiveCommandFactoryName) is not null) + { + return ("global::ReactiveUI.Reactive", UnitType); + } + + var command = compilation.GetTypeByMetadataName(CommandFactoryName); + return ("global::ReactiveUI", command is not null && CreatesRxVoid(command) ? RxVoidType : UnitType); + } + + /// Determines whether ReactiveUI's command factory creates commands over RxVoid. + /// The ReactiveCommand factory class. + /// when a Create overload returns a command typed with RxVoid. + private static bool CreatesRxVoid(INamedTypeSymbol command) + { + foreach (var member in command.GetMembers("Create")) + { + if (member is not IMethodSymbol { ReturnType: INamedTypeSymbol returnType }) + { + continue; + } + + foreach (var argument in returnType.TypeArguments) + { + if (argument.ToDisplayString() == RxVoidName) + { + return true; + } + } + } + + return false; + } + + /// Determines whether a type is, or derives from, System.Threading.Tasks.Task. + /// The method's return type. + /// for Task, Task<T> and their subclasses. + private static bool IsTask(ITypeSymbol type) + { + for (var current = type; current is not null; current = current.BaseType) + { + if (current is INamedTypeSymbol { Name: "Task", Arity: 0, ContainingType: null } task + && task.ContainingNamespace.ToDisplayString() == "System.Threading.Tasks") + { + return true; + } + } + + return false; + } + + /// Determines whether a type, or a type it derives from, mentions System.IObservable. + /// The method's return type. + /// when the type, a containing type or a type argument is an IObservable. + private static bool IsObservable(ITypeSymbol type) + { + for (var current = type; current is not null; current = current.BaseType) + { + if (MentionsObservable(current)) + { + return true; + } + } + + return false; + } + + /// Determines whether a type, its containing type or any type argument is System.IObservable. + /// The type. + /// when an IObservable appears anywhere in the type's name. + private static bool MentionsObservable(ITypeSymbol type) + { + if (type is IArrayTypeSymbol array) + { + return MentionsObservable(array.ElementType); + } + + if (type is not INamedTypeSymbol named) + { + return false; + } + + if ((named.Name.StartsWith("IObservable", StringComparison.Ordinal) && named.ContainingNamespace.ToDisplayString() == "System") + || (named.ContainingType is { } containing && MentionsObservable(containing))) + { + return true; + } + + foreach (var argument in named.TypeArguments) + { + if (MentionsObservable(argument)) + { + return true; + } + } + + return false; + } + + /// Reads the generated property's accessibility from a PropertyAccessModifier argument. + /// The attribute. + /// The accessibility keywords. + private static string ReadAccessibility(AttributeData attribute) => + ReadInt(attribute, AccessModifierArgument) switch + { + ProtectedModifier => "protected", + InternalModifier => "internal", + PrivateModifier => "private", + ProtectedInternalModifier => "protected internal", + PrivateProtectedModifier => "private protected", + _ => PublicAccessibility, + }; + + /// Reads an enum-valued named argument of an attribute. + /// The attribute. + /// The argument's name. + /// The argument's value, or zero when it is not set. + private static int ReadInt(AttributeData attribute, string name) + { + foreach (var argument in attribute.NamedArguments) + { + if (argument.Key == name && argument.Value.Value is int value) + { + return value; + } + } + + return 0; + } + + /// Gets the length of the prefix a generated name drops: m_, or any leading underscores. + /// The member name. + /// The number of characters to skip. + private static int PrefixLength(string name) + { + if (name.StartsWith(MemberPrefix, StringComparison.Ordinal)) + { + return MemberPrefix.Length; + } + + var start = 0; + while (start < name.Length && name[start] == '_') + { + start++; + } + + return start; + } + + /// Writes a type's fully qualified name. + /// The type. + /// The name, starting with global:: where the type has a namespace. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string TypeName(ITypeSymbol type) => type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + + /// Gets the value a task or observable produces. + /// The method's return type. + /// Its one type argument, or null when it has none, as a plain Task does. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static ITypeSymbol? Unwrap(ITypeSymbol type) => + type is INamedTypeSymbol { TypeArguments.Length: 1 } wrapper ? wrapper.TypeArguments[0] : null; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/SymbolHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SymbolHelpers.cs new file mode 100644 index 00000000..62875aa6 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SymbolHelpers.cs @@ -0,0 +1,264 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Provides well-known symbol caching and type-checking helpers shared across all extractors. +internal static class SymbolHelpers +{ + /// The symbol cache for the compilation. + private static readonly ConditionalWeakTable SymbolCache = new(); + + /// Gets the well-known symbols for a compilation. + /// The compilation. + /// The well-known symbols box. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static WellKnownSymbolsBox GetWellKnownSymbols(Compilation compilation) => + SymbolCache.GetValue( + compilation, + static c => new() + { + INPC = c.GetTypeByMetadataName(Constants.INotifyPropertyChangedMetadataName), + INPChanging = c.GetTypeByMetadataName(Constants.INotifyPropertyChangingMetadataName), + IReactiveObject = c.GetTypeByMetadataName(Constants.IReactiveObjectMetadataName), + WpfDependencyObject = c.GetTypeByMetadataName(Constants.WpfDependencyObjectMetadataName), + WinUIDependencyObject = c.GetTypeByMetadataName(Constants.WinUIDependencyObjectMetadataName), + NSObject = ResolveKvoOwner(c), + WinFormsComponent = c.GetTypeByMetadataName(Constants.WinFormsComponentMetadataName), + AndroidView = c.GetTypeByMetadataName(Constants.AndroidViewMetadataName), + }); + + /// Resolves NSObject when the runtime's key-value observing observable is in reach. + /// The consumer compilation. + /// The NSObject symbol, or null when either it or the runtime's KVO support is missing. + /// + /// Key-value observing runs through the runtime's Apple heads. Without them there is nothing for a generated + /// observation to reference, so no type is treated as observable through KVO. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static INamedTypeSymbol? ResolveKvoOwner(Compilation compilation) => + ResolvesEither(compilation, CodeGeneration.GeneratedTypeNames.KvoPropertyObservableMetadataName, CodeGeneration.GeneratedTypeNames.ReactiveKvoPropertyObservableMetadataName) + ? compilation.GetTypeByMetadataName(Constants.NSObjectMetadataName) + : null; + + /// Determines whether a compilation resolves a runtime type in either the lean or the System.Reactive flavour. + /// The consumer compilation. + /// The type's metadata name in the lean runtime. + /// The type's metadata name in the System.Reactive runtime. + /// when either flavour declares the type. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool ResolvesEither(Compilation compilation, string leanMetadataName, string reactiveMetadataName) => + compilation.GetTypeByMetadataName(leanMetadataName) is not null + || compilation.GetTypeByMetadataName(reactiveMetadataName) is not null; + + /// + /// Extracts the inner type T from a property whose type is IObservable<T> or IObservable<T>?. + /// Falls back to the leaf property type if the IObservable unwrapping fails. + /// + /// The leaf property path segment. + /// The semantic model. + /// The argument expression (the lambda). + /// Cancellation token. + /// The fully qualified inner type T. + internal static string ExtractInnerObservableType( + Models.PropertyPathSegment leafSegment, + SemanticModel semanticModel, + Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax argExpression, + CancellationToken ct) + { + // The leaf property type string looks like "global::System.IObservable?" + // We need to get the actual INamedTypeSymbol to extract the type argument. + // Re-resolve the lambda body to get the actual property symbol. + if (argExpression is Microsoft.CodeAnalysis.CSharp.Syntax.LambdaExpressionSyntax lambda) + { + var body = SyntaxHelpers.GetLambdaBody(lambda); + if (body is not null) + { + body = SyntaxHelpers.UnwrapNullForgiving(body); + if (body is Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax memberAccess) + { + var memberSymbol = semanticModel.GetSymbolInfo(memberAccess, ct).Symbol; + if (((memberSymbol as IPropertySymbol)?.Type ?? (memberSymbol as IFieldSymbol)?.Type) is INamedTypeSymbol namedType) + { + var observableType = TryGetObservableTypeArgument(namedType); + if (observableType is not null) + { + return observableType; + } + } + } + } + } + + // Fallback: use the leaf type as-is + return leafSegment.PropertyTypeFullName; + } + + /// Checks if a named type symbol is IObservable<T>. + /// The type symbol to check. + /// A value indicating whether the type is IObservable<T>. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsIObservable(INamedTypeSymbol type) => + NativeTypeIdentity.Matches(type, "System.IObservable`1"); + + /// Checks if a type is IInteraction<TInput, TOutput>. + /// The type symbol to check. + /// A value indicating whether the type is IInteraction<TInput, TOutput>. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsInteractionType(INamedTypeSymbol type) => + NativeTypeIdentity.Matches(type, "ReactiveUI.Binding.IInteraction`2") + || NativeTypeIdentity.Matches(type, $"{Constants.ReactiveRuntimeNamespace}.IInteraction`2"); + + /// Extracts TInput and TOutput type arguments from a type that implements IInteraction<TInput, TOutput>. + /// The type symbol. + /// The resulting TInput type name. + /// The resulting TOutput type name. + /// A value indicating whether the type arguments were extracted. + internal static bool ExtractInteractionTypeArguments(ITypeSymbol type, out string inputType, out string outputType) + { + inputType = string.Empty; + outputType = string.Empty; + + // Check direct implementation + if (type is not INamedTypeSymbol namedType) + { + return false; + } + + if (IsInteractionType(namedType)) + { + inputType = namedType.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + outputType = namedType.TypeArguments[1].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + return true; + } + + // Check interfaces + for (var i = 0; i < namedType.AllInterfaces.Length; i++) + { + var iface = namedType.AllInterfaces[i]; + if (!IsInteractionType(iface)) + { + continue; + } + + inputType = iface.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + outputType = iface.TypeArguments[1].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + return true; + } + + return false; + } + + /// + /// Detects whether a method parameter is an IBindingTypeConverter-typed converter override. + /// Extracted as a helper to allow direct unit testing of this branch. + /// + /// The parameter symbol to inspect. + /// + /// if the parameter has a converter-override name and is typed as + /// IBindingTypeConverter; otherwise . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool DetectHasConverterOverride(IParameterSymbol parameter) => + parameter.Name is "converter" or "sourceToTargetConverter" or "vmToViewConverter" or "viewModelToViewConverter" + && parameter.Type.Name == "IBindingTypeConverter"; + + /// Resolves a path's leaf property or field type to its INamedTypeSymbol using the semantic model. + /// The semantic model. + /// The lambda expression. + /// Cancellation token. + /// The resolved named type symbol, or null if it could not be resolved. + internal static INamedTypeSymbol? ResolveNamedType( + SemanticModel semanticModel, + Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax lambdaExpression, + CancellationToken ct) + { + if (lambdaExpression is not Microsoft.CodeAnalysis.CSharp.Syntax.LambdaExpressionSyntax lambda) + { + return null; + } + + var body = SyntaxHelpers.GetLambdaBody(lambda); + + if (body is null) + { + return null; + } + + body = SyntaxHelpers.UnwrapNullForgiving(body); + if (body is not Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax memberAccess) + { + return null; + } + + var memberSymbol = semanticModel.GetSymbolInfo(memberAccess, ct).Symbol; + return memberSymbol switch + { + IPropertySymbol { Type: INamedTypeSymbol propertyType } => propertyType, + IFieldSymbol { Type: INamedTypeSymbol fieldType } => fieldType, + _ => null, + }; + } + + /// + /// Returns the fully qualified T of IObservable<T> for the given type, + /// checking the type itself and all implemented interfaces. + /// + /// The candidate type symbol. + /// The fully qualified observable type argument, or null if the type is not observable. + private static string? TryGetObservableTypeArgument(INamedTypeSymbol namedType) + { + // Check if it's IObservable directly + if (IsIObservable(namedType)) + { + return namedType.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + } + + // Check interfaces for IObservable + for (var j = 0; j < namedType.AllInterfaces.Length; j++) + { + if (IsIObservable(namedType.AllInterfaces[j])) + { + return namedType.AllInterfaces[j].TypeArguments[0] + .ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + } + } + + return null; + } + + /// + /// Cached well-known symbol references for a compilation. + /// Uses ConditionalWeakTable so the compilation can be garbage collected. + /// + internal sealed class WellKnownSymbolsBox + { + /// Gets or sets the INPC symbol. + internal INamedTypeSymbol? INPC { get; set; } + + /// Gets or sets the INPChanging symbol. + internal INamedTypeSymbol? INPChanging { get; set; } + + /// Gets or sets the IReactiveObject symbol. + internal INamedTypeSymbol? IReactiveObject { get; set; } + + /// Gets or sets the WpfDependencyObject symbol. + internal INamedTypeSymbol? WpfDependencyObject { get; set; } + + /// Gets or sets the WinUIDependencyObject symbol. + internal INamedTypeSymbol? WinUIDependencyObject { get; set; } + + /// Gets or sets the NSObject symbol. + internal INamedTypeSymbol? NSObject { get; set; } + + /// Gets or sets the WinFormsComponent symbol. + internal INamedTypeSymbol? WinFormsComponent { get; set; } + + /// Gets or sets the AndroidView symbol. + internal INamedTypeSymbol? AndroidView { get; set; } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/SyntaxHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SyntaxHelpers.cs new file mode 100644 index 00000000..1c05cb8a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/SyntaxHelpers.cs @@ -0,0 +1,238 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Provides syntax-level helpers for extracting property paths from lambda expressions. +internal static class SyntaxHelpers +{ + /// Gets the line the compiler passes to a CallerLineNumber parameter of an invocation. + /// The invocation. + /// Cancellation token. + /// The one-based line number. + /// + /// The compiler reports the line of the invoked member's name, not the line the invocation starts on. The two + /// differ for a chained call written across lines, where the invocation of .ToProperty(...) on its own + /// line starts back at the receiver on an earlier line. + /// + internal static int CallerLineNumber(InvocationExpressionSyntax invocation, CancellationToken ct) + { + var anchor = invocation.Expression switch + { + MemberAccessExpressionSyntax memberAccess => memberAccess.Name.Span, + MemberBindingExpressionSyntax memberBinding => memberBinding.Name.Span, + _ => invocation.Span, + }; + + return invocation.SyntaxTree.GetLineSpan(anchor, ct).StartLinePosition.Line + 1; + } + + /// Extracts the property path from a lambda expression, for code declared in a class of its own. + /// The expression syntax. + /// The semantic model. + /// Cancellation token. + /// An array of property path segments, or null if the expression is not a valid lambda. + /// If the cancellation token is triggered. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static PropertyPathSegment[]? ExtractPropertyPathFromLambda( + ExpressionSyntax expression, + SemanticModel semanticModel, + CancellationToken ct) => + ExtractPropertyPathFromLambda(expression, semanticModel, ReachScope.Assembly(semanticModel.Compilation), ct); + + /// Extracts the property path from a lambda expression. + /// The expression syntax. + /// The semantic model. + /// Where the generated code that reads the path is declared. + /// Cancellation token. + /// An array of property path segments, or null if the expression is not a valid lambda. + /// If the cancellation token is triggered. + internal static PropertyPathSegment[]? ExtractPropertyPathFromLambda( + ExpressionSyntax expression, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + // Must be an inline lambda + if (expression is not LambdaExpressionSyntax lambda) + { + return null; + } + + // Get the lambda body (only SimpleLambda and ParenthesizedLambda exist in Roslyn) + var body = GetLambdaBody(lambda); + + if (body is null) + { + return null; + } + + // Decompose member access chain: x.A.B.C → [A, B, C] + // Also handles null-forgiving operator: x.A!.B!.C → [A, B, C] + const int TypicalPathDepth = 4; + + var segments = new List(TypicalPathDepth); + var current = UnwrapNullForgiving(body); + + while (current is MemberAccessExpressionSyntax memberAccess) + { + ct.ThrowIfCancellationRequested(); + + if (ReadPathSegment(memberAccess, semanticModel, scope, segments.Count == 0, ct) is not { } segment) + { + return null; + } + + segments.Add(segment); + current = UnwrapNullForgiving(memberAccess.Expression); + } + + // The chain has to end at the lambda's own parameter. Anything else - an indexer, a method call, a local - + // is a link the loop could not read, and generating the part after it would observe the wrong path. + if (segments.Count == 0 || !IsLambdaParameter(current, lambda)) + { + return null; + } + + // Reverse so the path goes from root to leaf + segments.Reverse(); + return [.. segments]; + } + + /// Extracts the body expression from a . + /// The lambda expression. + /// The body as an , or null if the body is a block or unsupported form. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ExpressionSyntax? GetLambdaBody(LambdaExpressionSyntax lambda) => + lambda.Body as ExpressionSyntax; + + /// + /// Unwraps null-forgiving operators (!) and parentheses from an expression. + /// For example, x.Child! is a + /// wrapping the for x.Child, and (x.Child) a + /// around it. Neither changes which member is named, so this + /// method strips both wrappers so the path extraction loop can proceed. + /// + /// The expression to unwrap. + /// The unwrapped expression. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ExpressionSyntax UnwrapNullForgiving(ExpressionSyntax expression) + { + while (true) + { + var inner = expression switch + { + PostfixUnaryExpressionSyntax postfix when postfix.IsKind(SyntaxKind.SuppressNullableWarningExpression) => postfix.Operand, + ParenthesizedExpressionSyntax parenthesized => parenthesized.Expression, + _ => null, + }; + + if (inner is null) + { + return expression; + } + + expression = inner; + } + } + + /// Reads one link of an observed property path. + /// The member access naming the link. + /// The semantic model. + /// Where the generated code that reads the link is declared. + /// Whether the link is the last of the path. + /// Cancellation token. + /// The segment, or null when the link is not a property or field generated code can read. + private static PropertyPathSegment? ReadPathSegment( + MemberAccessExpressionSyntax memberAccess, + SemanticModel semanticModel, + ReachScope scope, + bool isLeaf, + CancellationToken ct) + { + var member = semanticModel.GetSymbolInfo(memberAccess, ct).Symbol; + var memberType = member switch + { + IPropertySymbol property => property.Type, + IFieldSymbol field when IsReadableFieldLink(field, isLeaf) => field.Type, + _ => null, + }; + + if (memberType is null) + { + return null; + } + + var link = member!; + var owner = semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type as INamedTypeSymbol ?? link.ContainingType; + + // A private or protected member is only in reach of code in the caller's own partial class. + if (!scope.CanRead(link, owner)) + { + return null; + } + + // Generated code names every link's owner and value type, so a link through a type it cannot reach + // leaves the whole path to the runtime stub. + if (!scope.CanName(owner) || !scope.CanName(memberType)) + { + return null; + } + + // A field raises no notification, so it resolves no mechanism and is read once, like any other link whose + // owner cannot notify. It still carries its owner, which is how a call site whose first path starts at a + // field learns how the observed type notifies, and which view model property a view binding follows. + return link is IPropertySymbol propertySymbol + ? new( + propertySymbol.Name, + memberType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + owner.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + memberType.IsReferenceType, + TypeDetectionExtractor.ExtractPropertyOwner(owner, propertySymbol, semanticModel.Compilation, ct)) + : new( + link.Name, + memberType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + owner.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + memberType.IsReferenceType, + TypeDetectionExtractor.ExtractFieldOwner(owner, semanticModel.Compilation, ct), + IsField: true); + } + + /// Determines whether a field can stand as a link of a generated path. + /// The field. + /// Whether the field is the last link, which a binding may write. + /// for an instance field that generated code may read, and write at the leaf. + /// + /// Controls named in XAML or by a designer are exposed as fields, so a view binding usually reads through one, + /// as in v => v.NameBox.Text. A read-only field is fine along the way but not at the leaf, which a + /// two-way binding or BindTo assigns. A constant counts as static, so the static test excludes it too. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool IsReadableFieldLink(IFieldSymbol field, bool isLeaf) => + !field.IsStatic && (!isLeaf || !field.IsReadOnly); + + /// Determines whether an expression is the single parameter of a lambda. + /// The expression the member access chain ended at. + /// The lambda the chain was read from. + /// when the expression names the lambda's parameter. + private static bool IsLambdaParameter(ExpressionSyntax expression, LambdaExpressionSyntax lambda) + { + var parameter = lambda switch + { + SimpleLambdaExpressionSyntax simple => simple.Parameter, + ParenthesizedLambdaExpressionSyntax { ParameterList.Parameters.Count: 1 } parenthesized => parenthesized.ParameterList.Parameters[0], + _ => null, + }; + + return parameter is not null + && expression is IdentifierNameSyntax identifier + && identifier.Identifier.ValueText == parameter.Identifier.ValueText; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ToPropertyExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ToPropertyExtractor.cs new file mode 100644 index 00000000..eaffc17b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ToPropertyExtractor.cs @@ -0,0 +1,309 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts from ToProperty invocations. +/// +/// The property argument is read from syntax before anything asks the semantic model. Resolving the call is the +/// expensive step - it runs overload resolution and generic inference over the stub's overloads - and a selector +/// that is not x => x.Property can never produce a dispatch, so it is turned away first. +/// +internal static class ToPropertyExtractor +{ + /// The type parameter standing for an owner built from the caller's type parameters. + internal const string OpenOwnerName = "__TOwner"; + + /// The type parameter standing for the value type beside such an owner. + internal const string OpenValueName = "__TValue"; + + /// The minimum number of arguments a ToProperty invocation has (source, property). + private const int MinimumArgumentCount = 2; + + /// The position of the property argument when it is not named. + private const int PropertyArgumentPosition = 1; + + /// The stub parameter naming the property. + private const string PropertyParameterName = "property"; + + /// The number of type arguments on every stub overload (TObj, TRet). + private const int StubTypeArgumentCount = 2; + + /// The fully qualified format with nullable reference annotations, which the generated signature repeats. + private static readonly SymbolDisplayFormat AnnotatedFormat = SymbolDisplayFormat.FullyQualifiedFormat + .AddMiscellaneousOptions(SymbolDisplayMiscellaneousOptions.IncludeNullableReferenceTypeModifier); + + /// Pipeline B transform: extracts from a ToProperty invocation. + /// The generator syntax context. + /// Cancellation token. + /// The call-site model, or null when the call cannot be generated. + internal static ToPropertyInvocationInfo? ExtractToPropertyInvocation(CallSiteContext context, CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var args = invocation.ArgumentList.Arguments; + if (!ExtractorValidation.HasMinimumArguments(args.Count, MinimumArgumentCount)) + { + return null; + } + + var propertyArgument = FindPropertyArgument(args); + + // Syntax first: a selector is only usable as x => x.Property, and its name is read straight off it. + var selectorName = ReadSelectorName(propertyArgument); + if (selectorName is null && propertyArgument is LambdaExpressionSyntax) + { + return null; + } + + var semanticModel = context.SemanticModel; + var method = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (method is not { TypeArguments.Length: StubTypeArgumentCount } + || !ExtractorValidation.IsRecognizedExtensionClass(method.ContainingType)) + { + return null; + } + + // Generated code never reads the owner beyond raising its notifications, so an owner built from the caller's + // type parameters stays a type parameter of the generated code, constrained to what the raise needs. + var openConstraint = ReadOpenOwnerConstraint(method, semanticModel.Compilation); + if (!TryHost(context, method, openConstraint is not null, ct, out var hosted)) + { + return null; + } + + var shape = ReadShape(method); + var propertyName = shape.NamesPropertyByString + ? ReadConstantName(propertyArgument, semanticModel, ct) + : selectorName; + var target = ReadTarget(method, semanticModel.Compilation, openConstraint is not null); + + return string.IsNullOrWhiteSpace(propertyName) || target is not { } resolved + ? null + : new( + invocation.SyntaxTree.FilePath, + SyntaxHelpers.CallerLineNumber(invocation, ct), + resolved.SourceTypeFullName, + resolved.ValueTypeFullName, + resolved.ValueTypeDisplay, + propertyName!, + propertyArgument.ToString(), + shape, + resolved.Raise, + InterceptableLocationReader.Read(semanticModel, invocation, ct), + hosted, + openConstraint); + } + + /// Names the stub's type arguments and chooses how the source type's notifications are raised. + /// The resolved stub method. + /// The consumer compilation. + /// Whether the owner is built from the caller's type parameters, so the generated code is generic over it. + /// The target, or null when an overload could not name the types or raise the notifications. + /// A type whose notifications generated code cannot raise leaves nothing to generate, so the stub throws. + internal static Target? ReadTarget(IMethodSymbol method, Compilation compilation, bool openOwner = false) + { + if (method.TypeArguments[0] is not INamedTypeSymbol { IsStatic: false } sourceType + || method.TypeArguments[1] is { TypeKind: TypeKind.TypeParameter or TypeKind.Error }) + { + return null; + } + + var raise = PropertyRaisePluginRegistry.Select(sourceType, compilation); + if (raise is null) + { + return null; + } + + // The annotated name is only different when the call site inferred a nullable reference type; otherwise the + // one string serves both, so the model does not hold two copies of the same text. An open owner is generic + // over its value too, so neither type is named. + var valueType = method.TypeArguments[1]; + var plain = openOwner ? OpenValueName : valueType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var annotated = !openOwner && valueType.NullableAnnotation == NullableAnnotation.Annotated && valueType.IsReferenceType + ? valueType.ToDisplayString(AnnotatedFormat) + : plain; + var source = openOwner ? OpenOwnerName : sourceType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + return new Target(source, plain, annotated, raise); + } + + /// Reads the property name from a selector of the form x => x.Property. + /// The property argument. + /// The property name, or null when the argument is not such a selector. + /// + /// Only the syntax is needed: the member must be read off the lambda's own parameter, one level deep, which is + /// the only shape a property of the source can take. A deeper path names a property of something else. + /// + internal static string? ReadSelectorName(ExpressionSyntax expression) + { + var parameterName = expression switch + { + SimpleLambdaExpressionSyntax simple => simple.Parameter.Identifier.ValueText, + ParenthesizedLambdaExpressionSyntax { ParameterList.Parameters.Count: 1 } parenthesized => + parenthesized.ParameterList.Parameters[0].Identifier.ValueText, + _ => null, + }; + + if (parameterName is null || ((LambdaExpressionSyntax)expression).Body is not ExpressionSyntax body) + { + return null; + } + + while (body is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax { RawKind: (int)SyntaxKind.SuppressNullableWarningExpression }) + { + body = body is ParenthesizedExpressionSyntax parenthesized ? parenthesized.Expression : ((PostfixUnaryExpressionSyntax)body).Operand; + } + + return body is MemberAccessExpressionSyntax + { + RawKind: (int)SyntaxKind.SimpleMemberAccessExpression, + Expression: IdentifierNameSyntax receiver, + } memberAccess + && receiver.Identifier.ValueText == parameterName + ? memberAccess.Name.Identifier.ValueText + : null; + } + + /// Reads the property name passed as a string. + /// The property argument. + /// The semantic model, for a constant that is not a literal. + /// Cancellation token. + /// The name, or null when the argument is not a compile-time constant. + /// A literal is read from its token; nameof and constants need the model, which already bound them. + internal static string? ReadConstantName(ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken ct) + { + if (expression is LiteralExpressionSyntax { RawKind: (int)SyntaxKind.StringLiteralExpression } literal) + { + return literal.Token.ValueText; + } + + return semanticModel.GetConstantValue(expression, ct) is { HasValue: true, Value: string name } ? name : null; + } + + /// Reads which stub overload a call resolved to from its parameter names. + /// The resolved stub method. + /// The overload shape. + internal static ToPropertyOverloadShape ReadShape(IMethodSymbol method) + { + var namesByString = false; + var hasResult = false; + var initial = ToPropertyInitialValueKind.None; + var hasDefer = false; + var hasScheduler = false; + + var parameters = method.Parameters; + for (var i = 0; i < parameters.Length; i++) + { + var parameter = parameters[i]; + switch (parameter.Name) + { + case PropertyParameterName: + { + namesByString = parameter.Type.SpecialType == SpecialType.System_String; + break; + } + + case "result": + { + hasResult = true; + break; + } + + case "initialValue": + { + initial = ToPropertyInitialValueKind.Value; + break; + } + + case "getInitialValue": + { + initial = ToPropertyInitialValueKind.Factory; + break; + } + + case "deferSubscription": + { + hasDefer = true; + break; + } + + case "scheduler": + { + hasScheduler = true; + break; + } + } + } + + return new(namesByString, hasResult, initial, hasDefer, hasScheduler); + } + + /// Finds the constraint an owner built from the caller's type parameters is generated under. + /// The resolved stub method. + /// The consumer compilation. + /// The ReactiveUI interface the owner is constrained to, or null when the owner is not such a type. + /// + /// Only a build that intercepts can take it, since a generated overload would have to name the owner. The owner + /// has to be a class that raises through ReactiveUI's own extension, which takes the interface; the value type has + /// to be nameable, as the generated code is generic over it only to match the stub's arity. + /// + private static string? ReadOpenOwnerConstraint(IMethodSymbol method, Compilation compilation) => + InterceptableLocationReader.IsSupported + && method.TypeArguments[0] is INamedTypeSymbol { IsReferenceType: true } owner + && ExtractorValidation.ContainsTypeParameter(owner) + && !ExtractorValidation.ContainsNamelessType(owner) + && ExtractorValidation.IsReachableFromGeneratedCode(method.TypeArguments[1], compilation) + && compilation.GetTypeByMetadataName(Constants.IReactiveObjectMetadataName) is { } reactiveObject + && PropertyRaisePluginRegistry.Select(owner, compilation) is { Mechanism: ReactiveObjectRaisePlugin.MechanismName } + ? reactiveObject.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat) + : null; + + /// Resolves where a call's generated code is declared. + /// The call site and its semantic model. + /// The resolved stub method. + /// Whether the owner stays a type parameter of the generated code, which needs no hosting. + /// Cancellation token. + /// The call, described for the class that hosts it, or null when it sits in a class of its own. + /// when generated code can name every type argument of the call. + private static bool TryHost(in CallSiteContext context, IMethodSymbol method, bool open, CancellationToken ct, out HostedCall? hosted) + { + hosted = null; + if (open) + { + return true; + } + + var resolved = CallSiteHosting.TryResolve(context, method, ct, out var scope); + hosted = scope.Call; + return resolved; + } + + /// Finds the argument that names the property. + /// The call's arguments, excluding the receiver. + /// The argument passed for property, by name when it is named. + private static ExpressionSyntax FindPropertyArgument(SeparatedSyntaxList args) + { + for (var i = 0; i < args.Count; i++) + { + if (args[i].NameColon?.Name.Identifier.ValueText == PropertyParameterName) + { + return args[i].Expression; + } + } + + return args[PropertyArgumentPosition].Expression; + } + + /// The named types of a call site and how its source raises notifications. + /// The fully qualified source type. + /// The fully qualified value type, without nullable annotations. + /// The value type with its nullable annotations. + /// How generated code raises the source type's notifications. + internal readonly record struct Target(string SourceTypeFullName, string ValueTypeFullName, string ValueTypeDisplay, PropertyRaiseInfo Raise); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/TypeDetectionExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/TypeDetectionExtractor.cs new file mode 100644 index 00000000..b5dc6f6c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/TypeDetectionExtractor.cs @@ -0,0 +1,387 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts notification capabilities from property-owner symbols. +internal static class TypeDetectionExtractor +{ + /// The name a view exposes its view model under. + private const string ViewModelPropertyName = "ViewModel"; + + /// Reads a type's notification mechanisms and observable properties from its symbol. + /// The type to inspect, declared in this compilation or referenced from another. + /// The compilation the type is resolved against. + /// Cancellation token. + /// A ClassBindingInfo POCO for the type. + /// If the cancellation token is triggered. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ClassBindingInfo ExtractFromSymbol( + INamedTypeSymbol typeSymbol, + Compilation compilation, + CancellationToken ct) => + CreateTypeInfo(typeSymbol, compilation, ExtractProperties(typeSymbol, ct), ct); + + /// Captures the concrete owner's notification interfaces and one inherited or declared property. + /// The type through which the property is read. + /// The bound property symbol. + /// The consumer compilation. + /// The cancellation token. + /// The owner's capabilities with property-specific native candidates. + internal static ClassBindingInfo ExtractPropertyOwner( + INamedTypeSymbol owner, + IPropertySymbol property, + Compilation compilation, + CancellationToken ct) + { + var propertyInfo = ExtractProperty(owner, property); + var properties = property.Name != ViewModelPropertyName && FindViewModelProperty(owner) is { } viewModel + ? new EquatableArray([propertyInfo, ExtractProperty(owner, viewModel)]) + : new EquatableArray([propertyInfo]); + return CreateTypeInfo(owner, compilation, properties, ct); + } + + /// Captures the concrete owner of a field link: its notification interfaces and its view model property. + /// The type through which the field is read. + /// The consumer compilation. + /// The cancellation token. + /// The owner's capabilities, listing its view model property when it exposes one. + /// + /// A view binding usually starts at a field, a control named in XAML or by a designer, as in + /// v => v.NameBox.Text. The view model property is recorded so the binding follows the view model the view + /// currently holds, as it does when the path starts at a property. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ClassBindingInfo ExtractFieldOwner( + INamedTypeSymbol owner, + Compilation compilation, + CancellationToken ct) => + CreateTypeInfo( + owner, + compilation, + FindViewModelProperty(owner) is { } viewModel + ? new EquatableArray([ExtractProperty(owner, viewModel)]) + : new EquatableArray([]), + ct); + + /// Reads one property's native candidates while its owner symbols are available. + /// The concrete property owner. + /// The selected declaration. + /// Property-specific observation metadata. + internal static ObservablePropertyInfo ExtractProperty(INamedTypeSymbol owner, IPropertySymbol property) + { + var companion = PlatformSymbols.FindMember(owner, $"{property.Name}Property"); + return new( + property.Name, + property.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + property.GetMethod?.DeclaredAccessibility == Accessibility.Public, + property.IsIndexer, + companion is IFieldSymbol { IsStatic: true } or IPropertySymbol { IsStatic: true }, + PlatformSymbols.FindEvent(owner, $"{property.Name}Changed") is not null, + SymbolEqualityComparer.Default.Equals(owner, property.ContainingType), + ObservationPluginRegistry.InspectProperty(owner, property), + true); + } + + /// Combines owner capabilities with the property metadata needed by the caller. + /// The concrete owner type. + /// The consumer compilation. + /// The inspected property metadata. + /// The cancellation token. + /// Value-equatable owner information. + internal static ClassBindingInfo CreateTypeInfo( + INamedTypeSymbol typeSymbol, + Compilation compilation, + EquatableArray properties, + CancellationToken ct) + { + var wellKnown = SymbolHelpers.GetWellKnownSymbols(compilation); + + // Walk AllInterfaces (includes inherited interfaces) + DetectImplementedInterfaces( + typeSymbol, + wellKnown, + ct, + out var implementsIReactiveObject, + out var implementsINPC, + out var implementsINPChanging); + + // Walk base type chain for platform detection + var platform = DetectPlatformBaseTypes(typeSymbol, wellKnown, ct); + + return new( + typeSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + typeSymbol.MetadataName, + implementsIReactiveObject, + implementsINPC, + implementsINPChanging, + platform.InheritsWpfDependencyObject, + platform.InheritsWinUIDependencyObject, + platform.InheritsNSObject, + platform.InheritsWinFormsComponent, + platform.InheritsAndroidView, + properties); + } + + /// Extracts the properties from a named type symbol. + /// The type symbol. + /// Cancellation token. + /// An array of observable property info. + /// If the cancellation token is triggered. + internal static EquatableArray ExtractProperties( + INamedTypeSymbol typeSymbol, + CancellationToken ct) + { + const int TypicalObservablePropertyCount = 16; + + var properties = new List(TypicalObservablePropertyCount); + var seen = new HashSet(StringComparer.Ordinal); + var members = CollectMembersThroughOwnBases(typeSymbol, ct); + + for (var i = 0; i < members.Count; i++) + { + ct.ThrowIfCancellationRequested(); + if (members[i] is not IPropertySymbol property) + { + continue; + } + + if (property.IsStatic || property.IsWriteOnly || !seen.Add(property.Name)) + { + continue; + } + + FindCompanionMembers(members, property.Name, out var isDependencyProperty, out var hasChangeEvent); + + properties.Add(new( + property.Name, + property.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + property.GetMethod!.DeclaredAccessibility == Accessibility.Public, + property.IsIndexer, + isDependencyProperty, + hasChangeEvent, + SymbolEqualityComparer.Default.Equals(property.ContainingType, typeSymbol), + ObservationPluginRegistry.InspectProperty(typeSymbol, property), + true)); + } + + // View model replacement must also follow a view model declared by a referenced view base. + if (!seen.Contains(ViewModelPropertyName) && FindViewModelProperty(typeSymbol) is { } viewModel) + { + properties.Add(ExtractProperty(typeSymbol, viewModel)); + } + + return new([.. properties]); + } + + /// Finds the public instance view model property a view exposes, through its base classes. + /// The type to search. + /// The view model property, or null when the type exposes none. + private static IPropertySymbol? FindViewModelProperty(INamedTypeSymbol owner) => + PlatformSymbols.FindMember(owner, ViewModelPropertyName) is IPropertySymbol { IsStatic: false, GetMethod.DeclaredAccessibility: Accessibility.Public } viewModel + ? viewModel + : null; + + /// Finds the dependency-property field and change event a property notifies through. + /// The members of the type and of the bases its own assembly declares. + /// The property being described. + /// Set when a companion {PropertyName}Property field is declared. + /// Set when a companion {PropertyName}Changed event is declared. + /// + /// A mechanism the type carries does not settle how any one property notifies: the dependency property + /// field and the change event are declared per property, so both are recorded per property. + /// + private static void FindCompanionMembers( + List members, + string propertyName, + out bool isDependencyProperty, + out bool hasChangeEvent) + { + isDependencyProperty = false; + hasChangeEvent = false; + + var dependencyPropertyName = $"{propertyName}Property"; + var changeEventName = $"{propertyName}Changed"; + + for (var i = 0; i < members.Count; i++) + { + var member = members[i]; + + if (member is IFieldSymbol { IsStatic: true } && member.Name == dependencyPropertyName) + { + isDependencyProperty = true; + } + else if (member is IEventSymbol && member.Name == changeEventName) + { + hasChangeEvent = true; + } + } + } + + /// Collects the members of a type and of the bases its own assembly declares. + /// The type to collect from. + /// Cancellation token. + /// The members, most-derived first. + /// + /// A property a type inherits is still a property a call site can name, and whether it notifies is settled + /// by the base that declares it. Reading only the type's own members leaves every inherited property + /// unknown, which the mechanism predicates have to treat as reachable - so a plain property inherited from + /// a base with no dependency-property field and no change event would still be observed as though it had + /// one. + /// + /// The walk stops at the assembly boundary. A base the consumer wrote is worth reading and cheap; a + /// platform base is neither, and its properties genuinely are backed by the mechanism the type advertises, + /// which is what the unknown answer already assumes. + /// + /// + private static List CollectMembersThroughOwnBases(INamedTypeSymbol typeSymbol, CancellationToken ct) + { + const int TypicalMemberCount = 32; + + var members = new List(TypicalMemberCount); + var assembly = typeSymbol.ContainingAssembly; + + for (var type = typeSymbol; type is not null; type = type.BaseType) + { + ct.ThrowIfCancellationRequested(); + + if (!SymbolEqualityComparer.Default.Equals(type.ContainingAssembly, assembly)) + { + break; + } + + members.AddRange(type.GetMembers()); + } + + return members; + } + + /// Walks AllInterfaces to detect notification interfaces. + /// The type to inspect. + /// The cached well-known symbols. + /// Cancellation token. + /// Set to true if the type implements IReactiveObject. + /// Set to true if the type implements INotifyPropertyChanged. + /// Set to true if the type implements INotifyPropertyChanging. + private static void DetectImplementedInterfaces( + INamedTypeSymbol typeSymbol, + SymbolHelpers.WellKnownSymbolsBox wellKnown, + CancellationToken ct, + out bool implementsIReactiveObject, + out bool implementsINPC, + out bool implementsINPChanging) + { + implementsIReactiveObject = false; + implementsINPC = false; + implementsINPChanging = false; + + var allInterfaces = typeSymbol.AllInterfaces; + for (var i = 0; i < allInterfaces.Length; i++) + { + ct.ThrowIfCancellationRequested(); + var iface = allInterfaces[i]; + + if (wellKnown.IReactiveObject is not null + && SymbolEqualityComparer.Default.Equals(iface, wellKnown.IReactiveObject)) + { + implementsIReactiveObject = true; + } + + if (wellKnown.INPC is not null && SymbolEqualityComparer.Default.Equals(iface, wellKnown.INPC)) + { + implementsINPC = true; + } + + if (wellKnown.INPChanging is not null && SymbolEqualityComparer.Default.Equals(iface, wellKnown.INPChanging)) + { + implementsINPChanging = true; + } + } + } + + /// Walks the base type chain to detect platform-specific base types (WPF/WinUI/KVO/WinForms/Android). + /// The type to inspect. + /// The cached well-known symbols. + /// Cancellation token. + /// The detected platform base-type flags. + private static PlatformBaseTypeFlags DetectPlatformBaseTypes( + INamedTypeSymbol typeSymbol, + SymbolHelpers.WellKnownSymbolsBox wellKnown, + CancellationToken ct) + { + var wpf = false; + var winui = false; + var ns = false; + var winforms = false; + var android = false; + + var baseType = typeSymbol; + while (baseType is not null) + { + ct.ThrowIfCancellationRequested(); + + wpf = wpf || Matches(baseType, wellKnown.WpfDependencyObject); + winui = winui || Matches(baseType, wellKnown.WinUIDependencyObject); + ns = ns || Matches(baseType, wellKnown.NSObject); + winforms = winforms || Matches(baseType, wellKnown.WinFormsComponent); + android = android || Matches(baseType, wellKnown.AndroidView); + + baseType = baseType.BaseType; + } + + // Uno declares DependencyObject as an interface on its non-Windows heads, so its controls implement it. + winui = winui || ImplementsInterface(typeSymbol, wellKnown.WinUIDependencyObject); + + return new(wpf, winui, ns, winforms, android); + } + + /// Determines whether a type implements a (possibly null) interface. + /// The type to inspect. + /// The interface; null, or a type that is not an interface, is no match. + /// true if the candidate is an interface the type implements; otherwise, false. + private static bool ImplementsInterface(INamedTypeSymbol typeSymbol, INamedTypeSymbol? candidate) + { + if (candidate is not { TypeKind: TypeKind.Interface }) + { + return false; + } + + var allInterfaces = typeSymbol.AllInterfaces; + for (var i = 0; i < allInterfaces.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(allInterfaces[i], candidate)) + { + return true; + } + } + + return false; + } + + /// Determines whether equals the (possibly null) candidate symbol. + /// The symbol to compare. + /// The candidate symbol; null is treated as no match. + /// true if the candidate is non-null and equal; otherwise, false. + private static bool Matches(INamedTypeSymbol symbol, INamedTypeSymbol? candidate) => + candidate is not null && SymbolEqualityComparer.Default.Equals(symbol, candidate); + + /// Platform-specific base-type detection flags for a class. + /// Whether the type inherits a WPF DependencyObject. + /// Whether the type inherits a WinUI DependencyObject. + /// Whether the type inherits an Apple NSObject. + /// Whether the type inherits a WinForms Component. + /// Whether the type inherits an Android View. + private readonly record struct PlatformBaseTypeFlags( + bool InheritsWpfDependencyObject, + bool InheritsWinUIDependencyObject, + bool InheritsNSObject, + bool InheritsWinFormsComponent, + bool InheritsAndroidView); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/ViewRegistrationExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ViewRegistrationExtractor.cs new file mode 100644 index 00000000..e9f8be9f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/ViewRegistrationExtractor.cs @@ -0,0 +1,283 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts from class declarations implementing IViewFor<T>. +/// +/// Both runtime flavours are recognised: the lean package's ReactiveUI.Binding.IViewFor<T> and the +/// System.Reactive package's ReactiveUI.Binding.Reactive.IViewFor<T>. The view attributes are read from the +/// same flavour as the interface the view implements. +/// +internal static class ViewRegistrationExtractor +{ + /// The short name of the attribute that leaves a view out of registration. + private const string ExcludeAttributeName = "ExcludeFromViewRegistrationAttribute"; + + /// The short name of the attribute that caches one instance of a view. + private const string SingleInstanceAttributeName = "SingleInstanceViewAttribute"; + + /// The short name of the attribute that registers a view under a contract. + private const string ContractAttributeName = "ViewContractAttribute"; + + /// The RegistrationType values that keep one instance: LazySingleton and Constant. + private const int LazySingletonRegistration = 1; + + /// The RegistrationType value that creates the instance up front, which is resolved lazily here. + private const int ConstantRegistration = 2; + + /// Extracts a from a class that implements IViewFor<T>. + /// The generator syntax context. + /// Cancellation token. + /// A if the class implements IViewFor<T>; otherwise, . + internal static ViewRegistrationInfo? ExtractFromIViewForImplementation( + GeneratorSyntaxContext context, + CancellationToken ct) + { + var classDecl = (ClassDeclarationSyntax)context.Node; + var semanticModel = context.SemanticModel; + + if (semanticModel.GetDeclaredSymbol(classDecl, ct) is not INamedTypeSymbol typeSymbol + || typeSymbol.IsAbstract + || !CanBeNamed(typeSymbol, semanticModel.Compilation)) + { + return null; + } + + var compilation = semanticModel.Compilation; + var lean = compilation.GetTypeByMetadataName(Constants.IViewForGenericMetadataName); + var reactive = compilation.GetTypeByMetadataName(Constants.ReactiveIViewForGenericMetadataName); + if (lean is null && reactive is null) + { + return null; + } + + // Walk AllInterfaces to find IViewFor in either flavour. + var allInterfaces = typeSymbol.AllInterfaces; + for (var i = 0; i < allInterfaces.Length; i++) + { + ct.ThrowIfCancellationRequested(); + var iface = allInterfaces[i]; + if (iface is { IsGenericType: true, TypeArguments.Length: 1 } + && ViewNamespaceOf(iface.OriginalDefinition, lean, reactive) is { } prefix) + { + return Describe(typeSymbol, iface.TypeArguments[0], prefix, compilation, isSingleInstance: false, isDeclaredByAttribute: false); + } + } + + return null; + } + + /// Extracts a from a class marked with ReactiveUI.SourceGenerators' [IViewFor]. + /// The attribute syntax context. + /// Cancellation token. + /// The registration, or when the view model cannot be resolved or named. + /// + /// That generator adds IViewFor<T> to the class in output no other generator can see, so the view is found + /// from the attribute instead. The attribute is declared in each consumer's assembly, so it is matched by metadata + /// name alone. A RegistrationType of LazySingleton or Constant keeps one instance, created on first + /// resolution. + /// + internal static ViewRegistrationInfo? ExtractFromIViewForAttribute(GeneratorAttributeSyntaxContext context, CancellationToken ct) + { + if (context.TargetSymbol is not INamedTypeSymbol { IsAbstract: false } typeSymbol + || !CanBeNamed(typeSymbol, context.SemanticModel.Compilation)) + { + return null; + } + + var compilation = context.SemanticModel.Compilation; + var attribute = context.Attributes[0]; + return ReferencedViewNamespace(compilation) is { } prefix + && ResolveViewModel(attribute, context.SemanticModel, context.TargetNode.SpanStart, ct) is { } viewModel + && ExtractorValidation.IsReachableFromGeneratedCode(viewModel, compilation) + ? Describe(typeSymbol, viewModel, prefix, compilation, KeepsOneInstance(attribute), isDeclaredByAttribute: true) + : null; + } + + /// Resolves the view model an [IViewFor] names, by type argument or by the type name it was given. + /// The attribute. + /// The semantic model of the class declaration. + /// Where the class is declared, so the name binds with that file's usings and namespace. + /// Cancellation token. + /// The view model type, or when the name is empty or does not bind. + internal static ITypeSymbol? ResolveViewModel(AttributeData attribute, SemanticModel semanticModel, int position, CancellationToken ct) + { + if (attribute.AttributeClass is { IsGenericType: true, TypeArguments: [var typeArgument] }) + { + return typeArgument; + } + + if (attribute.ConstructorArguments is not [{ Value: string name }] || string.IsNullOrWhiteSpace(name)) + { + return null; + } + + var typeSyntax = SyntaxFactory.ParseTypeName(name); + var type = semanticModel.GetSpeculativeTypeInfo(position, typeSyntax, SpeculativeBindingOption.BindAsTypeOrNamespace).Type; + ct.ThrowIfCancellationRequested(); + return type is null or IErrorTypeSymbol ? null : type; + } + + /// Checks whether an [IViewFor]'s RegistrationType keeps one instance of the view. + /// The attribute. + /// for LazySingleton or Constant. + internal static bool KeepsOneInstance(AttributeData attribute) + { + var arguments = attribute.NamedArguments; + for (var i = 0; i < arguments.Length; i++) + { + // An enum argument arrives as its underlying value. + if (arguments[i].Key == "RegistrationType") + { + return arguments[i].Value.Value is LazySingletonRegistration or ConstantRegistration; + } + } + + return false; + } + + /// Names the flavour an IViewFor<T> definition belongs to. + /// The interface's open definition. + /// The lean runtime's IViewFor<T>, or null when it is not referenced. + /// The System.Reactive runtime's IViewFor<T>, or null when it is not referenced. + /// The flavour's view namespace with the trailing dot, or null when the interface is neither. + private static string? ViewNamespaceOf(INamedTypeSymbol definition, INamedTypeSymbol? lean, INamedTypeSymbol? reactive) + { + if (SymbolEqualityComparer.Default.Equals(definition, lean)) + { + return Constants.LeanViewNamespacePrefix; + } + + return SymbolEqualityComparer.Default.Equals(definition, reactive) ? Constants.ReactiveViewNamespacePrefix : null; + } + + /// Names the flavour of the runtime the compilation references. + /// The consumer compilation. + /// The flavour's view namespace with the trailing dot, or null when neither runtime is referenced. + private static string? ReferencedViewNamespace(Compilation compilation) + { + if (compilation.GetTypeByMetadataName(Constants.IViewForGenericMetadataName) is not null) + { + return Constants.LeanViewNamespacePrefix; + } + + return compilation.GetTypeByMetadataName(Constants.ReactiveIViewForGenericMetadataName) is not null + ? Constants.ReactiveViewNamespacePrefix + : null; + } + + /// Builds the registration for a view, reading the view attributes of the flavour it belongs to. + /// The view type. + /// The view model type. + /// The namespace of the flavour's view types, with the trailing dot. + /// The consumer compilation. + /// Whether the view keeps one instance regardless of [SingleInstanceView]. + /// Whether the view was found through [IViewFor]. + /// The registration, or when the view is marked [ExcludeFromViewRegistration]. + private static ViewRegistrationInfo? Describe( + INamedTypeSymbol view, + ITypeSymbol viewModel, + string prefix, + Compilation compilation, + bool isSingleInstance, + bool isDeclaredByAttribute) + { + if (FindAttribute(view, prefix + ExcludeAttributeName, compilation) is not null) + { + return null; + } + + var contract = FindAttribute(view, prefix + ContractAttributeName, compilation) is { ConstructorArguments: [{ Value: string name }] } + ? name + : null; + + return new( + viewModel.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + view.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), + HasAccessibleParameterlessConstructor(view), + contract, + isSingleInstance || FindAttribute(view, prefix + SingleInstanceAttributeName, compilation) is not null, + isDeclaredByAttribute); + } + + /// Checks whether a generated resolver can name the view type. + /// The type to check. + /// The consumer compilation. + /// when the type is reachable and closed; otherwise, . + /// + /// The resolver lives in a class of its own, so a private or protected nested view is out of its reach and is + /// left to the runtime locator. Its view model is at least as accessible, or the view could not implement + /// IViewFor<T> of it. + /// + private static bool CanBeNamed(INamedTypeSymbol type, Compilation compilation) => + !IsOpenGeneric(type) && ExtractorValidation.IsReachableFromGeneratedCode(type, compilation); + + /// Checks whether the type, or a type it is nested in, still has type parameters to close. + /// The type to check. + /// when the type cannot be named without type arguments; otherwise, . + /// + /// A generated resolver names the view and constructs it, neither of which an open generic type allows. + /// The closed subclasses that derive from it are declared classes of their own and carry the closed + /// IViewFor<T> through their interface list, so each is registered in its own right. + /// + private static bool IsOpenGeneric(INamedTypeSymbol type) + { + for (var current = type; current is not null; current = current.ContainingType) + { + if (!current.TypeParameters.IsEmpty) + { + return true; + } + } + + return false; + } + + /// Finds an attribute of the given type on the view. + /// The type to check. + /// The metadata name of the attribute. + /// The compilation for symbol resolution. + /// The attribute, or when it is absent. + /// The attribute types live beside the flavour's IViewFor<T>, so they resolve whenever the flavour does. + private static AttributeData? FindAttribute(INamedTypeSymbol type, string attributeMetadataName, Compilation compilation) + { + var attributeSymbol = compilation.GetTypeByMetadataName(attributeMetadataName); + var attributes = type.GetAttributes(); + for (var i = 0; i < attributes.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(attributes[i].AttributeClass, attributeSymbol)) + { + return attributes[i]; + } + } + + return null; + } + + /// Checks whether the type has an accessible parameterless constructor (public or internal). + /// The type to check. + /// if a parameterless constructor is accessible; otherwise, . + private static bool HasAccessibleParameterlessConstructor(INamedTypeSymbol type) + { + var constructors = type.InstanceConstructors; + for (var i = 0; i < constructors.Length; i++) + { + var ctor = constructors[i]; + if (ctor.Parameters.IsEmpty + && (ctor.DeclaredAccessibility == Accessibility.Public + || ctor.DeclaredAccessibility == Accessibility.Internal)) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/WhenAnyObservableExtractor.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/WhenAnyObservableExtractor.cs new file mode 100644 index 00000000..abe4dd7a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/WhenAnyObservableExtractor.cs @@ -0,0 +1,144 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Extracts WhenAnyObservableInvocationInfo from WhenAnyObservable invocations. +internal static class WhenAnyObservableExtractor +{ + /// + /// Pipeline B transform: extracts InvocationInfo from a WhenAnyObservable invocation. + /// For each Expression<Func<TSender, IObservable<T>?>> parameter, extracts the property path + /// and the inner type T by unwrapping IObservable<T> from the leaf property type. + /// + /// The generator syntax context. + /// Cancellation token. + /// A WhenAnyObservableInvocationInfo POCO, or null if the invocation is not analyzable. + /// If the cancellation token is triggered. + internal static WhenAnyObservableInvocationInfo? ExtractWhenAnyObservableInvocation( + CallSiteContext context, + CancellationToken ct) + { + var invocation = (InvocationExpressionSyntax)context.Node; + var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression; + + var semanticModel = context.SemanticModel; + var methodSymbol = ExtractorValidation.ExtractMethodSymbol(semanticModel.GetSymbolInfo(invocation, ct)); + if (methodSymbol is null) + { + return null; + } + + // Verify this is our stub or generated method + if (!ExtractorValidation.IsRecognizedExtensionClass(methodSymbol.ContainingType) + || !ObservationExtractor.TryResolveScope(context, methodSymbol, ct, out var scope, out var genericResult)) + { + return null; + } + + var (propertyPaths, expressionTexts, innerObservableTypes, hasSelector) = + CollectObservableArguments(methodSymbol, invocation.ArgumentList.Arguments, semanticModel, scope, ct); + + if (propertyPaths.Count == 0) + { + return null; + } + + // Get the source type from the receiver + var sourceTypeFullName = + scope.NameOf(semanticModel.GetTypeInfo(memberAccess.Expression, ct).Type); + if (sourceTypeFullName is null) + { + return null; + } + + // Compute return type + var namedReturnTypeFullName = hasSelector + ? ExtractorValidation.FindSelectorReturnType( + methodSymbol.Parameters, + "selector")! + : InvalidOperationExceptionHelper.EnsureNotNull( + innerObservableTypes[0], + "inner observable types"); + var returnTypeFullName = genericResult.IsGeneric ? GenericResult.TypeParameterName : namedReturnTypeFullName; + + var filePath = invocation.SyntaxTree.FilePath; + var lineNumber = SyntaxHelpers.CallerLineNumber(invocation, ct); + + return new( + filePath, + lineNumber, + sourceTypeFullName, + new([.. propertyPaths]), + new([.. innerObservableTypes]), + returnTypeFullName, + hasSelector, + new([.. expressionTexts]), + InterceptableLocationReader.Read(semanticModel, invocation, ct), + genericResult, + scope.Call); + } + + /// + /// Walks the invocation's parameters, collecting one property path, expression text and inner + /// observable type per Expression<Func<TSender, IObservable<T>>> argument. + /// + /// The resolved method. + /// The invocation arguments. + /// The semantic model. + /// Where the generated code that reads the paths is declared. + /// Cancellation token. + /// The observed paths, their expression texts, their inner types, and whether a selector was supplied. + private static ObservableArguments CollectObservableArguments( + IMethodSymbol methodSymbol, + SeparatedSyntaxList args, + SemanticModel semanticModel, + ReachScope scope, + CancellationToken ct) + { + var propertyPaths = new List>(args.Count); + var expressionTexts = new List(args.Count); + var innerObservableTypes = new List(args.Count); + var hasSelector = false; + + for (var i = 0; i < methodSymbol.Parameters.Length; i++) + { + var parameter = methodSymbol.Parameters[i]; + + if (parameter.Name == "selector") + { + hasSelector = true; + continue; + } + + if (parameter.Type is not INamedTypeSymbol { Name: "Expression" }) + { + continue; + } + + // One path generated code cannot read leaves the whole call to the runtime stub. Keeping the others + // would generate a method with fewer parameters than the call, which an interceptor cannot claim. + var path = SyntaxHelpers.ExtractPropertyPathFromLambda(args[i].Expression, semanticModel, scope, ct); + if (path is null) + { + propertyPaths.Clear(); + break; + } + + propertyPaths.Add(new(path)); + expressionTexts.Add( + args[i].Expression.ToString()); + + // The leaf property type is IObservable; the generated code needs T. + innerObservableTypes.Add( + SymbolHelpers.ExtractInnerObservableType(path[^1], semanticModel, args[i].Expression, ct)); + } + + return new(propertyPaths, expressionTexts, innerObservableTypes, hasSelector); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlMemberResolver.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlMemberResolver.cs new file mode 100644 index 00000000..c955f23d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlMemberResolver.cs @@ -0,0 +1,166 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Turns the named elements of XAML pages into field declarations of their code-behind classes. +/// +/// An element's XML namespace names its type's CLR namespace directly (clr-namespace: or using:), or is a +/// URI that assemblies map to CLR namespaces with XmlnsDefinition attributes. MAUI and Avalonia each declare their +/// own XmlnsDefinitionAttribute, so the attribute is matched by name. +/// +internal static class XamlMemberResolver +{ + /// The name of the attribute that maps an XML namespace URI to a CLR namespace. + private const string XmlnsDefinitionName = "XmlnsDefinitionAttribute"; + + /// The prefix of an XML namespace that names a CLR namespace, as WPF and MAUI write it. + private const string ClrNamespacePrefix = "clr-namespace:"; + + /// The prefix of an XML namespace that names a CLR namespace, as Avalonia writes it. + private const string UsingPrefix = "using:"; + + /// Declares the fields the named elements of each page become. + /// The pages. + /// The compilation. + /// Cancellation token. + /// A field per named element whose class and type resolve and that the class does not already declare. + internal static EquatableArray Resolve(XamlPage[] pages, Compilation compilation, CancellationToken ct) + { + if (pages.Length == 0) + { + return new([]); + } + + List builder = []; + Dictionary>? namespaces = null; + foreach (var page in pages) + { + ct.ThrowIfCancellationRequested(); + if (compilation.GetTypeByMetadataName(page.ClassName) is not { } owner + || PartialTypeRaisePlugin.DescribeDeclaration(owner) is not { } declaration) + { + continue; + } + + foreach (var element in page.Elements) + { + // A field the class declares already, as the XAML compilers that run before the compiler write them, + // is seen as it is; declaring it again would make it ambiguous. + if (!owner.GetMembers(element.Name).IsEmpty + || FindType(element, compilation, ref namespaces) is not { } type) + { + continue; + } + + builder.Add(new( + declaration, + null, + $"{element.Accessibility} {type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)} {element.Name};")); + } + } + + return new([.. builder]); + } + + /// Determines whether an attribute maps an XML namespace URI to a CLR namespace. + /// The attribute's class, which is null when it could not be read. + /// for any class named XmlnsDefinitionAttribute. + internal static bool IsXmlnsDefinition(INamedTypeSymbol? attributeClass) => + attributeClass is { Name: XmlnsDefinitionName }; + + /// Finds the type an element names. + /// The element. + /// The compilation. + /// The CLR namespaces each XML namespace URI maps to, read on first use. + /// The type, or null when it does not resolve. + private static INamedTypeSymbol? FindType(XamlNamedElement element, Compilation compilation, ref Dictionary>? namespaces) + { + if (ClrNamespace(element.XmlNamespace) is { } clrNamespace) + { + return compilation.GetTypeByMetadataName($"{clrNamespace}.{element.TypeName}"); + } + + namespaces ??= ReadXmlnsDefinitions(compilation); + if (!namespaces.TryGetValue(element.XmlNamespace, out var candidates)) + { + return null; + } + + foreach (var candidate in candidates) + { + if (compilation.GetTypeByMetadataName($"{candidate}.{element.TypeName}") is { } type) + { + return type; + } + } + + return null; + } + + /// Reads the CLR namespace an XML namespace names directly. + /// The XML namespace. + /// The CLR namespace, or null when the XML namespace is a URI. + private static string? ClrNamespace(string xmlNamespace) + { + int prefix; + if (xmlNamespace.StartsWith(ClrNamespacePrefix, StringComparison.Ordinal)) + { + prefix = ClrNamespacePrefix.Length; + } + else if (xmlNamespace.StartsWith(UsingPrefix, StringComparison.Ordinal)) + { + prefix = UsingPrefix.Length; + } + else + { + return null; + } + + var end = xmlNamespace.IndexOf(';', prefix); + return end < 0 ? xmlNamespace[prefix..] : xmlNamespace[prefix..end]; + } + + /// Reads every XmlnsDefinition the compilation and its references declare. + /// The compilation. + /// The CLR namespaces each XML namespace URI maps to, in the order they are declared. + private static Dictionary> ReadXmlnsDefinitions(Compilation compilation) + { + var map = new Dictionary>(StringComparer.Ordinal); + AddDefinitions(compilation.Assembly, map); + foreach (var reference in compilation.SourceModule.ReferencedAssemblySymbols) + { + AddDefinitions(reference, map); + } + + return map; + } + + /// Adds the XmlnsDefinition attributes one assembly declares. + /// The assembly. + /// The map to add to. + private static void AddDefinitions(IAssemblySymbol assembly, Dictionary> map) + { + foreach (var attribute in assembly.GetAttributes()) + { + if (!IsXmlnsDefinition(attribute.AttributeClass) + || attribute.ConstructorArguments is not [{ Value: string uri }, { Value: string clrNamespace }, ..]) + { + continue; + } + + if (!map.TryGetValue(uri, out var list)) + { + list = []; + map.Add(uri, list); + } + + list.Add(clrNamespace); + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlPageReader.cs b/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlPageReader.cs new file mode 100644 index 00000000..b84a9cd6 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Helpers/XamlPageReader.cs @@ -0,0 +1,217 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Xml; +using System.Xml.Linq; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Helpers; + +/// Reads the named elements of a XAML page that a XAML source generator turns into fields. +/// +/// +/// MAUI and Avalonia declare a field for each named element with a source generator, so no other generator sees the +/// field. Both pass their XAML files to every generator as additional files, marked with item metadata. This reads the +/// files they mark, the way their generators do: the class from x:Class, a field per x:Name (and per +/// Name in Avalonia), and its accessibility from x:FieldModifier or the platform's default. +/// +/// +/// WPF and WinUI declare their fields in files their build writes before the compiler runs, which every generator sees +/// already, so their XAML is not read. +/// +/// +internal static class XamlPageReader +{ + /// The XAML language namespace, which declares x:Class, x:Name and x:FieldModifier. + private const string XamlLanguageNamespace = "http://schemas.microsoft.com/winfx/2006/xaml"; + + /// The 2009 spelling of the XAML language namespace, which declares the same attributes. + private const string XamlLanguageNamespace2009 = "http://schemas.microsoft.com/winfx/2009/xaml"; + + /// The item metadata MAUI marks its XAML files with. + private const string MauiKindKey = "build_metadata.AdditionalFiles.GenKind"; + + /// The item metadata Avalonia marks its XAML files with. + private const string AvaloniaItemGroupKey = "build_metadata.AdditionalFiles.SourceItemGroup"; + + /// The build property that turns Avalonia's name generator off. + private const string AvaloniaEnabledKey = "build_property.AvaloniaNameGeneratorIsEnabled"; + + /// The build property that sets the accessibility of Avalonia's generated fields. + private const string AvaloniaModifierKey = "build_property.AvaloniaNameGeneratorDefaultFieldModifier"; + + /// The accessibility MAUI gives a field with no x:FieldModifier. + private const string MauiDefaultAccessibility = "private"; + + /// The accessibility Avalonia gives a field when the build does not set one. + private const string AvaloniaDefaultAccessibility = "internal"; + + /// The accessibility each x:FieldModifier spelling names; spellings are matched in any case. + /// A generator cannot count on the frozen collections, which older compilers do not load. + private static readonly (string Spelling, string Accessibility)[] Modifiers = + [ + ("Public", "public"), + ("Internal", AvaloniaDefaultAccessibility), + ("NotPublic", AvaloniaDefaultAccessibility), + ("Assembly", AvaloniaDefaultAccessibility), + ("Protected", "protected"), + ("Family", "protected"), + ("ProtectedInternal", "protected internal"), + ("Protected Internal", "protected internal"), + ("FamOrAssem", "protected internal"), + ("PrivateProtected", "private protected"), + ("Private Protected", "private protected"), + ("FamAndAssem", "private protected"), + ("Private", MauiDefaultAccessibility), + ]; + + /// Reads a XAML page, when a XAML source generator reads it too. + /// The additional file. + /// The file's item metadata. + /// The build's properties. + /// Cancellation token. + /// The page, or null when no XAML source generator reads the file or it declares no class. + internal static XamlPage? Read(AdditionalText file, AnalyzerConfigOptions options, AnalyzerConfigOptions globalOptions, CancellationToken ct) + { + var avalonia = IsAvaloniaPage(options, globalOptions); + if (!avalonia && !IsMauiPage(options)) + { + return null; + } + + var text = file.GetText(ct)?.ToString(); + return text is null ? null : Parse(text, avalonia, avalonia ? AvaloniaAccessibility(globalOptions) : MauiDefaultAccessibility); + } + + /// Reads the class and the named elements of a XAML document. + /// The document. + /// Whether a plain Name attribute names an element, as it does in Avalonia. + /// The accessibility of a field with no x:FieldModifier. + /// The page, or null when the document is not well formed or declares no class. + internal static XamlPage? Parse(string text, bool readsName, string defaultAccessibility) + { + XElement root; + try + { + root = XDocument.Parse(text).Root!; + } + catch (XmlException) + { + // A page being edited is often not well formed. It gains its fields again once it is. + return null; + } + + if (LanguageAttribute(root, "Class")?.Value is not { Length: > 0 } className) + { + return null; + } + + var elements = new List(); + foreach (var child in root.Elements()) + { + Collect(child, readsName, defaultAccessibility, elements); + } + + return new(className, new([.. elements])); + } + + /// Maps an x:FieldModifier value to accessibility keywords. + /// The value, in any case. + /// The accessibility when the value names none. + /// The accessibility keywords. + internal static string Accessibility(string? modifier, string defaultAccessibility) + { + var spelling = modifier?.Trim(); + foreach (var (candidate, accessibility) in Modifiers) + { + if (string.Equals(candidate, spelling, StringComparison.OrdinalIgnoreCase)) + { + return accessibility; + } + } + + return defaultAccessibility; + } + + /// Collects the named elements of an element and its children, skipping templates. + /// The element. + /// Whether a plain Name attribute names an element. + /// The accessibility of a field with no x:FieldModifier. + /// The list to add to. + /// + /// A template's elements are created each time the template is applied, so they get no field. A property element, + /// such as Grid.ColumnDefinitions, is not a type: its children are still collected. + /// + private static void Collect(XElement element, bool readsName, string defaultAccessibility, List elements) + { + var localName = element.Name.LocalName; + if (localName.EndsWith("Template", StringComparison.Ordinal)) + { + return; + } + + if (localName.IndexOf('.') < 0 && NameOf(element, readsName) is { } name) + { + elements.Add(new( + name, + Accessibility(LanguageAttribute(element, "FieldModifier")?.Value, defaultAccessibility), + element.Name.NamespaceName, + localName)); + } + + foreach (var child in element.Elements()) + { + Collect(child, readsName, defaultAccessibility, elements); + } + } + + /// Reads the name an element is given. + /// The element. + /// Whether a plain Name attribute names an element. + /// The name, or null when the element has none or its type is generic. + private static string? NameOf(XElement element, bool readsName) + { + if (LanguageAttribute(element, "TypeArguments") is not null) + { + return null; + } + + var name = LanguageAttribute(element, "Name")?.Value + ?? (readsName ? element.Attribute("Name")?.Value : null); + return string.IsNullOrWhiteSpace(name) ? null : name; + } + + /// Reads an attribute of the XAML language namespace, under either of its spellings. + /// The element. + /// The attribute's name without its prefix. + /// The attribute, or null when the element has none. + private static XAttribute? LanguageAttribute(XElement element, string localName) => + element.Attribute(XName.Get(localName, XamlLanguageNamespace)) + ?? element.Attribute(XName.Get(localName, XamlLanguageNamespace2009)); + + /// Determines whether MAUI's generator reads a file. + /// The file's item metadata. + /// for a file MAUI marks as XAML. + private static bool IsMauiPage(AnalyzerConfigOptions options) => + options.TryGetValue(MauiKindKey, out var kind) && string.Equals(kind, "Xaml", StringComparison.OrdinalIgnoreCase); + + /// Determines whether Avalonia's name generator reads a file. + /// The file's item metadata. + /// The build's properties. + /// for a file Avalonia marks as XAML, while its name generator is on. + private static bool IsAvaloniaPage(AnalyzerConfigOptions options, AnalyzerConfigOptions globalOptions) => + options.TryGetValue(AvaloniaItemGroupKey, out var group) + && string.Equals(group, "AvaloniaXaml", StringComparison.OrdinalIgnoreCase) + && !(globalOptions.TryGetValue(AvaloniaEnabledKey, out var enabled) && string.Equals(enabled, "false", StringComparison.OrdinalIgnoreCase)); + + /// Reads the accessibility Avalonia gives a field with no x:FieldModifier. + /// The build's properties. + /// The accessibility keywords. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string AvaloniaAccessibility(AnalyzerConfigOptions globalOptions) => + Accessibility(globalOptions.TryGetValue(AvaloniaModifierKey, out var modifier) ? modifier : null, AvaloniaDefaultAccessibility); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindCommandInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindCommandInvocationGenerator.cs new file mode 100644 index 00000000..58c5b548 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindCommandInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects BindCommand invocations and generates per-invocation command binding code. +internal static class BindCommandInvocationGenerator +{ + /// Registers the BindCommand invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindCommandDispatch.g.cs", + static (invocations, classes, features) => BindCommandCodeGenerator.Generate(invocations, classes, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInteractionInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInteractionInvocationGenerator.cs new file mode 100644 index 00000000..e7b32626 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInteractionInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects BindInteraction invocations and generates per-invocation binding code. +internal static class BindInteractionInvocationGenerator +{ + /// Registers the BindInteraction invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindInteractionDispatch.g.cs", + static (invocations, classes, features) => BindInteractionCodeGenerator.Generate(invocations, classes, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInvocationGenerator.cs new file mode 100644 index 00000000..f82fc4ef --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindInvocationGenerator.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects Bind (view-first two-way binding) invocations and generates per-invocation binding code. +internal static class BindInvocationGenerator +{ + /// Registers the Bind invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindDispatch.g.cs", + static (invocations, classes, features) => BindingEmitterHelpers.Generate( + invocations, + classes, + features, + BindCodeGenerator.DispatchApi, + static (sb, c) => BindCodeGenerator.GenerateBindMethod( + sb, + c.Invocation, + c.SourceClassInfo, + c.TargetClassInfo, + c.Suffix))); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindOneWayInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindOneWayInvocationGenerator.cs new file mode 100644 index 00000000..6e3a12b3 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindOneWayInvocationGenerator.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects BindOneWay invocations and generates per-invocation binding code. +internal static class BindOneWayInvocationGenerator +{ + /// Registers the BindOneWay invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindOneWayDispatch.g.cs", + static (invocations, classes, features) => BindingEmitterHelpers.Generate( + invocations, + classes, + features, + BindOneWayCodeGenerator.DispatchApi, + static (sb, c) => BindOneWayCodeGenerator.GenerateBindOneWayMethod( + sb, + c.Invocation, + c.SourceClassInfo, + c.Suffix))); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindToInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindToInvocationGenerator.cs new file mode 100644 index 00000000..2075ec14 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindToInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects BindTo invocations and generates per-invocation binding code. +internal static class BindToInvocationGenerator +{ + /// Registers the BindTo invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindToDispatch.g.cs", + static (invocations, features) => BindToCodeGenerator.Generate(invocations, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindTwoWayInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindTwoWayInvocationGenerator.cs new file mode 100644 index 00000000..0f028231 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/BindTwoWayInvocationGenerator.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects BindTwoWay invocations and generates per-invocation bidirectional binding code. +internal static class BindTwoWayInvocationGenerator +{ + /// Registers the BindTwoWay invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "BindTwoWayDispatch.g.cs", + static (invocations, classes, features) => BindingEmitterHelpers.Generate( + invocations, + classes, + features, + BindTwoWayCodeGenerator.DispatchApi, + static (sb, c) => BindTwoWayCodeGenerator.GenerateBindTwoWayMethod( + sb, + c.Invocation, + c.SourceClassInfo, + c.TargetClassInfo, + c.Suffix))); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvocationPipeline.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvocationPipeline.cs new file mode 100644 index 00000000..ffd11e03 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvocationPipeline.cs @@ -0,0 +1,87 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Wires one API's detected invocations to the emitter that writes its dispatch file. +/// +/// Every API collects its invocations, pairs them with the consumer's language features, +/// and writes one file when the emitter produces anything. Only +/// the emitter and the file name differ, so they are the arguments and the pipeline is written once. +/// +internal static class InvocationPipeline +{ + /// Registers an emitter that reads observation metadata from its property paths. + /// The per-call-site model this API extracts. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + /// The name of the file the emitter's output is added as. + /// Produces the file's text, or null when this API claimed no call site. + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures, + string hintName, + Func emit) + where TInvocation : IClaimableCallSite + { + var combined = invocations.Collect().Combine(languageFeatures); + + context.RegisterSourceOutput( + combined, + (ctx, data) => + { + var source = HostedCallSiteEmitter.Compose( + RoslynArray.Unwrap(data.Left), + data.Right, + (calls, features) => emit(calls, [], features)); + if (source is null) + { + return; + } + + CodeGeneratorHelpers.AddGeneratedSource(ctx, hintName, source, data.Right); + }); + } + + /// Registers a pipeline whose emitter reads only the call sites. + /// The per-call-site model this API extracts. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + /// The name of the file the emitter's output is added as. + /// Produces the file's text, or null when this API claimed no call site. + /// + /// An API that writes to a target it was handed, rather than to a property of an observed type, needs no + /// notification mechanism and so never asks what the compilation declares. + /// + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures, + string hintName, + Func emit) + where TInvocation : IClaimableCallSite + { + var combined = invocations.Collect().Combine(languageFeatures); + + context.RegisterSourceOutput( + combined, + (ctx, data) => + { + var source = HostedCallSiteEmitter.Compose(RoslynArray.Unwrap(data.Left), data.Right, emit); + if (source is null) + { + return; + } + + CodeGeneratorHelpers.AddGeneratedSource(ctx, hintName, source, data.Right); + }); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvokeCommandInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvokeCommandInvocationGenerator.cs new file mode 100644 index 00000000..c478a895 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/InvokeCommandInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects InvokeCommand invocations and generates per-invocation command execution code. +internal static class InvokeCommandInvocationGenerator +{ + /// Registers the InvokeCommand invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "InvokeCommandDispatch.g.cs", + static (invocations, classes, features) => InvokeCommandCodeGenerator.Generate(invocations, classes, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/OneWayBindInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/OneWayBindInvocationGenerator.cs new file mode 100644 index 00000000..f828fb04 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/OneWayBindInvocationGenerator.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects OneWayBind (view-first one-way binding) invocations and generates per-invocation binding code. +internal static class OneWayBindInvocationGenerator +{ + /// Registers the OneWayBind invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "OneWayBindDispatch.g.cs", + static (invocations, classes, features) => BindingEmitterHelpers.Generate( + invocations, + classes, + features, + OneWayBindCodeGenerator.DispatchApi, + static (sb, c) => OneWayBindCodeGenerator.GenerateOneWayBindMethod( + sb, + c.Invocation, + c.SourceClassInfo, + c.TargetClassInfo, + c.Suffix))); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/ToPropertyInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/ToPropertyInvocationGenerator.cs new file mode 100644 index 00000000..23405079 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/ToPropertyInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects ToProperty invocations and generates per-invocation helper factories. +internal static class ToPropertyInvocationGenerator +{ + /// Registers the ToProperty invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "ToPropertyDispatch.g.cs", + static (invocations, features) => ToPropertyCodeGenerator.Generate(invocations, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyInvocationGenerator.cs new file mode 100644 index 00000000..bd4cac54 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyInvocationGenerator.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// +/// Detects WhenAny invocations (with IObservedChange selector) and generates per-invocation observation code. +/// Unlike WhenChanged/WhenAnyValue, WhenAny wraps each observed value in an ObservedChange before +/// passing it to the user's selector function. +/// +internal static class WhenAnyInvocationGenerator +{ + /// Registers the WhenAny invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "WhenAnyDispatch.g.cs", + static (invocations, classes, features) => WhenAnyCodeGenerator.Generate(invocations, classes, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyObservableInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyObservableInvocationGenerator.cs new file mode 100644 index 00000000..ecfaf179 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyObservableInvocationGenerator.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// +/// Detects WhenAnyObservable invocations and generates per-invocation observation code. +/// Generates Switch, Merge, and CombineLatest patterns for observing properties that are +/// themselves observables. +/// +internal static class WhenAnyObservableInvocationGenerator +{ + /// Registers the WhenAnyObservable invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "WhenAnyObservableDispatch.g.cs", + static (invocations, classes, features) => WhenAnyObservableCodeGenerator.Generate(invocations, classes, features)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyValueInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyValueInvocationGenerator.cs new file mode 100644 index 00000000..7a4af75c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenAnyValueInvocationGenerator.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// +/// Detects WhenAnyValue/WhenAny invocations and generates concrete typed overloads. +/// Delegates to with the "WhenAnyValue" method prefix. +/// +internal static class WhenAnyValueInvocationGenerator +{ + /// Registers the WhenAnyValue/WhenAny invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "WhenAnyValueDispatch.g.cs", + static (invocations, classes, features) => ObservationCodeGenerator.Generate(invocations, classes, features, "WhenAnyValue")); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangedInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangedInvocationGenerator.cs new file mode 100644 index 00000000..9c3646cf --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangedInvocationGenerator.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// Detects WhenChanged invocations (after-change) and generates per-invocation observation code. +internal static class WhenChangedInvocationGenerator +{ + /// Registers the WhenChanged invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "WhenChangedDispatch.g.cs", + static (invocations, classes, features) => ObservationCodeGenerator.Generate(invocations, classes, features, "WhenChanged")); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangingInvocationGenerator.cs b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangingInvocationGenerator.cs new file mode 100644 index 00000000..d9617eaf --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Invocations/WhenChangingInvocationGenerator.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Invocations; + +/// +/// Detects WhenChanging invocations (before-change) and generates per-invocation observation code. +/// Skips generation for types whose notification mechanism doesn't support before-change. +/// +internal static class WhenChangingInvocationGenerator +{ + /// Registers the WhenChanging invocation detection pipeline. + /// The generator initialization context. + /// The detected invocations of this API. + /// The consumer compilation's C# language-feature snapshot. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Register( + in IncrementalGeneratorInitializationContext context, + IncrementalValuesProvider invocations, + IncrementalValueProvider languageFeatures) => + InvocationPipeline.Register( + context, + invocations, + languageFeatures, + "WhenChangingDispatch.g.cs", + static (invocations, classes, features) => ObservationCodeGenerator.Generate(invocations, classes, features, "WhenChanging")); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandInvocationInfo.cs new file mode 100644 index 00000000..39e491be --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandInvocationInfo.cs @@ -0,0 +1,83 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Per-call-site value-equatable POCO for BindCommand invocations. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// All event and command property information is resolved at extraction time. +/// +/// The source file path of the call site. +/// The line number of the call site. +/// The fully qualified name of the view type. +/// The fully qualified name of the view model type. +/// The property path chain to the command property. +/// The property path chain to the control. +/// The fully qualified name of the command type. +/// The fully qualified name of the control type. +/// Whether the invocation includes an IObservable parameter. +/// Whether the invocation includes an Expression parameter for the command parameter. +/// The fully qualified type of the command parameter, or null. +/// Whether the command parameter type is a reference type (affects nullable annotations in generated code). +/// The property path for the expression parameter variant, or null. +/// The event name resolved at compile time (from toEvent literal or default event detection). +/// The EventArgs type resolved at compile time, or null. +/// The name of the invoked method (BindCommand). +/// The normalized expression text of the command property lambda. +/// The normalized expression text of the control property lambda. +/// The normalized expression text of the parameter property lambda, or null. +/// Whether the control type has a settable Command property (ICommand). +/// Whether the control type has a settable CommandParameter property. +/// Whether the control type has a settable Enabled property (bool). +/// +/// Where this call site is, for a build that claims call sites outright rather than competing for them. +/// +/// The invoker class a write to the view carries, or null for none. +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record BindCommandInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string ViewTypeFullName, + string ViewModelTypeFullName, + EquatableArray CommandPropertyPath, + EquatableArray ControlPropertyPath, + string CommandTypeFullName, + string ControlTypeFullName, + bool HasObservableParameter, + bool HasExpressionParameter, + string? ParameterTypeFullName, + bool ParameterIsReferenceType, + EquatableArray? ParameterPropertyPath, + string? ResolvedEventName, + string? ResolvedEventArgsTypeFullName, + string MethodName, + string CommandExpressionText, + string ControlExpressionText, + string? ParameterExpressionText, + bool HasCommandProperty, + bool HasCommandParameterProperty, + bool HasEnabledProperty, + InterceptorLocation Interceptor = default, + string? ViewThreadInvoker = null, + HostedCall? Host = null) : IClaimableCallSite +{ + /// Gets a value indicating whether the caller explicitly selected an event. + public bool HasExplicitEvent { get; init; } + + /// Gets the native command route verified during extraction. + public NativeCommandInfo? NativeCommand { get; init; } + + /// Gets the invoker class a write to the control carries, or null for none. + public string? ControlViewThreadInvoker { get; init; } + + /// + /// Gets the invoker the per-control worker routes commands through: the control's, when the view has none. A + /// view that is not thread-affine can still hold a control that is, and the command is written to the control. + /// + public string? ControlOnlyViewThreadInvoker => ViewThreadInvoker is null ? ControlViewThreadInvoker : null; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandSides.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandSides.cs new file mode 100644 index 00000000..cd3c3964 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindCommandSides.cs @@ -0,0 +1,17 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The two types a BindCommand call site joins. +/// The fully qualified view type. +/// The fully qualified view model type. +/// The invoker class a write to the view carries, or null for none. +[DebuggerDisplay("BindCommandSides: {ViewTypeFullName,nq} <- {ViewModelTypeFullName,nq}")] +internal readonly record struct BindCommandSides( + string ViewTypeFullName, + string ViewModelTypeFullName, + string? ViewThreadInvoker = null); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindInteractionInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindInteractionInvocationInfo.cs new file mode 100644 index 00000000..7328ba43 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindInteractionInvocationInfo.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Per-call-site value-equatable POCO for BindInteraction invocations. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The source file path of the call site. +/// The line number of the call site. +/// The fully qualified name of the view type. +/// The fully qualified name of the view model type. +/// The property path chain to the interaction property. +/// The fully qualified name of the interaction input type. +/// The fully qualified name of the interaction output type. +/// True if the handler is task-based; false if observable-based. +/// The TDontCare type for observable handlers, or null for task handlers. +/// The name of the invoked method (BindInteraction). +/// The normalized expression text of the property path lambda. +/// +/// How the view type notifies, or when the call site was built without a symbol to read +/// it from. This API takes no lambda rooted on the view, so nothing else in the call site carries the view's +/// mechanism and the declaration scan only sees types the consumer writes. Captured here so a view declared in +/// a referenced assembly is still followed through the view model it holds rather than reduced to the instance +/// the call was handed. +/// +/// +/// Where this call site is, for a build that claims call sites outright rather than competing for them. +/// +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record BindInteractionInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string ViewTypeFullName, + string ViewModelTypeFullName, + EquatableArray InteractionPropertyPath, + string InputTypeFullName, + string OutputTypeFullName, + bool IsTaskHandler, + string? DontCareTypeFullName, + string MethodName, + string ExpressionText, + ClassBindingInfo? ViewClassInfo = null, + InterceptorLocation Interceptor = default, + HostedCall? Host = null) : IClaimableCallSite; diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindToInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindToInvocationInfo.cs new file mode 100644 index 00000000..37c48e04 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindToInvocationInfo.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The per-call-site model of a BindTo invocation. +/// The source file path of the call site, captured via [CallerFilePath]. +/// The line number of the call site, captured via [CallerLineNumber]. +/// The fully qualified type produced by the source observable (the T in IObservable<T>). +/// The fully qualified name of the target object type. +/// The property path chain from the target lambda expression. +/// The fully qualified type of the target property (leaf of the target path). +/// Whether the target property type is a reference type, which annotates the selector parameter nullable. +/// Whether the invocation supplies a conversionHint argument. +/// Whether the invocation supplies an explicit IBindingTypeConverter argument. +/// The original expression text of the target lambda argument. +/// The call site's location, for a build that intercepts call sites. +/// The invoker class a write to the target carries, or null for none. +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record BindToInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceValueTypeFullName, + string TargetTypeFullName, + EquatableArray TargetPropertyPath, + string TargetPropertyTypeFullName, + bool TargetPropertyIsReferenceType, + bool HasConversionHint, + bool HasConverterOverride, + string TargetExpressionText, + InterceptorLocation Interceptor = default, + string? TargetViewThreadInvoker = null, + HostedCall? Host = null) : IClaimableCallSite +{ + /// Gets the typed mechanism converting stream values to the target. + public ConversionInfo? Conversion { get; init; } + + /// Gets the native mutation of an existing target collection. + public SetMethodInfo? SetMethod { get; init; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindingInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindingInvocationInfo.cs new file mode 100644 index 00000000..c07e1b32 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindingInvocationInfo.cs @@ -0,0 +1,65 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Per-call-site value-equatable POCO for BindOneWay/BindTwoWay invocations. +/// Contains source and target property path information. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The source file path of the call site, captured via [CallerFilePath]. +/// The line number of the call site, captured via [CallerLineNumber]. +/// The fully qualified name of the source (data) type. +/// The property path chain from the source lambda expression. +/// The fully qualified name of the target (UI) type. +/// The property path chain from the target lambda expression. +/// The fully qualified type of the source property (leaf of the source path). +/// The fully qualified type of the target property (leaf of the target path). +/// Whether the invocation includes an inline Func-based conversion parameter. +/// Whether the invocation includes an explicit scheduler parameter. +/// Whether this is a two-way binding (BindTwoWay/Bind) rather than one-way. +/// The name of the invoked method (e.g., BindOneWay, BindTwoWay, OneWayBind, Bind). +/// The original expression text of the source lambda argument. +/// The original expression text of the target lambda argument. +/// Whether the invocation uses an explicit IBindingTypeConverter parameter. +/// +/// Where this call site is, for a build that claims call sites outright rather than competing for them. +/// +/// The invoker class a write to the source carries, or null for none. +/// The invoker class a write to the target carries, or null for none. +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record BindingInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceTypeFullName, + EquatableArray SourcePropertyPath, + string TargetTypeFullName, + EquatableArray TargetPropertyPath, + string SourcePropertyTypeFullName, + string TargetPropertyTypeFullName, + bool HasConversion, + bool HasScheduler, + bool IsTwoWay, + string MethodName, + string SourceExpressionText, + string TargetExpressionText, + bool HasConverterOverride, + InterceptorLocation Interceptor = default, + string? SourceViewThreadInvoker = null, + string? TargetViewThreadInvoker = null, + HostedCall? Host = null) : IClaimableCallSite +{ + /// Gets the typed mechanism converting source values to the target. + public ConversionInfo? ForwardConversion { get; init; } + + /// Gets the typed mechanism converting target values to the source. + public ConversionInfo? ReverseConversion { get; init; } + + /// Gets the native mutation used by a one-way collection binding. + public SetMethodInfo? SetMethod { get; init; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/BindingSides.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/BindingSides.cs new file mode 100644 index 00000000..4cd3d94f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/BindingSides.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The two types a binding call site joins. +/// The fully qualified source type. +/// The fully qualified target type. +/// The invoker class a write to the source carries, or null for none. +/// The invoker class a write to the target carries, or null for none. +[DebuggerDisplay("BindingSides: {SourceTypeFullName,nq} -> {TargetTypeFullName,nq}")] +internal readonly record struct BindingSides( + string SourceTypeFullName, + string TargetTypeFullName, + string? SourceViewThreadInvoker = null, + string? TargetViewThreadInvoker = null); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ClassBindingInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ClassBindingInfo.cs new file mode 100644 index 00000000..157cdb71 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ClassBindingInfo.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Shared type-level value-equatable POCO for the incremental generator pipeline. +/// Contains flags for notification mechanism detection across all supported platforms. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The fully qualified name of the class (global:: prefixed). +/// The metadata name of the class (without namespace or global:: prefix). +/// Whether the class implements IReactiveObject. +/// Whether the class implements INotifyPropertyChanged. +/// Whether the class implements INotifyPropertyChanging. +/// Whether the class inherits from WPF DependencyObject. +/// Whether the class inherits from WinUI DependencyObject. +/// Whether the class inherits from Apple NSObject (KVO support). +/// Whether the class inherits from WinForms Component. +/// Whether the class inherits from Android View. +/// The observable properties declared on the class. +internal sealed record ClassBindingInfo( + string FullyQualifiedName, + string MetadataName, + bool ImplementsIReactiveObject, + bool ImplementsINPC, + bool ImplementsINPChanging, + bool InheritsWpfDependencyObject, + bool InheritsWinUIDependencyObject, + bool InheritsNSObject, + bool InheritsWinFormsComponent, + bool InheritsAndroidView, + EquatableArray Properties); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionInfo.cs new file mode 100644 index 00000000..9b545e4e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionInfo.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A symbol-validated conversion whose input is named __value. +/// The typed expression producing the converted value. +/// The condition under which the conversion succeeds. +/// The score a registered converter must exceed. +internal sealed record ConversionInfo(string Expression, string Condition, int Affinity) +{ + /// Gets typed local declarations required by a parsing operation. + public string Preparation { get; init; } = string.Empty; + + /// Gets the assignable value used when a registered converter declines the conversion. + public string? AssignmentFallback { get; init; } + + /// Gets a value indicating whether the native path can return the source observable directly. + public bool IsIdentity { get; init; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionParameters.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionParameters.cs new file mode 100644 index 00000000..3e135252 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ConversionParameters.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The caller-supplied conversion inputs used by a generated stage. +/// The expression carrying the conversion hint. +/// The expression carrying an explicit converter. +internal readonly record struct ConversionParameters(string Hint, string Override); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/GenericResult.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/GenericResult.cs new file mode 100644 index 00000000..e1e54c73 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/GenericResult.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Where a call's selector result sits when generated code takes it as a type parameter instead of naming it. +/// How many type arguments the called method takes, or zero when every type is named. +/// The position of the selector's result among those type arguments. +/// +/// A selector can return an anonymous type, a private nested type, or a type built from one. Generated code cannot +/// write any of those. It only passes the result along, so the observation method is generic over it, and so is the +/// interceptor that claims the call. An interceptor's type parameters have to line up with the called method's, which +/// is why the arity and the position travel with the call site. +/// +internal readonly record struct GenericResult(int Arity, int Ordinal) +{ + /// The name generated code gives the result's type parameter. + internal const string TypeParameterName = "__TResult"; + + /// Gets a value indicating whether generated code takes the result as a type parameter. + internal bool IsGeneric => Arity > 0; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/HostedCall.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/HostedCall.cs new file mode 100644 index 00000000..07095733 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/HostedCall.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A call site whose generated code moves out of a class of its own, and the signature of the method it calls. +/// +/// The fully qualified name of the caller's class the generated code moves into, or null when it stays in the generated +/// class and only becomes generic. +/// +/// The partial declarations that reach the caller's class, outermost first, or null. +/// The interceptor's type parameters, one for each of the called method's, in order. +/// The interceptor's constraint clauses, each starting with where. +/// The called method's return type, written with the interceptor's type parameters. Every binding API returns a value. +/// The return type this call closes it to. +/// The called method's parameters, the receiver first. +/// +/// +/// A private or protected nested type or member can only be named inside the class that declares it. When that class +/// is partial, the generator adds the call's generated code to it. A call built from the caller's type parameters gets +/// its code wrapped in a class generic over them. Either way the interceptor still has to sit in the generated +/// namespace, so it is generic: it repeats the called method's signature with its own type parameters, and forwards to +/// an entry point beside the moved code, which casts to the closed types the call was made with. +/// +/// +/// Strings only, so the model compares by value and carries no symbol. +/// +/// +internal sealed record HostedCall( + string? HostTypeFullName, + PartialTypeDeclaration? Declaration, + EquatableArray TypeParameters, + EquatableArray Constraints, + string DeclaredReturnType, + string ClosedReturnType, + EquatableArray Parameters) +{ + /// Gets the caller's type parameters the moved code is generic over, by their own names. + internal EquatableArray WrapperTypeParameters { get; init; } = new([]); + + /// Gets the constraint clauses of the caller's type parameters, as the caller declares them. + internal EquatableArray WrapperConstraints { get; init; } = new([]); + + /// Gets the interceptor type parameter that hands on each of the caller's, in the same order. + internal EquatableArray WrapperTypeArguments { get; init; } = new([]); + + /// Gets a value indicating whether the return type has to be cast from the closed type to the declared one. + internal bool ReturnNeedsCast => DeclaredReturnType != ClosedReturnType; + + /// Gets a value indicating whether the moved code is generic over the caller's type parameters. + internal bool IsGeneric => !WrapperTypeParameters.IsEmpty; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/HostedParameter.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/HostedParameter.cs new file mode 100644 index 00000000..1e757a06 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/HostedParameter.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// One parameter of a method a hosted call site calls. +/// The parameter's name. +/// The parameter's type, written with the method's type parameters. +/// The type the call closes it to, which may name a private nested type. +internal readonly record struct HostedParameter(string Name, string DeclaredType, string ClosedType) +{ + /// Gets a value indicating whether the argument has to be cast from the declared type to the closed one. + internal bool NeedsCast => DeclaredType != ClosedType; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/IClaimableCallSite.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/IClaimableCallSite.cs new file mode 100644 index 00000000..4f14c66c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/IClaimableCallSite.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// What every API's per-call-site model tells the pipeline about how the call is claimed. +internal interface IClaimableCallSite +{ + /// Gets where the call site is, for a build that claims call sites with interceptors. + InterceptorLocation Interceptor { get; } + + /// Gets the class the call's generated code is declared in, when only that class can name its types. + HostedCall? Host { get; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/InterceptorLocation.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/InterceptorLocation.cs new file mode 100644 index 00000000..0dcc3006 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/InterceptorLocation.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Where a call site sits, in the form the compiler accepts on an interceptor. +/// The encoding the compiler asked for, which travels with the data it produced. +/// The opaque call-site description the compiler produced, empty when it described none. +/// +/// Two strings and an integer rather than the compiler's own type: a pipeline model has to compare by value +/// and carry no symbol or syntax, and this is the whole of what an interceptor needs to name its call site. +/// +internal readonly record struct InterceptorLocation(int Version, string? Data) +{ + /// Gets a value indicating whether the compiler described this call site. + /// + /// A call site is undescribable when it is not an invocation the compiler can intercept - one written + /// through a type parameter, for instance - and when the host compiler predates interception entirely. + /// + internal bool IsAvailable => !string.IsNullOrEmpty(Data); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/InvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/InvocationInfo.cs new file mode 100644 index 00000000..22fc6bcb --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/InvocationInfo.cs @@ -0,0 +1,46 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Per-call-site value-equatable POCO for the incremental generator pipeline. +/// Represents a single WhenChanged/WhenChanging/WhenAnyValue invocation detected in user code. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The source file path of the call site, captured via [CallerFilePath]. +/// The line number of the call site, captured via [CallerLineNumber]. +/// The fully qualified name of the source (observed) type. +/// The property path chains extracted from each lambda expression argument. +/// The fully qualified return type of the observation. +/// Whether this is a before-change observation (WhenChanging) rather than after-change (WhenChanged). +/// Whether the invocation includes a selector/projection function. +/// The name of the invoked method (e.g., WhenChanged, WhenChanging, WhenAnyValue). +/// The original expression text of each lambda argument, used for CallerArgumentExpression dispatch. +/// +/// Where this call site is, for a build that claims call sites outright rather than competing for them. +/// Reports that it describes nothing on a compiler that cannot describe one, and for a call the compiler +/// refuses to let anything intercept. +/// +/// +/// Where the selector's result sits when generated code cannot name it, so the observation and its interceptor are +/// generic over it. Not generic when every type is named. +/// +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record InvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceTypeFullName, + EquatableArray> PropertyPaths, + string ReturnTypeFullName, + bool IsBeforeChange, + bool HasSelector, + string MethodName, + EquatableArray ExpressionTexts, + InterceptorLocation Interceptor = default, + GenericResult GenericResult = default, + HostedCall? Host = null) : IClaimableCallSite; diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/InvokeCommandInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/InvokeCommandInvocationInfo.cs new file mode 100644 index 00000000..6e7f5391 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/InvokeCommandInvocationInfo.cs @@ -0,0 +1,27 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The per-call-site model of an InvokeCommand invocation. +/// The source file path of the call site, captured via [CallerFilePath]. +/// The line number of the call site, captured via [CallerLineNumber]. +/// The fully qualified type produced by the source observable (the T in IObservable<T>). +/// The fully qualified name of the type declaring the command property. +/// The property path chain reaching the command. +/// The original expression text of the command lambda argument. +/// The call site's location, for a build that intercepts call sites. +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record InvokeCommandInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceValueTypeFullName, + string TargetTypeFullName, + EquatableArray CommandPropertyPath, + string CommandExpressionText, + InterceptorLocation Interceptor = default, + HostedCall? Host = null) : IClaimableCallSite; diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/LanguageFeatures.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/LanguageFeatures.cs new file mode 100644 index 00000000..8e21ad74 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/LanguageFeatures.cs @@ -0,0 +1,113 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Value-equatable snapshot of the consumer compilation's relevant C# language capabilities and generation +/// options, flowed through the incremental pipeline so generated output can adapt to the target language +/// version and consumer configuration. +/// +/// +/// Whether the target supports CallerArgumentExpression dispatch (C# 10+ and the attribute is available). +/// +/// +/// Whether the target supports nullable reference types (C# 8+), in which case generated files emit an explicit +/// #nullable enable directive. Emitting that directive on C# 7.3 would be a compile error, so it is omitted. +/// +/// +/// Whether generated files emit the // <auto-generated/> comment and #pragma warning disable +/// header. This is the shipping default (); consumers set the MSBuild property +/// ReactiveUIBindingEmitGeneratedCodeMarkers to false to surface analyzer diagnostics in the +/// generated code (e.g. when diagnosing the generator itself). +/// +/// +/// The namespace the generated class is emitted into, always one of this assembly's own. Under interception it is +/// ReactiveUI.Binding.Generated.Interceptors.<assembly>, below the namespace the consumer opts into +/// interception. From C# 10 without interception it is ReactiveUI.Binding.Generated.<assembly>, +/// reached by a generated global using, which is scoped to the compilation that declares it, so two +/// assemblies which both run the generator do not see each other's overloads - identical ones visible across an +/// InternalsVisibleTo boundary would make every matching call site ambiguous (CS0121). Below C# 10 there is +/// no way to scope an import, so the overloads sit in the runtime's namespace, or in the root namespace of an +/// assembly that grants InternalsVisibleTo. +/// +/// +/// Whether to emit the global using that brings into scope: from C# 10, +/// when call sites reach the overloads through lookup rather than interception. +/// +/// +/// Whether the referenced runtime stub carries optional expression parameters. The generated overload must take +/// the same parameters whether or not it dispatches on them, because the tie-break that lets a concrete +/// overload beat the generic stub only applies once the parameter lists match: a shorter one leaves both +/// candidates merely applicable, and every call site is then ambiguous (CS0121). This is independent of +/// , which turns on the attributes and the expression-text dispatch, and +/// which additionally needs C# 10 - a consumer can perfectly well target a runtime that has the attribute +/// while compiling at an older language version. +/// +/// +/// Whether the consumer references the System.Reactive flavour of the runtime library rather than the lean one. +/// The two share no type names, so generated code written against one does not compile against the other. +/// +/// +/// The names the referenced runtime library's own namespace declares, types and nested namespaces alike. These +/// anchor the retargeting of generated code onto the other flavour, so that it shifts the library's names and +/// leaves alone a consumer type that merely happens to sit under the same root. Empty for a lean consumer, +/// where nothing is retargeted. +/// +/// +/// The names the System.Reactive flavour of ReactiveUI.Primitives declares. Generated code names the lean +/// Primitives types, and only the ones that flavour actually offers are shifted onto it - the parts that ship in +/// the shared core, the disposables among them, keep their names in both. Empty for a lean consumer. +/// +/// +/// Whether generated code claims each call site outright instead of competing for it. This needs both halves: +/// a compiler that can describe a call site, which is settled by the analyzer slot the package resolved to, and +/// a consumer that has opted the generated namespace into interception. Where it holds, none of the placement +/// this record otherwise describes applies - lookup never sees an interceptor, so there is no namespace to +/// reach, no import to emit, and no expression text to match at run time. +/// +/// +/// Whether the consumer can mark a method as a module initializer (C# 9+). The generated view dispatch registers +/// itself that way, so it is in place before any code in the assembly runs. An older consumer has no such hook +/// and the dispatch registers when its generated class is first used. +/// +/// +/// Whether the compilation has to declare ModuleInitializerAttribute itself, because no accessible one +/// is in reach. Frameworks from .NET 5 ship it; older ones do not. +/// +/// +/// Whether generated overloads can carry OverloadResolutionPriorityAttribute: the consumer compiles as C# 13 +/// or later and can reach the attribute, which frameworks from .NET 9 ship. +/// +/// +/// The name of the generated class. It carries the assembly's name wherever is +/// not the assembly's own, so no two assemblies ever declare a type by the same fully qualified name. +/// +internal readonly record struct LanguageFeatures( + bool SupportsCallerArgExpr, + bool SupportsNullable, + bool EmitGeneratedCodeMarkers, + string GeneratedNamespace = Constants.SharedGeneratedNamespace, + bool EmitGeneratedNamespaceImport = false, + bool StubHasExpressionParameters = false, + bool UsesReactiveRuntime = false, + EquatableArray RuntimeNamespaceMembers = default, + EquatableArray PrimitivesNamespaceMembers = default, + bool SupportsInterceptors = false, + bool SupportsModuleInitializer = false, + bool DeclaresModuleInitializerAttribute = false, + bool SupportsOverloadResolutionPriority = false, + string GeneratedClassName = Constants.GeneratedExtensionClassName) +{ + /// Gets a value indicating whether call sites a dispatch cannot tell apart collapse to one. + /// + /// Binding the same pair of properties from more than one place is ordinary, and expression-text dispatch + /// keys on the selectors as written: the first matching branch wins, so the later ones are unreachable and + /// only drag a binding method along. An interceptor instead names the call site it replaces, so dropping one + /// leaves it carrying no attribute - on the runtime engine while the call site beside it is generated. The + /// rule lives here because each API would otherwise decide it separately, and the one that forgot would + /// silently lose a binding rather than fail to compile. + /// + internal bool CollapsesIndistinguishableCallSites => SupportsCallerArgExpr && !SupportsInterceptors; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/NamespacePath.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/NamespacePath.cs new file mode 100644 index 00000000..4655b30b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/NamespacePath.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A namespace still to be walked, and the dotted prefix it was reached by. +/// The namespace to walk. +/// The dotted prefix naming it. +[DebuggerDisplay("NamespacePath: {Prefix,nq}")] +internal readonly record struct NamespacePath(INamespaceSymbol Namespace, string Prefix); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandInfo.cs new file mode 100644 index 00000000..0b15a09b --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandInfo.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Stores the native members inspected for a command binding. +/// The native route. +/// The concrete event, when the route uses one. +/// The event argument type. +/// Whether the native owner exposes a writable Enabled property. +/// Whether the target/action route exposes a writable Action property. +internal sealed record NativeCommandInfo(NativeCommandKind Kind, string? EventName, string? EventArgsType, bool HasEnabled, bool HasAction); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandKind.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandKind.cs new file mode 100644 index 00000000..9e47c3a2 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/NativeCommandKind.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Identifies a verified native command route. +internal enum NativeCommandKind +{ + /// Android View.Click with enabled-state synchronization. + AndroidClick = 0, + + /// UIKit UIControl target/action touch handling. + UIKitTouch = 1, + + /// A UIKit control-specific event. + UIKitEvent = 2, + + /// Cocoa Target and Action properties. + AppKitTargetAction = 3, +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/NotificationEventInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/NotificationEventInfo.cs new file mode 100644 index 00000000..1881c99d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/NotificationEventInfo.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Stores a validated event and its concrete delegate type. +/// The event member name. +/// The fully qualified event delegate type. +internal sealed record NotificationEventInfo(string Name, string HandlerType); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableArguments.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableArguments.cs new file mode 100644 index 00000000..4fb6137d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableArguments.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The observable arguments one WhenAnyObservable call site passes, and whether it projects them. +/// The path each observable argument was reached by. +/// Each argument as the caller wrote it. +/// The element type each observable carries. +/// Whether the call site supplied a projection. +[DebuggerDisplay("ObservableArguments: {PropertyPaths.Count} paths, selector={HasSelector}")] +internal sealed record ObservableArguments( + List> PropertyPaths, + List ExpressionTexts, + List InnerObservableTypes, + bool HasSelector); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableAsPropertyInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableAsPropertyInfo.cs new file mode 100644 index 00000000..29a475f8 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservableAsPropertyInfo.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A partial property marked [ObservableAsProperty], whose body the generator writes. +/// The partial declarations that reach the property's type, outermost first. +/// The generated file name for the property's type. +/// The property's modifiers as declared, which the implementing part repeats. +/// The property type, fully qualified with its nullable annotation. +/// The property name. +/// The helper field's modifiers: its accessibility, then readonly when asked for. +/// +/// The expression the property returns until its helper is assigned, or null for the type's default. +/// +/// +/// Whether the initial value is held in a backing field, evaluated once, rather than written into the getter. +/// +/// +/// The extern alias and using directives of the file declaring the property, which an initial value +/// expression is written against. Empty when the property stores no initial value. +/// +internal sealed record ObservableAsPropertyInfo( + PartialTypeDeclaration Declaration, + string HintName, + string Modifiers, + string TypeFullName, + string PropertyName, + string HelperModifiers, + string? InitialValue, + bool StoresInitialValue, + EquatableArray Usings); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ObservablePropertyInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservablePropertyInfo.cs new file mode 100644 index 00000000..dbda591f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservablePropertyInfo.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Property-level value-equatable POCO for the incremental generator pipeline. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The name of the property. +/// The fully qualified type of the property. +/// Whether the property has a public getter. +/// Whether the property is an indexer. +/// Whether the property is a dependency property (WPF/WinUI). +/// +/// Whether the declaring type also declares a {PropertyName}Changed event, which is the convention the +/// component mechanism observes a property through. +/// +/// +/// Whether the type this record was collected for declares the property itself, rather than inheriting it from +/// a base in the same assembly. Key-value observing turns on this question - the Obj-C runtime backs what its +/// own frameworks declare, not what an application adds to a subclass - so an inherited property has to stay +/// distinguishable from a declared one even though both are now recorded. +/// +/// Eligible platform plugins and their verified notification members. +/// Whether eligibility was checked against compiler symbols. +internal sealed record ObservablePropertyInfo( + string PropertyName, + string PropertyTypeFullName, + bool HasPublicGetter, + bool IsIndexer, + bool IsDependencyProperty, + bool HasChangeEvent, + bool IsDeclaredByType = true, + EquatableArray PlatformObservations = default, + bool SymbolsInspected = false); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ObservationExpression.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservationExpression.cs new file mode 100644 index 00000000..443e51ea --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ObservationExpression.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Describes one typed property observation expression. +/// The variable carrying the property owner. +/// The property and its selected mechanism data. +/// The concrete owner type used by the getter. +/// Whether to read before the property changes. +/// Whether equal consecutive values are suppressed. +internal readonly record struct ObservationExpression( + string Source, + PropertyPathSegment Segment, + string SourceType, + bool BeforeChange, + bool Distinct); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ParameterLambda.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ParameterLambda.cs new file mode 100644 index 00000000..c2063580 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ParameterLambda.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The property a command's parameter lambda selects, and how it was written. +/// The path the lambda walks. +/// The fully qualified type of the selected value. +/// The lambda as the caller wrote it. +[DebuggerDisplay("ParameterLambda: {ExpressionText,nq}")] +internal readonly record struct ParameterLambda(PropertyPathSegment[] PropertyPath, string TypeFullName, string ExpressionText); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PartialTypeDeclaration.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PartialTypeDeclaration.cs new file mode 100644 index 00000000..704d1d02 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PartialTypeDeclaration.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The partial declaration a raise accessor is emitted into, from the outermost type to the owning type. +/// The namespace the outermost type sits in, or null for the global namespace. +/// One partial class Name<T> header per type, outermost first. +internal sealed record PartialTypeDeclaration(string? Namespace, EquatableArray TypeHeaders); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PlatformObservationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PlatformObservationInfo.cs new file mode 100644 index 00000000..9de92c3f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PlatformObservationInfo.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Stores the native notification members verified in the consumer compilation. +/// The plugin that owns extraction and emission. +/// The score of the native notification mechanism. +/// The concrete event delegates to subscribe. +/// The fully qualified Apple notification constant. +/// The WinUI or Uno dependency-object type. +/// The exported Objective-C getter selector. +internal sealed record PlatformObservationInfo( + string Kind, + int Affinity, + EquatableArray Events, + string? NotificationName, + string? DependencyObjectType, + string? KvoKeyPath); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyPathSegment.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyPathSegment.cs new file mode 100644 index 00000000..9d397a6e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyPathSegment.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Represents a single segment in a property path chain (e.g., one step in x.Address.City). +/// Value-equatable POCO for the incremental generator pipeline. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The name of the property for this path segment. +/// The fully qualified type of the property. +/// The concrete type exposing the property, including inherited declarations. +/// +/// Whether the property's type is a reference type. Used to decide whether the generated +/// Expression<Func<…, T>> selector parameter may be annotated nullable (T?) so it +/// accepts selectors of nullable reference-typed properties; value-type leaves stay non-nullable. +/// +/// +/// How the concrete owner notifies, or when the segment was built without a symbol to +/// read it from. Each link of a chain notifies on its own terms, so the mechanism travels with the segment +/// rather than being inferred from the type the chain started at. +/// +/// Carried here rather than looked up later because extraction already holds the property symbol. Resolving it +/// afterwards means a second pass over the same call sites, and re-binding one of these invocations is the +/// single largest allocation in a generation pass - extension-method overload resolution and generic type +/// inference dominate it. +/// +/// +/// +/// The type the read is cast to, or when the property already has the type the chain +/// carries. A view is free to expose its view model as a base or an interface, and the stage below is typed as +/// the view model itself, so the read has to narrow to it. Observables are covariant, which converts the other +/// way, so nothing downstream can do this for us. +/// +/// +/// Whether the link is a field, such as a control named in XAML. A field raises no notification, so the link is +/// read once and never resolves an observation mechanism. +/// +internal sealed record PropertyPathSegment( + string PropertyName, + string PropertyTypeFullName, + string DeclaringTypeFullName, + bool IsReferenceType, + ClassBindingInfo? DeclaringTypeInfo, + string? ReadCastTypeFullName = null, + bool IsField = false); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseArgumentKind.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseArgumentKind.cs new file mode 100644 index 00000000..6bdd0cea --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseArgumentKind.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// What a raise call passes to name the property. +internal enum PropertyRaiseArgumentKind +{ + /// The property name as a string. + PropertyName = 0, + + /// A cached event-args instance for the property, so no event-args object is allocated per change. + EventArgs = 1, +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCall.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCall.cs new file mode 100644 index 00000000..f7a7d96f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCall.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// One way to raise one change notification. +/// The shape of the call. +/// The method or event name called; a constant, so the model holds no built string. +/// What the call passes to name the property. +/// The fully qualified class declaring a static method, or null for an instance member. +internal readonly record struct PropertyRaiseCall( + PropertyRaiseCallKind Kind, + string Member, + PropertyRaiseArgumentKind Argument, + string? Owner = null); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCallKind.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCallKind.cs new file mode 100644 index 00000000..6c62e58a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseCallKind.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// How generated code raises one change notification on a type. +internal enum PropertyRaiseCallKind +{ + /// A static method taking the object first, such as ReactiveUI's RaisePropertyChanged extension. + StaticMethod = 0, + + /// An instance method on the object. + InstanceMethod = 1, + + /// A field-like event the type declares, invoked from inside the type. + EventInvoke = 2, +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseInfo.cs new file mode 100644 index 00000000..160fc3d6 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/PropertyRaiseInfo.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// How generated code raises a type's change notifications for a property it backs. +/// The plugin that chose this mechanism. +/// Raises the after-change notification. +/// Raises the before-change notification, or null when the type offers none. +/// +/// The partial declaration the raise calls are emitted into, when they can only run inside the type; null when +/// generated code can make them directly. +/// +internal sealed record PropertyRaiseInfo( + string Mechanism, + PropertyRaiseCall Changed, + PropertyRaiseCall? Changing, + PartialTypeDeclaration? Accessor); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodEmission.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodEmission.cs new file mode 100644 index 00000000..945e1f38 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodEmission.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The typed values needed to emit a native collection write. +/// The target variable. +/// The target collection path. +/// The source value type. +/// The selected native mechanism. +/// The expression used for binding error reporting. +/// Whether the public binding exposes applied collections. +internal readonly record struct SetMethodEmission( + string Root, + EquatableArray Path, + string SourceType, + SetMethodInfo Mechanism, + string Expression, + bool ReportChanges); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodInfo.cs new file mode 100644 index 00000000..a9528706 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/SetMethodInfo.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Describes a typed collection mutation selected from the consumer's native symbols. +/// The generated mechanism's score. +/// The collection property exposing its layout owner. +internal sealed record SetMethodInfo(int Affinity, string LayoutOwner) +{ + /// Gets whether the source already supplies the native API's array shape. + public bool SourceIsArray { get; init; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/SourceGeneratorsMember.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/SourceGeneratorsMember.cs new file mode 100644 index 00000000..2a9cc004 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/SourceGeneratorsMember.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A member ReactiveUI.SourceGenerators adds to a consumer type, described so call sites can bind to it. +/// The partial declarations that reach the type the member is added to. +/// The fully qualified interface the type gains, or null when the member is a property. +/// The property's declaration, or null when the type only gains an interface. +/// +/// The property is declared with the name, type and accessibility ReactiveUI.SourceGenerators gives it. Its accessors +/// have bodies that never run: the declaration only exists for call sites to bind against. +/// +internal sealed record SourceGeneratorsMember(PartialTypeDeclaration Declaration, string? Interface, string? Property); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInitialValueKind.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInitialValueKind.cs new file mode 100644 index 00000000..ff2b66fb --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInitialValueKind.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// How a ToProperty call site supplies the property's initial value. +internal enum ToPropertyInitialValueKind +{ + /// No initial value; the property starts at the default value. + None = 0, + + /// An initialValue argument. + Value = 1, + + /// A getInitialValue factory argument. + Factory = 2, +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInvocationInfo.cs new file mode 100644 index 00000000..200afc8c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyInvocationInfo.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// The per-call-site model of a ToProperty invocation. +/// The source file path of the call site. +/// The line number of the call site. +/// The fully qualified type that declares the property (the stub's TObj). +/// The fully qualified property value type (the stub's TRet), without nullable annotations. +/// The same type with its nullable annotations, as the call site inferred it. +/// The name of the property the helper backs. +/// The property argument as written, which expression-text dispatch compares. +/// The stub overload the call site resolved to. +/// How generated code raises the source type's change notifications. +/// The call site's location, for a build that intercepts call sites. +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +/// +/// The type the owner is constrained to, when the owner is built from the calling code's type parameters. The +/// generated worker and interceptor are then generic over the owner and the value, and the source and value type names +/// are those type parameters. Null for a call whose types generated code names. +/// +internal sealed record ToPropertyInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceTypeFullName, + string ValueTypeFullName, + string ValueTypeDisplay, + string PropertyName, + string PropertyExpressionText, + ToPropertyOverloadShape Shape, + PropertyRaiseInfo Raise, + InterceptorLocation Interceptor = default, + HostedCall? Host = null, + string? OpenOwnerConstraint = null) : IClaimableCallSite; diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyOverloadShape.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyOverloadShape.cs new file mode 100644 index 00000000..eb47b1d5 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ToPropertyOverloadShape.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Which of the stub's ToProperty overloads a call site resolved to. +/// Whether the property is named by a string rather than a selector expression. +/// Whether the overload also returns the helper through an out parameter. +/// How the overload supplies the initial value. +/// Whether the overload takes deferSubscription. +/// Whether the overload takes scheduler. +/// +/// The optional parameters always appear in this order, so these flags reproduce the stub's parameter list +/// exactly, which the generated overload and interceptor have to match. +/// +internal readonly record struct ToPropertyOverloadShape( + bool NamesPropertyByString, + bool HasResult, + ToPropertyInitialValueKind InitialValue, + bool HasDeferSubscription, + bool HasScheduler); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationInfo.cs new file mode 100644 index 00000000..ef6a8ebe --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationInfo.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Value-equatable POCO representing a view-to-view-model mapping detected at compile time. +/// Produced by scanning IViewFor<T> implementations and Map<TVM,TView>() call sites. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The fully qualified name of the view model type (global:: prefixed). +/// The fully qualified name of the view type (global:: prefixed). +/// Whether the view type has a parameterless constructor for direct instantiation. +/// The contract string from [ViewContract], or for default registration. +/// Whether the view is marked with [SingleInstanceView] for cached singleton resolution. +/// +/// Whether the view was found through ReactiveUI.SourceGenerators' [IViewFor] rather than an IViewFor<T> +/// in its source. That generator adds the interface, which no other generator can see, so the resolver checks for it +/// at run time. +/// +internal sealed record ViewRegistrationInfo( + string ViewModelFullyQualifiedName, + string ViewFullyQualifiedName, + bool HasParameterlessConstructor, + string? Contract, + bool IsSingleInstance, + bool IsDeclaredByAttribute = false); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationKey.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationKey.cs new file mode 100644 index 00000000..aee09eba --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/ViewRegistrationKey.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// Identifies one view registration: the view model it serves, under which contract. +/// The fully qualified view model type. +/// The contract the view is registered under, or null for the default. +[DebuggerDisplay("ViewRegistrationKey: {ViewModelTypeFullName,nq} ({Contract,nq})")] +internal readonly record struct ViewRegistrationKey(string ViewModelTypeFullName, string? Contract); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/WhenAnyObservableInvocationInfo.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/WhenAnyObservableInvocationInfo.cs new file mode 100644 index 00000000..a13702c4 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/WhenAnyObservableInvocationInfo.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// +/// Per-call-site value-equatable POCO for WhenAnyObservable invocations. +/// Represents a single WhenAnyObservable invocation detected in user code. +/// Contains no ISymbol, SyntaxNode, or Location references. +/// +/// The source file path of the call site, captured via [CallerFilePath]. +/// The line number of the call site, captured via [CallerLineNumber]. +/// The fully qualified name of the source (observed) type. +/// The property path chains extracted from each lambda expression argument. +/// The inner type T from IObservable<T> for each property path. +/// The fully qualified return type of the observation. +/// Whether the invocation includes a selector/projection function (CombineLatest variant). +/// The original expression text of each lambda argument, used for CallerArgumentExpression dispatch. +/// +/// Where this call site is, for a build that claims call sites outright rather than competing for them. +/// +/// +/// Where the selector's result sits when generated code cannot name it, so the observation and its interceptor are +/// generic over it. Not generic when every type is named. +/// +/// +/// The class the call's generated code is declared in, when only that class can name the call's types. Null when +/// generated code can name them from its own class. +/// +internal sealed record WhenAnyObservableInvocationInfo( + string CallerFilePath, + int CallerLineNumber, + string SourceTypeFullName, + EquatableArray> PropertyPaths, + EquatableArray InnerObservableTypeFullNames, + string ReturnTypeFullName, + bool HasSelector, + EquatableArray ExpressionTexts, + InterceptorLocation Interceptor = default, + GenericResult GenericResult = default, + HostedCall? Host = null) : IClaimableCallSite; diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/XamlNamedElement.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/XamlNamedElement.cs new file mode 100644 index 00000000..f9a2ad82 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/XamlNamedElement.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A XAML element with a name, which a XAML source generator turns into a field of the page's class. +/// The field's name. +/// The field's accessibility keywords. +/// The XML namespace the element's type is declared in. +/// The element's type name, without its namespace. +internal sealed record XamlNamedElement(string Name, string Accessibility, string XmlNamespace, string TypeName); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Models/XamlPage.cs b/src/ReactiveUI.Binding.SourceGenerators/Models/XamlPage.cs new file mode 100644 index 00000000..4f20b4ae --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Models/XamlPage.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Models; + +/// A XAML page whose named elements a XAML source generator turns into fields of its code-behind class. +/// The code-behind class, from x:Class. +/// The named elements, in document order. +internal sealed record XamlPage(string ClassName, EquatableArray Elements); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AndroidCommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AndroidCommandBindingPlugin.cs new file mode 100644 index 00000000..cb454cb9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AndroidCommandBindingPlugin.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Binds Android clicks and enabled state through concrete native members. +internal sealed class AndroidCommandBindingPlugin : IPlatformCommandBindingPlugin +{ + /// The Android View command score. + private const int ClickAffinity = 9; + + /// + public int Affinity => ClickAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public NativeCommandInfo? InspectControl(INamedTypeSymbol control) => + PlatformSymbols.DerivesFrom(control, "Android.Views.View") + ? NativeCommandSymbols.Event(control, NativeCommandKind.AndroidClick, "Click") + : null; + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => !inv.HasExplicitEvent && inv.NativeCommand?.Kind == NativeCommandKind.AndroidClick; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + NativeCommandEmitter.EmitEvent(sb, inv, controlAccess, supportsNullable); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandBindingPlugin.cs new file mode 100644 index 00000000..862b80c5 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandBindingPlugin.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Binds Cocoa controls through their concrete Target, Action and optional Enabled properties. +internal sealed class AppKitCommandBindingPlugin : IPlatformCommandBindingPlugin +{ + /// The native Cocoa target/action score. + private const int TargetActionAffinity = 4; + + /// + public int Affinity => TargetActionAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public NativeCommandInfo? InspectControl(INamedTypeSymbol control) => !AppKitCommandSymbols.CanBind(control) + ? null + : new( + NativeCommandKind.AppKitTargetAction, + null, + null, + NativeCommandSymbols.HasWritableProperty(control, "Enabled", "bool"), + NativeCommandSymbols.HasWritableProperty(control, nameof(Action), "ObjCRuntime.Selector")); + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => !inv.HasExplicitEvent && inv.NativeCommand?.Kind == NativeCommandKind.AppKitTargetAction; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + AppKitCommandEmitter.EmitBinding(sb, inv, controlAccess); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandEmitter.cs new file mode 100644 index 00000000..1e57d65e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandEmitter.cs @@ -0,0 +1,86 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Emits Cocoa target/action routing with concrete setters and a native selector bridge. +internal static class AppKitCommandEmitter +{ + /// Installs and removes the native target while commands and parameters change. + /// The output builder. + /// The verified native binding. + /// The concrete target expression. + internal static void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess) + { + if (CommandParameterEmitter.HasParameter(inv)) + { + CommandParameterEmitter.EmitCapture(sb, inv); + } + + var native = inv.NativeCommand!; + var parameter = CommandParameterEmitter.Read(inv); + _ = CommandBindingSyntax.OpenCommandSubscription(sb); + if (native.HasEnabled) + { + _ = sb.Append(controlAccess).Line(".Enabled = false;"); + } + + _ = CommandBindingSyntax.CloseCommandMissing(sb) + .Append("var __target = new ").Append(GeneratedTypeNames.AppKitCommandTarget).Append("(cmd, () => ").Append(parameter).Line(");"); + if (native.HasAction) + { + _ = sb.Append(controlAccess).Line(".Action = new global::ObjCRuntime.Selector(\"theAction:\");"); + } + + _ = sb.Append(controlAccess).Line(".Target = __target;"); + AppendEnabled(sb, native, controlAccess, parameter); + AppendDetach(sb, native, controlAccess); + NativeCommandEmitter.AppendReturn(sb, inv); + } + + /// Synchronizes the native enabled property and menu-validation result. + /// The output builder. + /// The verified native capabilities. + /// The concrete control expression. + /// The current command argument expression. + private static void AppendEnabled(SourceWriter sb, NativeCommandInfo native, string control, string parameter) + { + if (!native.HasEnabled) + { + return; + } + + _ = sb.Line($"{GeneratedTypeNames.EventHandler} __enabled = (__sender, __args) =>") + .OpenBlock() + .Append("__target.IsEnabled = cmd.CanExecute(").Append(parameter).Line(");") + .Append(control).Line(".Enabled = __target.IsEnabled;") + .CloseBlock(";") + .Line($"__enabled(null, {GeneratedTypeNames.EventArgs}.Empty);") + .Line("cmd.CanExecuteChanged += __enabled;"); + } + + /// Clears native target/action references and releases the bridge. + /// The writer, inside the command subscription's callback. + /// The verified native capabilities. + /// The concrete control expression. + private static void AppendDetach(SourceWriter sb, NativeCommandInfo native, string control) + { + _ = CommandBindingSyntax.OpenSerialDetach(sb) + .Append(control).Line(".Target = null;"); + if (native.HasAction) + { + _ = sb.Append(control).Line(".Action = null;"); + } + + if (native.HasEnabled) + { + _ = sb.Line("cmd.CanExecuteChanged -= __enabled;"); + } + + _ = CommandBindingSyntax.CloseCommandSubscription(sb.Line("__target.Dispose();").CloseBlock(");")); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandSymbols.cs new file mode 100644 index 00000000..0c01227d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/AppKitCommandSymbols.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Identifies Cocoa's supported target/action hosts. +internal static class AppKitCommandSymbols +{ + /// Checks the native target property on a supported Cocoa control. + /// The concrete control. + /// True when its target can be assigned directly. + internal static bool CanBind(INamedTypeSymbol control) => + IsTargetHost(control) && NativeCommandMembers.HasWritableProperty(control, "Target", "Foundation.NSObject"); + + /// Recognizes the native target/action hierarchies. + /// The concrete control. + /// True for a supported Cocoa hierarchy. + internal static bool IsTargetHost(INamedTypeSymbol control) => + NativeCommandMembers.DerivesFrom(control, "AppKit.NSControl") + || NativeCommandMembers.DerivesFrom(control, "AppKit.NSCell") + || NativeCommandMembers.DerivesFrom(control, "AppKit.NSMenu") + || NativeCommandMembers.DerivesFrom(control, "AppKit.NSMenuItem") + || NativeCommandMembers.DerivesFrom(control, "AppKit.NSToolbarItem"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandBindingSyntax.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandBindingSyntax.cs new file mode 100644 index 00000000..e2ee808a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandBindingSyntax.cs @@ -0,0 +1,118 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// +/// The shapes of a generated command binding, named once so every plugin that drives a command from a +/// control writes the same lines. +/// +/// +/// The bindings differ in what supplies the command parameter and how the control runs the command; the +/// subscription around them is the same in each. Each member writes at the writer's level. +/// +internal static class CommandBindingSyntax +{ + /// Subscribes the generated handler to the control's event. + internal const string HandlerSubscribe = " += __Handler;"; + + /// Unsubscribes the generated handler from the control's event. + internal const string HandlerUnsubscribe = " -= __Handler;"; + + /// The disposable holding whatever the current command subscribed to. + private const string SerialDeclaration = $"new {GeneratedTypeNames.SwapDisposable}()"; + + /// + /// Opens the subscription that rebinds whenever the command property changes, up to the test that a command + /// arrived at all, leaving the writer inside the branch taken when none did. + /// + /// The writer, inside the worker's body. + /// The writer, inside the cmd == null branch. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter OpenCommandSubscription(SourceWriter sb) => + sb.Var("serial", SerialDeclaration) + .Line($"var __cmdSub = {GeneratedTypeNames.Subscribe}(commandObs, ({GeneratedTypeNames.ICommand} cmd) =>") + .OpenBlock() + .Append("serial.Disposable = ").Append(GeneratedTypeNames.EmptyDisposableInstance).EndStatement() + .If("cmd == null"); + + /// Opens a subscription to the command that does not test for a missing command. + /// The writer, inside the worker's body. + /// The writer, inside the subscription's callback. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter OpenUntypedCommandSubscription(SourceWriter sb) => + sb.Var("serial", SerialDeclaration) + .Line($"var __cmdSub = {GeneratedTypeNames.Subscribe}(commandObs, cmd =>") + .OpenBlock() + .Append("serial.Disposable = ").Append(GeneratedTypeNames.EmptyDisposableInstance).EndStatement(); + + /// Leaves the binding inert until a command arrives, closing the cmd == null branch. + /// The writer, inside the cmd == null branch. + /// The writer, inside the subscription's callback. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter CloseCommandMissing(SourceWriter sb) => sb.Line("return;").CloseBlock(); + + /// Closes the subscription to the command. + /// The writer, inside the subscription's callback. + /// The writer, back in the worker's body. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter CloseCommandSubscription(SourceWriter sb) => sb.CloseBlock(");"); + + /// Opens the disposable that undoes what the current command attached, when the command changes. + /// The writer, inside the subscription's callback. + /// The writer, inside the detach callback, which 's shape closes with });. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter OpenSerialDetach(SourceWriter sb) => + sb.Line($"serial.Disposable = new {GeneratedTypeNames.ActionDisposable}(() =>").OpenBlock(); + + /// Opens the declaration of the handler the control's event runs the command from. + /// The writer, inside the subscription's callback. + /// The event args type the control's event carries. + /// Whether the target supports nullable reference types. + /// The writer, inside the handler's body. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter OpenHandler(SourceWriter sb, string eventArgsType, bool supportsNullable) => + sb.Append("void __Handler(").Append(CommandEventBindingEmitter.SenderType(supportsNullable)).Append(" sender, ") + .Append(eventArgsType).Line(" e)") + .OpenBlock(); + + /// Writes the guarded run of the command. + /// The writer, where the command is run. + /// The expression the command is asked about and run with. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter AppendGuardedExecute(SourceWriter sb, string argument) => + sb.BeginIf().Append("cmd.CanExecute(").Append(argument).Append(')').CloseCondition() + .Append("cmd.Execute(").Append(argument).Line(");") + .CloseBlock(); + + /// Renders the write that records the parameter a later command emission will be given. + /// The BindCommand invocation info. + /// The expression producing the value to record. + /// The rendered write, without a trailing semicolon. + /// + /// The volatile write is what makes a parameter arriving on one thread visible to a command arriving on + /// another, and it is only available for a reference type - Volatile offers no overload for an + /// arbitrary value type, so a parameter such as a Guid would not compile. Those are recorded by a + /// plain write, which is what the runtime engine does for every parameter it boxes. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string WriteLatestParameter(BindCommandInvocationInfo inv, string valueExpression) => + inv.ParameterIsReferenceType + ? $"{GeneratedTypeNames.Volatile}.Write(ref __latestParam, {valueExpression})" + : $"__latestParam = {valueExpression}"; + + /// Renders the read that recovers the parameter a command emission should be given. + /// The BindCommand invocation info. + /// The rendered read. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string ReadLatestParameter(BindCommandInvocationInfo inv) => + inv.ParameterIsReferenceType + ? $"{GeneratedTypeNames.Volatile}.Read(ref __latestParam)" + : "__latestParam"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandControlEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandControlEmitter.cs new file mode 100644 index 00000000..22132df0 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandControlEmitter.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Owns a command binding for each concrete control reached by the view's property path. +internal static class CommandControlEmitter +{ + /// Closes the observing worker and opens the worker that captures one control instance. + /// The writer, inside the observing worker's body; left inside the capturing worker's body. + /// The command binding. + /// The view's observation capabilities. + /// The call site's stable identifier. + internal static void EmitRebinding(SourceWriter sb, BindCommandInvocationInfo inv, ClassBindingInfo? viewInfo, string suffix) + { + var hasParameter = CommandParameterEmitter.HasParameter(inv); + + ObservationCodeGenerator.EmitInlineObservation(sb, "view", inv.ControlPropertyPath, inv.ControlTypeFullName, viewInfo, "__controlChanges"); + _ = BindingEmitterHelpers.AppendViewThreadCall(sb.BeginVar("__controls"), "__controlChanges", "view", inv.ViewThreadInvoker) + .EndStatement() + .Var("__controlBinding", $"new {GeneratedTypeNames.SwapDisposable}()") + .Line($"var __controlSub = {GeneratedTypeNames.Subscribe}(__controls, __control =>") + .OpenBlock() + .Append("__controlBinding.Disposable = ").Append(GeneratedTypeNames.EmptyDisposableInstance).EndStatement() + .If("__control != null") + .Append("__controlBinding.Disposable = __BindCommandCore_").Append(suffix).Append("(__control, commandObs") + .Append(hasParameter ? ", withParameter" : string.Empty).Line(");") + .CloseBlock() + .CloseBlock(");") + .Return($"new {GeneratedTypeNames.MultipleDisposable}(__controlSub, __controlBinding)") + .CloseBlock() + .BlankLine() + .Append("private static ").Append(GeneratedTypeNames.IDisposable).Append(" __BindCommandCore_").Append(suffix).Append('(') + .Append(inv.ControlTypeFullName).Append(" __control, ").Append(GeneratedTypeNames.ObservableOf(inv.CommandTypeFullName)).Append(" commandObs"); + if (hasParameter) + { + _ = sb.Append(", ").Append(GeneratedTypeNames.ObservableOf(inv.ParameterTypeFullName ?? GeneratedTypeNames.ObjectType)).Append(" withParameter"); + } + + _ = sb.Line(")").OpenBlock(); + + // The view is not thread-affine but the control is: each command lands on the control's thread. + if (inv.ControlOnlyViewThreadInvoker is { } controlInvoker) + { + _ = BindingEmitterHelpers.AppendViewThreadCall(sb.Append("commandObs = "), "commandObs", "__control", controlInvoker) + .EndStatement(); + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandEventBindingEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandEventBindingEmitter.cs new file mode 100644 index 00000000..ed8a1604 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandEventBindingEmitter.cs @@ -0,0 +1,57 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// +/// Shared emission helpers for event-based command binding plugins ( +/// and ), which dispatch on the command-parameter kind and emit a +/// generated event handler with the same nullable-aware signature. +/// +internal static class CommandEventBindingEmitter +{ + /// + /// Returns the sender parameter type for a generated event handler, annotated nullable + /// (object?) when the target supports nullable reference types so it matches the + /// delegate, or plain object otherwise (C# 7.3). + /// + /// Whether the target supports nullable reference types (C# 8+). + /// "object?" when nullable is supported; otherwise "object". + internal static string SenderType(bool supportsNullable) => + supportsNullable ? "object?" : "object"; + + /// + /// Resolves the event-args type and command-parameter kind, then dispatches to the matching emitter. + /// Centralizes the dispatch shared by the event-based command binding plugins. + /// + /// The string builder to append to. + /// The BindCommand invocation info. + /// The control access chain expression. + /// Whether the target supports nullable reference types (C# 8+). + /// Emits the binding when an observable parameter is supplied. + /// Emits the binding when no parameter is supplied. + internal static void EmitByParameterKind( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + bool supportsNullable, + Action emitObservableParameter, + Action emitNoParameter) + { + var eventArgsType = inv.ResolvedEventArgsTypeFullName ?? GeneratedTypeNames.EventArgs; + + if (CommandParameterEmitter.HasParameter(inv)) + { + emitObservableParameter(sb, inv, controlAccess, eventArgsType, supportsNullable); + } + else + { + emitNoParameter(sb, inv, controlAccess, eventArgsType, supportsNullable); + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandParameterEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandParameterEmitter.cs new file mode 100644 index 00000000..5a39e636 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandParameterEmitter.cs @@ -0,0 +1,63 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Keeps streamed parameters typed until ICommand requests its object-valued argument. +internal static class CommandParameterEmitter +{ + /// Determines whether a parameter stream is available in the generated worker. + /// The command binding. + /// True when the caller supplied a stream or property expression. + internal static bool HasParameter(BindCommandInvocationInfo inv) => + inv.HasObservableParameter || inv is { HasExpressionParameter: true, ParameterPropertyPath: not null }; + + /// Emits typed parameter storage, preserving null until the first value arrives. + /// The output builder. + /// The command binding. + internal static void EmitCapture(SourceWriter sb, BindCommandInvocationInfo inv) + { + var type = inv.ParameterTypeFullName ?? "object"; + _ = sb.Append(type).Append(" __latestParam = default(").Append(type).Line(");") + .Lines($$""" + var __parameterGate = new object(); + var __hasParameter = false; + var __argumentCached = false; + object __argument = null; + object __ReadParameter() + { + lock (__parameterGate) + { + if (!__hasParameter) + { + return null; + } + if (!__argumentCached) + { + __argument = __latestParam; + __argumentCached = true; + } + return __argument; + } + } + var __paramSub = {{GeneratedTypeNames.Subscribe}}(withParameter, __parameter => + { + lock (__parameterGate) + { + __latestParam = __parameter; + __hasParameter = true; + __argumentCached = false; + } + }); + """); + } + + /// Returns the expression read at the ICommand object-parameter boundary. + /// The command binding. + /// The parameter reader or null. + internal static string Read(BindCommandInvocationInfo inv) => HasParameter(inv) ? "__ReadParameter()" : "null"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandPropertyBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandPropertyBindingPlugin.cs new file mode 100644 index 00000000..ac344b65 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/CommandPropertyBindingPlugin.cs @@ -0,0 +1,237 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// +/// Command binding plugin for controls that have a Command property (ICommand) +/// and optionally a CommandParameter property. +/// Replaces the runtime CreatesCommandBindingViaCommandParameter binder. +/// Affinity 5 (highest priority). +/// +/// +/// Platforms covered: WPF Button, WinUI Button, MAUI Button, and any control +/// with Command + CommandParameter properties. +/// No Enabled synchronization is needed because these frameworks handle it +/// internally through the Command property binding. +/// +internal sealed class CommandPropertyBindingPlugin : ICommandBindingPlugin +{ + /// The affinity score for the Command property binder (highest priority among command binding plugins). + private static readonly int CommandPropertyAffinity = BindingAffinity.Explicit; + + /// + public int Affinity => CommandPropertyAffinity; + + /// + public bool RequiresCustomBinderFallback => false; + + /// + /// + /// Both properties, not just the command. This binder drives execution by assigning them, so a control that + /// takes a command but no parameter cannot carry a parameter the call site supplied - and binding it anyway + /// would drop that parameter silently. Stepping aside sends the binding to a mechanism that can take it, + /// which is what the runtime engine does when either property is missing. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanHandle(BindCommandInvocationInfo inv) => + !inv.HasExplicitEvent && inv.HasCommandProperty && inv.HasCommandParameterProperty; + + /// + public void EmitBinding( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + bool supportsNullable) + { + if (inv.HasObservableParameter) + { + EmitObservableParameterBinding(sb, inv, controlAccess, supportsNullable); + return; + } + + var tracksParameter = inv is { HasExpressionParameter: true, ParameterPropertyPath: not null }; + + _ = sb.BlankLine(); + AppendCapturedOriginals(sb, controlAccess); + _ = CommandBindingSyntax.OpenUntypedCommandSubscription(sb); + + if (tracksParameter) + { + // The parameter is a stream, so the control follows every value the property takes for as long as + // the command is bound. Subscribing lands the current value before the command is assigned. + _ = sb.Line($"serial.Disposable = {GeneratedTypeNames.Subscribe}(") + .Indent() + .Append("withParameter, __p => ").Append(controlAccess).Line(".CommandParameter = __p);") + .Outdent(); + } + + // The command is assigned last, so the control never sees one with a parameter still to arrive. + _ = CommandBindingSyntax.CloseCommandSubscription(sb.Append(controlAccess).Line(".Command = cmd;")) + .BlankLine(); + + AppendRestoringReturn(sb, controlAccess, $"new {GeneratedTypeNames.MultipleDisposable}(__cmdSub, serial)"); + } + + /// + /// Checks if a control type has a settable Command property (ICommand) + /// and optionally a settable CommandParameter property. + /// Walks the type hierarchy. + /// + /// The control type symbol to inspect. + /// + /// Set to when the type also has a settable CommandParameter property. + /// + /// + /// if the type or one of its base types has a settable Command property. + /// + internal static bool HasCommandProperties(INamedTypeSymbol controlType, out bool hasCommandParameter) + { + hasCommandParameter = false; + var hasCommand = false; + + var current = (ITypeSymbol?)controlType; + while (current is INamedTypeSymbol namedCurrent) + { + var members = namedCurrent.GetMembers(); + for (var i = 0; i < members.Length; i++) + { + if (members[i] is not IPropertySymbol property) + { + continue; + } + + if (IsSettableICommandProperty(property)) + { + hasCommand = true; + } + + if (IsSettableCommandParameterProperty(property)) + { + hasCommandParameter = true; + } + } + + if (hasCommand && hasCommandParameter) + { + return true; + } + + current = namedCurrent.BaseType; + } + + return hasCommand; + } + + /// Determines whether a property is a settable public instance Command property typed as ICommand. + /// The property to inspect. + /// if the property is a settable ICommand-typed Command property. + internal static bool IsSettableICommandProperty(IPropertySymbol property) + { + if (property.Name != "Command" || property.IsReadOnly || property.IsStatic + || property.DeclaredAccessibility != Accessibility.Public) + { + return false; + } + + var typeName = property.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + return typeName.EndsWith("ICommand", StringComparison.Ordinal); + } + + /// Determines whether a property is a settable public instance CommandParameter property. + /// The property to inspect. + /// if the property is a settable CommandParameter property. + internal static bool IsSettableCommandParameterProperty(IPropertySymbol property) => + property.Name == "CommandParameter" && !property.IsReadOnly && !property.IsStatic + && property.DeclaredAccessibility == Accessibility.Public; + + /// Writes the reads that remember what the control carried before the binding touched it. + /// The writer, inside the worker's body. + /// The access chain to the bound control. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendCapturedOriginals(SourceWriter sb, string controlAccess) => + sb.BeginVar("__originalCommand").Append(controlAccess).Line(".Command;") + .BeginVar("__originalParameter").Append(controlAccess).Line(".CommandParameter;"); + + /// Writes the return that disposes the binding and puts the control back as it was found, and closes the worker. + /// The writer, inside the worker's body. + /// The access chain to the bound control. + /// The expression producing the binding's own subscriptions. + /// + /// A binding that is disposed has to leave the control as it found it, or a view rebound to a second view + /// model keeps executing the first one's command. The parameter is restored before the command, so the + /// control never briefly holds the old command against the new parameter. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendRestoringReturn(SourceWriter sb, string controlAccess, string subscriptions) => + sb.Line($"return new {GeneratedTypeNames.MultipleDisposable}(") + .Indent() + .Append(subscriptions).Line(",") + .Line($"new {GeneratedTypeNames.ActionDisposable}(() =>") + .OpenBlock() + .Append(controlAccess).Line(".CommandParameter = __originalParameter;") + .Append(controlAccess).Line(".Command = __originalCommand;") + .CloseBlock("));") + .Outdent() + .CloseBlock(); + + /// + /// Emits the binding for the variant that has both a CommandParameter property and an observable + /// parameter, which must track the latest parameter value and re-subscribe per command. + /// + /// The writer, inside the worker's body. + /// The BindCommand invocation info. + /// The access chain to the bound control. + /// Whether the target supports nullable reference types (C# 8+). + /// + /// The parameter is written before the command. Assigning the command is what makes a control ask whether + /// it can execute, and it asks with whatever parameter it is holding at that moment, so setting the command + /// first decides the control's enabled state from the parameter belonging to the command it just replaced. + /// + private static void EmitObservableParameterBinding( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + bool supportsNullable) + { + _ = sb.BlankLine(); + AppendCapturedOriginals(sb, controlAccess); + + var nullableSuffix = supportsNullable && inv.ParameterIsReferenceType ? "?" : string.Empty; + var writeLatest = CommandBindingSyntax.WriteLatestParameter(inv, "p"); + + _ = sb.Append(inv.ParameterTypeFullName).Append(nullableSuffix).Line(" __latestParam = default;") + .Line($"var __paramSub = {GeneratedTypeNames.Subscribe}(") + .Indent() + .Append("withParameter, p => ").Append(writeLatest).Line(");") + .Outdent() + .BlankLine(); + _ = CommandBindingSyntax.OpenUntypedCommandSubscription(sb) + .Var("param", CommandBindingSyntax.ReadLatestParameter(inv)) + .Append(controlAccess).Line(".CommandParameter = param;") + .Append(controlAccess).Line(".Command = cmd;") + .If("cmd != null") + .Line($"serial.Disposable = {GeneratedTypeNames.Subscribe}(") + .Indent() + .Line("withParameter, p =>") + .OpenBlock() + .Append(writeLatest).EndStatement() + .Append(controlAccess).Line(".CommandParameter = p;") + .CloseBlock(");") + .Outdent() + .CloseBlock(); + _ = CommandBindingSyntax.CloseCommandSubscription(sb).BlankLine(); + + AppendRestoringReturn( + sb, + controlAccess, + $"new {GeneratedTypeNames.MultipleDisposable}(" + + $"new {GeneratedTypeNames.MultipleDisposable}(__cmdSub, __paramSub), serial)"); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/DefaultEventBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/DefaultEventBindingPlugin.cs new file mode 100644 index 00000000..5fff554d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/DefaultEventBindingPlugin.cs @@ -0,0 +1,107 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; +using static ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding.EventCommandBindingEmitter; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// +/// Command binding plugin for controls that have a default event but no Command +/// or Enabled properties. Subscribes to the event for command execution only. +/// Replaces the runtime CreatesCommandBindingViaEvent binder. +/// Affinity 3 (lowest priority among plugins). +/// +/// +/// Platforms covered: Any control with a Click/TouchUpInside/Pressed event +/// that does not have Command or Enabled properties. +/// +internal sealed class DefaultEventBindingPlugin : ICommandBindingPlugin +{ + /// The affinity score for the default-event binder (lowest priority among command binding plugins). + private static readonly int DefaultEventAffinity = BindingAffinity.DefaultEvent; + + /// + public int Affinity => DefaultEventAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => + inv.ResolvedEventName is not null; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + CommandEventBindingEmitter.EmitByParameterKind( + sb, + inv, + controlAccess, + supportsNullable, + EmitWithObservableParameter, + EmitWithNoParameter); + + /// Emits command execution using the latest streamed parameter. + /// The output builder. + /// The extracted binding call. + /// The control's typed access expression. + /// The framework event argument type. + /// Whether nullable annotations are available. + internal static void EmitWithObservableParameter( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + string eventArgsType, + bool supportsNullable) + { + AppendLatestParameterCapture(sb, inv); + AppendCommandMissingExit(sb); + AppendHandler(sb, eventArgsType, supportsNullable, CommandParameterEmitter.Read(inv)); + AppendHandlerAttachment(sb, inv, controlAccess); + AppendParameterisedDisposableReturn(sb); + } + + /// Emits command execution without a parameter. + /// The output builder. + /// The extracted binding call. + /// The control's typed access expression. + /// The framework event argument type. + /// Whether nullable annotations are available. + internal static void EmitWithNoParameter( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + string eventArgsType, + bool supportsNullable) + { + _ = sb.BlankLine(); + AppendCommandSubscription(sb); + AppendCommandMissingExit(sb); + AppendHandler(sb, eventArgsType, supportsNullable, null); + AppendHandlerAttachment(sb, inv, controlAccess); + AppendCommandOnlyReturn(sb); + } + + /// Leaves the binding inert until a command arrives. + /// The writer, inside the cmd == null branch. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendCommandMissingExit(SourceWriter sb) => + _ = CommandBindingSyntax.CloseCommandMissing(sb); + + /// Attaches the handler to the control's event, detaches it when the command changes, and closes the command subscription. + /// The writer, inside the subscription's callback. + /// The BindCommand invocation info. + /// The control access chain expression. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendHandlerAttachment(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess) => + _ = CommandBindingSyntax.CloseCommandSubscription( + sb.Append(controlAccess).Append('.').Append(inv.ResolvedEventName).Line(CommandBindingSyntax.HandlerSubscribe) + .Line($"serial.Disposable = new {GeneratedTypeNames.ActionDisposable}(() =>") + .Indent() + .Append(controlAccess).Append('.').Append(inv.ResolvedEventName).Line(" -= __Handler);") + .Outdent()); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventCommandBindingEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventCommandBindingEmitter.cs new file mode 100644 index 00000000..934b6356 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventCommandBindingEmitter.cs @@ -0,0 +1,77 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Shares command-event subscription fragments across binding mechanisms. +internal static class EventCommandBindingEmitter +{ + /// Writes the subscription that rebinds the control whenever the command property changes, up to the missing-command branch. + /// The writer, inside the worker's body; left inside the cmd == null branch. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendCommandSubscription(SourceWriter sb) => + _ = CommandBindingSyntax.OpenCommandSubscription(sb); + + /// Writes the capture of the latest parameter, and opens the command subscription over it. + /// The writer, inside the worker's body; left inside the cmd == null branch. + /// The BindCommand invocation info. + internal static void AppendLatestParameterCapture( + SourceWriter sb, + BindCommandInvocationInfo inv) + { + CommandParameterEmitter.EmitCapture(sb, inv); + AppendCommandSubscription(sb); + } + + /// Writes the declaration of the handler the control's event runs the command from. + /// The writer, inside the subscription's callback; left inside the handler's body. + /// The event args type the control's event carries. + /// Whether the target supports nullable reference types. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendHandlerDeclaration(SourceWriter sb, string eventArgsType, bool supportsNullable) => + _ = CommandBindingSyntax.OpenHandler(sb.BlankLine(), eventArgsType, supportsNullable); + + /// Writes the guarded run of the command inside the control's event handler, and closes the handler. + /// The writer, inside the handler's body. + /// The expression the command is asked about and run with. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendHandlerExecution(SourceWriter sb, string argument) => + _ = CommandBindingSyntax.AppendGuardedExecute(sb, argument).CloseBlock().BlankLine(); + + /// Writes the handler that runs the command, reading the parameter from the view model when one is named. + /// The writer, inside the subscription's callback. + /// The event args type the control's event carries. + /// Whether the target supports nullable reference types. + /// The typed access that reads the command parameter, or null to run the command with none. + internal static void AppendHandler(SourceWriter sb, string eventArgsType, bool supportsNullable, string? paramAccess) + { + AppendHandlerDeclaration(sb, eventArgsType, supportsNullable); + if (paramAccess is null) + { + AppendHandlerExecution(sb, "null"); + return; + } + + _ = sb.Var("param", paramAccess); + AppendHandlerExecution(sb, "param"); + } + + /// Writes the return of the command subscription when no parameter stream was subscribed to, and closes the member. + /// The writer, inside the worker's body. + internal static void AppendCommandOnlyReturn(SourceWriter sb) => + _ = sb.Return($"new {GeneratedTypeNames.MultipleDisposable}(__cmdSub, serial)").CloseBlock(); + + /// Writes the return of the binding's own subscriptions when a parameter stream was subscribed to, and closes the member. + /// The writer, inside the worker's body. + internal static void AppendParameterisedDisposableReturn(SourceWriter sb) => + _ = sb.Line($"return new {GeneratedTypeNames.MultipleDisposable}(") + .Indent() + .Line($"new {GeneratedTypeNames.MultipleDisposable}(__cmdSub, __paramSub), serial);") + .Outdent() + .CloseBlock(); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventEnabledBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventEnabledBindingPlugin.cs new file mode 100644 index 00000000..5726b181 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/EventEnabledBindingPlugin.cs @@ -0,0 +1,173 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; +using static ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding.EventCommandBindingEmitter; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// +/// Command binding plugin for controls that have a default event and an Enabled property. +/// Subscribes to the event for command execution and synchronizes Enabled +/// with ICommand.CanExecute and CanExecuteChanged. +/// Replaces the runtime CreatesWinFormsCommandBinding and equivalent Android/iOS binders. +/// Affinity 4. +/// +/// +/// Platforms covered: WinForms Control/ToolStripItem (Click+Enabled), +/// Android View (Click+Enabled), Apple UIControl (TouchUpInside+Enabled). +/// +internal sealed class EventEnabledBindingPlugin : ICommandBindingPlugin +{ + /// Opens the assignment that puts the control's enabled state in step with the command. + private const string CanExecuteEnabledOpen = ".Enabled = cmd.CanExecute("; + + /// The affinity score for the event + Enabled binder. + private static readonly int EventEnabledAffinity = BindingAffinity.EventEnabledControl; + + /// + public int Affinity => EventEnabledAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => + inv.ResolvedEventName is not null && inv.HasEnabledProperty; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + CommandEventBindingEmitter.EmitByParameterKind( + sb, + inv, + controlAccess, + supportsNullable, + EmitWithObservableParameter, + EmitWithNoParameter); + + /// Emits command execution using the latest streamed parameter. + /// The output builder. + /// The extracted binding call. + /// The control's typed access expression. + /// The framework event argument type. + /// Whether nullable annotations are available. + internal static void EmitWithObservableParameter( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + string eventArgsType, + bool supportsNullable) + { + var latestParameter = CommandParameterEmitter.Read(inv); + + AppendLatestParameterCapture(sb, inv); + AppendCommandMissingExit(sb, controlAccess); + + _ = sb.Var("param", latestParameter); + + AppendEnabledSynchronization(sb, controlAccess, "param", latestParameter); + AppendHandlerDeclaration(sb, eventArgsType, supportsNullable); + + _ = sb.Var("p", latestParameter); + + AppendHandlerExecution(sb, "p"); + AppendHandlerAttachment(sb, inv, controlAccess); + AppendParameterisedDisposableReturn(sb); + } + + /// Emits command execution without a parameter. + /// The output builder. + /// The extracted binding call. + /// The control's typed access expression. + /// The framework event argument type. + /// Whether nullable annotations are available. + internal static void EmitWithNoParameter( + SourceWriter sb, + BindCommandInvocationInfo inv, + string controlAccess, + string eventArgsType, + bool supportsNullable) + { + _ = sb.BlankLine(); + AppendCommandSubscription(sb); + AppendCommandMissingExit(sb, controlAccess); + AppendEnabledSynchronization(sb, controlAccess, "null", "null"); + AppendHandler(sb, eventArgsType, supportsNullable, null); + AppendHandlerAttachment(sb, inv, controlAccess); + AppendCommandOnlyReturn(sb); + } + + /// Checks if a control type has a settable Enabled property (bool). Walks the type hierarchy. + /// The control type symbol to inspect. + /// + /// if the type or one of its base types has a public settable + /// bool Enabled property. + /// + internal static bool HasEnabledProperty(INamedTypeSymbol controlType) + { + var current = (ITypeSymbol?)controlType; + while (current is INamedTypeSymbol namedCurrent) + { + var members = namedCurrent.GetMembers(); + for (var i = 0; i < members.Length; i++) + { + if (members[i] is IPropertySymbol property + && property.Name == "Enabled" + && !property.IsReadOnly + && !property.IsStatic + && property.DeclaredAccessibility == Accessibility.Public + && property.Type.SpecialType == SpecialType.System_Boolean) + { + return true; + } + } + + current = namedCurrent.BaseType; + } + + return false; + } + + /// Appends the exit taken while the view model has handed over no command, disabling the control. + /// The string builder to append to. + /// The control access chain. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendCommandMissingExit(SourceWriter sb, string controlAccess) => + _ = CommandBindingSyntax.CloseCommandMissing(sb.Append(controlAccess).Line(".Enabled = false;")).BlankLine(); + + /// Appends the initial enabled state and the handler that keeps it in step with the command. + /// The string builder to append to. + /// The control access chain. + /// The parameter the command is asked about when the binding is made. + /// The parameter the command is asked about on each subsequent change. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendEnabledSynchronization( + SourceWriter sb, + string controlAccess, + string initialArgument, + string handlerArgument) => + _ = sb.Append(controlAccess).Append(CanExecuteEnabledOpen).Append(initialArgument).Line(");") + .Line($"{GeneratedTypeNames.EventHandler} __canExecHandler = (s, e) =>") + .Indent() + .Append(controlAccess).Append(CanExecuteEnabledOpen).Append(handlerArgument).Line(");") + .Outdent() + .Line("cmd.CanExecuteChanged += __canExecHandler;"); + + /// Appends the handler's subscription to the control's event, and the disposable that detaches it. + /// The string builder to append to. + /// The BindCommand invocation info. + /// The control access chain. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendHandlerAttachment(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess) => + _ = CommandBindingSyntax.CloseCommandSubscription( + CommandBindingSyntax.OpenSerialDetach( + sb.Append(controlAccess).Append('.').Append(inv.ResolvedEventName).Line(CommandBindingSyntax.HandlerSubscribe)) + .Append(controlAccess).Append('.').Append(inv.ResolvedEventName).Line(CommandBindingSyntax.HandlerUnsubscribe) + .Line("cmd.CanExecuteChanged -= __canExecHandler;") + .CloseBlock(");")); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandEmitter.cs new file mode 100644 index 00000000..b7da3f99 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandEmitter.cs @@ -0,0 +1,71 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Emits native event and UIKit touch command bindings. +internal static class NativeCommandEmitter +{ + /// The shared event implementation, called directly after native selection. + private static readonly EventEnabledBindingPlugin EventBinding = new(); + + /// Uses the verified native event instead of a generic default-event guess. + /// The output builder. + /// The binding with its native event. + /// The concrete control expression. + /// Whether nullable annotations are supported. + internal static void EmitEvent(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) + { + var native = inv.NativeCommand!; + EventBinding.EmitBinding(sb, inv with { ResolvedEventName = native.EventName, ResolvedEventArgsTypeFullName = native.EventArgsType }, controlAccess, supportsNullable); + } + + /// Attaches UIKit's native touch target and keeps enabled state in step with the command. + /// The output builder. + /// The selected binding. + /// The concrete control expression. + internal static void EmitTouch(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess) + { + if (CommandParameterEmitter.HasParameter(inv)) + { + CommandParameterEmitter.EmitCapture(sb, inv); + } + + var parameter = CommandParameterEmitter.Read(inv); + _ = sb.BeginVar("__nativeControl").Append("(global::UIKit.UIControl)").Append(controlAccess).EndStatement(); + _ = CommandBindingSyntax.CloseCommandMissing(CommandBindingSyntax.OpenCommandSubscription(sb).Line("__nativeControl.Enabled = false;")) + .Line($"{GeneratedTypeNames.EventHandler} __action = (__sender, __args) =>") + .OpenBlock() + .BeginVar("__parameter").Append("(object)").Append(parameter).EndStatement(); + _ = CommandBindingSyntax.AppendGuardedExecute(sb, "__parameter") + .CloseBlock(";") + .Append($"{GeneratedTypeNames.EventHandler} __enabled = (__sender, __args) => __nativeControl.Enabled = cmd.CanExecute(").Append(parameter).Line(");") + .Append("__nativeControl.Enabled = cmd.CanExecute(").Append(parameter).Line(");") + .Line("__nativeControl.AddTarget(__action, global::UIKit.UIControlEvent.TouchUpInside);") + .Line("cmd.CanExecuteChanged += __enabled;"); + _ = CommandBindingSyntax.CloseCommandSubscription( + CommandBindingSyntax.OpenSerialDetach(sb) + .Line("__nativeControl.RemoveTarget(__action, global::UIKit.UIControlEvent.TouchUpInside);") + .Line("cmd.CanExecuteChanged -= __enabled;") + .CloseBlock(");")); + AppendReturn(sb, inv); + } + + /// Returns every native, command, and parameter subscription owned by the binding, and closes the worker. + /// The writer, inside the worker's body. + /// The command binding. + internal static void AppendReturn(SourceWriter sb, BindCommandInvocationInfo inv) + { + _ = sb.BeginReturn().Append($"new {GeneratedTypeNames.MultipleDisposable}(__cmdSub, serial"); + if (CommandParameterEmitter.HasParameter(inv)) + { + _ = sb.Append(", __paramSub"); + } + + _ = sb.Line(");").CloseBlock(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandSymbols.cs new file mode 100644 index 00000000..68984019 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/NativeCommandSymbols.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Provides native command member checks shared by the platform mechanisms. +internal static class NativeCommandSymbols +{ + /// Reads a native event route with a writable enabled flag. + /// The concrete control. + /// The native route. + /// The required event. + /// The verified route, or null. + internal static NativeCommandInfo? Event(INamedTypeSymbol control, NativeCommandKind kind, string eventName) + { + var changeEvent = PlatformSymbols.FindEvent(control, eventName); + var enabled = HasWritableProperty(control, "Enabled", "bool"); + return changeEvent is null || !enabled + ? null + : new(kind, eventName, EventHelpers.FindEventArgsType(control, eventName), true, false); + } + + /// Checks that a native property has a public setter and the required type. + /// The concrete owner. + /// The property name. + /// The required CLR type. + /// True when the property can be assigned directly. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool HasWritableProperty(INamedTypeSymbol control, string name, string typeName) => + NativeCommandMembers.HasWritableProperty(control, name, typeName); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandBindingPlugin.cs new file mode 100644 index 00000000..6c0ec341 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandBindingPlugin.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Binds UIKit touch actions through the native AddTarget and RemoveTarget APIs. +internal sealed class UIKitCommandBindingPlugin : IPlatformCommandBindingPlugin +{ + /// The native UIControl command score. + private const int TouchAffinity = 9; + + /// + public int Affinity => TouchAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public NativeCommandInfo? InspectControl(INamedTypeSymbol control) => + UIKitCommandSymbols.CanBindTouch(control) + ? new(NativeCommandKind.UIKitTouch, null, null, true, false) + : null; + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => !inv.HasExplicitEvent && inv.NativeCommand?.Kind == NativeCommandKind.UIKitTouch; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + NativeCommandEmitter.EmitTouch(sb, inv, controlAccess); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandSymbols.cs new file mode 100644 index 00000000..dd9bd0ea --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitCommandSymbols.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Identifies UIKit's touch and control-specific command routes. +internal static class UIKitCommandSymbols +{ + /// Checks the native touch target methods and enabled property. + /// The concrete control. + /// True when UIKit can attach a typed touch handler. + internal static bool CanBindTouch(INamedTypeSymbol control) => + NativeCommandMembers.DerivesFrom(control, "UIKit.UIControl") + && NativeCommandMembers.HasWritableProperty(control, "Enabled", "bool") + && NativeCommandMembers.HasTargetMethod(control, "AddTarget") + && NativeCommandMembers.HasTargetMethod(control, "RemoveTarget"); + + /// Finds the verified specialized command event. + /// The concrete control. + /// The specialized event name, or null. + internal static string? ControlEvent(INamedTypeSymbol control) + { + string? name = null; + if (NativeCommandMembers.DerivesFrom(control, "UIKit.UIRefreshControl")) + { + name = "ValueChanged"; + } + else if (NativeCommandMembers.DerivesFrom(control, "UIKit.UIBarButtonItem")) + { + name = "Clicked"; + } + + return name is not null && NativeCommandMembers.HasWritableProperty(control, "Enabled", "bool") && NativeCommandMembers.HasEvent(control, name) + ? name + : null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitControlCommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitControlCommandBindingPlugin.cs new file mode 100644 index 00000000..1c7f377c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBinding/UIKitControlCommandBindingPlugin.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +/// Binds UIKit refresh controls and bar-button items through their native events. +internal sealed class UIKitControlCommandBindingPlugin : IPlatformCommandBindingPlugin +{ + /// The specialized UIKit control score. + private const int ControlAffinity = 10; + + /// + public int Affinity => ControlAffinity; + + /// + public bool RequiresCustomBinderFallback => true; + + /// + public NativeCommandInfo? InspectControl(INamedTypeSymbol control) => + UIKitCommandSymbols.ControlEvent(control) is { } name + ? NativeCommandSymbols.Event(control, NativeCommandKind.UIKitEvent, name) + : null; + + /// + public bool CanHandle(BindCommandInvocationInfo inv) => !inv.HasExplicitEvent && inv.NativeCommand?.Kind == NativeCommandKind.UIKitEvent; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable) => + NativeCommandEmitter.EmitEvent(sb, inv, controlAccess, supportsNullable); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBindingPluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBindingPluginRegistry.cs new file mode 100644 index 00000000..df731ae5 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/CommandBindingPluginRegistry.cs @@ -0,0 +1,72 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.CommandBinding; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// +/// Static registry of instances sorted by affinity descending. +/// Returns the highest-affinity plugin that can handle a given . +/// +internal static class CommandBindingPluginRegistry +{ + /// All command binding plugins sorted by affinity descending (highest priority first). + private static readonly ICommandBindingPlugin[] Plugins = + [ + new UIKitControlCommandBindingPlugin(), + new UIKitCommandBindingPlugin(), + new AndroidCommandBindingPlugin(), + new CommandPropertyBindingPlugin(), // Affinity 5 + new AppKitCommandBindingPlugin(), + new EventEnabledBindingPlugin(), // Affinity 4 + new DefaultEventBindingPlugin() // Affinity 3 + ]; + + /// Finds the strongest native route while the control's symbols are available. + /// The concrete control, or null when unresolved. + /// The native member data, or null. + internal static NativeCommandInfo? InspectControl(INamedTypeSymbol? control) + { + if (control is null) + { + return null; + } + + NativeCommandInfo? best = null; + var affinity = 0; + foreach (var plugin in Plugins) + { + if (plugin is not IPlatformCommandBindingPlugin native || plugin.Affinity <= affinity || native.InspectControl(control) is not { } candidate) + { + continue; + } + + best = candidate; + affinity = plugin.Affinity; + } + + return best; + } + + /// Returns the highest-affinity plugin that can handle the given invocation, or if no plugin matches. + /// The BindCommand invocation info. + /// The best matching plugin, or null. + internal static ICommandBindingPlugin? GetBestPlugin(BindCommandInvocationInfo inv) + { + ICommandBindingPlugin? best = null; + for (var i = 0; i < Plugins.Length; i++) + { + var candidate = Plugins[i]; + if (candidate.CanHandle(inv) && (best is null || candidate.Affinity > best.Affinity)) + { + best = candidate; + } + } + + return best; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AndroidConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AndroidConversionPlugin.cs new file mode 100644 index 00000000..2b8a480a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AndroidConversionPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts Android visibility to typed boolean bindings. +internal sealed class AndroidConversionPlugin : IConversionPlugin +{ + /// Android's view state enum, which takes no hint. + private static readonly VisibilityPlatform Platform = new("Android.Views.ViewStates", "Gone", false, string.Empty, string.Empty); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + VisibilityConversion.Select(source, target, Platform, compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AppleConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AppleConversionPlugin.cs new file mode 100644 index 00000000..3770c33a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/AppleConversionPlugin.cs @@ -0,0 +1,95 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits native Foundation date operators with their null-input contract. +internal sealed class AppleConversionPlugin : IConversionPlugin +{ + /// The Foundation date converter's score. + private const int Affinity = 8; + + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var from = UnwrapNullable(source); + var to = UnwrapNullable(target); + var fromNative = NativeTypeIdentity.Matches(from, "Foundation.NSDate"); + var toNative = NativeTypeIdentity.Matches(to, "Foundation.NSDate"); + if (fromNative == toNative) + { + return null; + } + + return fromNative ? FromNative(from, target, compilation) : ToNative(source, to, compilation); + } + + /// Emits the managed-date to native-date direction, including nullable rejection. + /// The managed input type. + /// The native output type. + /// The consumer compilation. + /// The direct conversion, or null when the native operator is unavailable. + internal static ConversionInfo? ToNative(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var managed = UnwrapNullable(source); + if (!IsManagedDate(managed) || !HasOperator(compilation.GetSpecialType(SpecialType.System_DateTime), target, compilation)) + { + return null; + } + + var nullable = !SymbolEqualityComparer.Default.Equals(managed, source); + var value = nullable ? "__value.Value" : "__value"; + var member = managed.Name == "DateTimeOffset" ? ".DateTime" : string.Empty; + return new($"(global::Foundation.NSDate){value}{member}", nullable ? "__value.HasValue" : "true", Affinity); + } + + /// Emits the native-date to managed-date direction with native-null rejection. + /// The native input type. + /// The managed output type. + /// The consumer compilation. + /// The direct conversion, or null when the native operator is unavailable. + internal static ConversionInfo? FromNative(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var managed = UnwrapNullable(target); + if (!IsManagedDate(managed) || !HasOperator(source, compilation.GetSpecialType(SpecialType.System_DateTime), compilation)) + { + return null; + } + + var expression = managed.Name == "DateTimeOffset" + ? "new global::System.DateTimeOffset((global::System.DateTime)__value)" + : "(global::System.DateTime)__value"; + return new($"({target.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})({expression})", "__value != null", Affinity); + } + + /// Unwraps nullable value types while retaining the native reference type. + /// The source or destination type. + /// The value type used to select the native operator. + internal static ITypeSymbol UnwrapNullable(ITypeSymbol type) => + type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullable + ? nullable.TypeArguments[0] + : type; + + /// Identifies the managed date types covered by the Foundation converters. + /// The unwrapped value type. + /// True for a supported managed date. + private static bool IsManagedDate(ITypeSymbol type) => + type.SpecialType == SpecialType.System_DateTime || NativeTypeIdentity.Matches(type, "System.DateTimeOffset"); + + /// Verifies the concrete native cast against the consumer's symbols. + /// The operator input. + /// The operator output. + /// The consumer compilation. + /// True when the native operator exists. + /// A user-defined conversion always exists; a missing or ambiguous one classifies as no conversion. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool HasOperator(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + ((CSharpCompilation)compilation).ClassifyConversion(source, target).IsUserDefined; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/BooleanStringConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/BooleanStringConversionPlugin.cs new file mode 100644 index 00000000..c9e4b2aa --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/BooleanStringConversionPlugin.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits boolean formatting and parsing, including nullable values. +internal sealed class BooleanStringConversionPlugin : IConversionPlugin +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + StringConversionExpressions.SelectScalar( + source, + target, + ConversionSymbols.Unwrap(source).SpecialType == SpecialType.System_Boolean, + ConversionSymbols.Unwrap(target).SpecialType == SpecialType.System_Boolean, + string.Empty); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionPluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionPluginRegistry.cs new file mode 100644 index 00000000..158295f2 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionPluginRegistry.cs @@ -0,0 +1,66 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Selects typed framework conversions from the consumer's symbols. +internal static class ConversionPluginRegistry +{ + /// The framework adapters, in deterministic tie order. + private static readonly IConversionPlugin[] Plugins = + [ + new WpfConversionPlugin(), + new WinUIConversionPlugin(), + new UnoConversionPlugin(), + new MauiConversionPlugin(), + new AndroidConversionPlugin(), + new AppleConversionPlugin(), + new NumericStringConversionPlugin(), + new BooleanStringConversionPlugin(), + new GuidStringConversionPlugin(), + new TemporalStringConversionPlugin(), + new NullableValueConversionPlugin(), + new UriConversionPlugin(), + new StringIdentityConversionPlugin(), + new EqualityConversionPlugin(), + new LanguageConversionPlugin(), + ]; + + /// Reads the declared value type of a property selector. + /// The selector expression. + /// The consumer's semantic model. + /// The cancellation token. + /// The selected value type. + internal static ITypeSymbol? SelectorType(ExpressionSyntax expression, SemanticModel model, CancellationToken token) => + expression is LambdaExpressionSyntax { Body: ExpressionSyntax body } ? model.GetTypeInfo(body, token).Type : null; + + /// Compares applicable framework mechanisms and retains the highest affinity. + /// The declared input type. + /// The declared output type. + /// The consumer compilation. + /// The winning direct conversion, or null when the registry must resolve it. + internal static ConversionInfo? Select(ITypeSymbol? source, ITypeSymbol? target, Compilation compilation) + { + if (source is null || target is null) + { + return null; + } + + ConversionInfo? winner = null; + foreach (var plugin in Plugins) + { + var candidate = plugin.Select(source, target, compilation); + if (candidate is not null && (winner is null || candidate.Affinity > winner.Affinity)) + { + winner = candidate; + } + } + + return winner is null ? null : ConversionSymbols.WithAssignment(winner, source, target, compilation); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionSymbols.cs new file mode 100644 index 00000000..f18b964e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/ConversionSymbols.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Provides type predicates shared by the fixed conversion mechanisms. +internal static class ConversionSymbols +{ + /// Records the typed assignment available when a registered converter declines a value. + /// The selected mechanism. + /// The input type. + /// The output type. + /// The consumer compilation. + /// The mechanism with its assignment contract. + internal static ConversionInfo WithAssignment(ConversionInfo conversion, ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var assignment = ((CSharpCompilation)compilation).ClassifyConversion(source, target); + var nullableLift = !IsNullable(source) && IsNullable(target) && SymbolEqualityComparer.Default.Equals(source, Unwrap(target)); + var assignable = assignment.IsIdentity || nullableLift || (assignment.IsImplicit && (assignment.IsReference || assignment.IsBoxing)); + return conversion with + { + AssignmentFallback = assignable ? $"({target.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})__value" : null, + IsIdentity = assignment.IsIdentity, + }; + } + + /// Unwraps nullable value types for mechanism selection. + /// The declared value type. + /// The underlying value type. + internal static ITypeSymbol Unwrap(ITypeSymbol type) => + type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullable + ? nullable.TypeArguments[0] + : type; + + /// Determines whether a value has a nullable wrapper. + /// The declared value type. + /// True for a nullable value type. + internal static bool IsNullable(ITypeSymbol type) => + type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }; + + /// Recognizes the numeric types covered by the standard converters. + /// The unwrapped value type. + /// True for a supported numeric type. + internal static bool IsNumeric(ITypeSymbol type) => type.SpecialType is + SpecialType.System_Byte or SpecialType.System_Int16 or SpecialType.System_Int32 or SpecialType.System_Int64 + or SpecialType.System_Single or SpecialType.System_Double or SpecialType.System_Decimal; + + /// Recognizes a named framework type without treating nullable annotations as another type. + /// The value type. + /// The framework type name. + /// True for the named type in the System namespace. + internal static bool IsSystemType(ITypeSymbol type, string name) => + type.Name == name && type.ContainingNamespace is { Name: "System", ContainingNamespace.IsGlobalNamespace: true }; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/EqualityConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/EqualityConversionPlugin.cs new file mode 100644 index 00000000..1fcf38ee --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/EqualityConversionPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Compares an object-valued source with the caller's comparison hint. +internal sealed class EqualityConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + source.SpecialType == SpecialType.System_Object && target.SpecialType == SpecialType.System_Boolean + ? new("global::System.Object.Equals(__value, __hint)", "true", BindingAffinity.Fallback) + : null; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/GuidStringConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/GuidStringConversionPlugin.cs new file mode 100644 index 00000000..39ed4936 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/GuidStringConversionPlugin.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits standard hyphenated GUID formatting and GUID parsing. +internal sealed class GuidStringConversionPlugin : IConversionPlugin +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + StringConversionExpressions.SelectScalar( + source, + target, + ConversionSymbols.IsSystemType(ConversionSymbols.Unwrap(source), nameof(Guid)), + ConversionSymbols.IsSystemType(ConversionSymbols.Unwrap(target), nameof(Guid)), + "\"D\""); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/IConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/IConversionPlugin.cs new file mode 100644 index 00000000..500c8e09 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/IConversionPlugin.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts a native conversion into typed generated code. +internal interface IConversionPlugin +{ + /// Offers a conversion only when the consumer's symbols support its emitted expression. + /// The declared input type. + /// The declared output type. + /// The consumer compilation. + /// The candidate's typed expression and affinity, or null when ineligible. + ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/LanguageConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/LanguageConversionPlugin.cs new file mode 100644 index 00000000..6fff39e0 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/LanguageConversionPlugin.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Offers the compiler's implicit conversion without adding a boxing boundary. +internal sealed class LanguageConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var conversion = ((CSharpCompilation)compilation).ClassifyConversion(source, target); + return conversion.IsImplicit && !conversion.IsBoxing + ? new($"({target.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})__value", "true", 1) + : null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/MauiConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/MauiConversionPlugin.cs new file mode 100644 index 00000000..334d0d4f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/MauiConversionPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts Maui visibility to typed boolean bindings. +internal sealed class MauiConversionPlugin : IConversionPlugin +{ + /// MAUI's visibility enum, with ReactiveUI's hint and this library's MAUI hint. + private static readonly VisibilityPlatform Platform = new("Microsoft.Maui.Visibility", "Collapsed", true, "ReactiveUI", "Maui"); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + VisibilityConversion.Select(source, target, Platform, compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NullableValueConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NullableValueConversionPlugin.cs new file mode 100644 index 00000000..864bbe96 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NullableValueConversionPlugin.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits numeric nullable wrapping and unwrapping without boxing. +internal sealed class NullableValueConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var underlying = ConversionSymbols.Unwrap(source); + var sourceNullable = ConversionSymbols.IsNullable(source); + if (!ConversionSymbols.IsNumeric(underlying) + || sourceNullable == ConversionSymbols.IsNullable(target) + || !SymbolEqualityComparer.Default.Equals(underlying, ConversionSymbols.Unwrap(target))) + { + return null; + } + + return new( + sourceNullable ? "__value.Value" : $"({target.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})__value", + sourceNullable ? "__value.HasValue" : "true", + BindingAffinity.DefaultInternalTypeConverter); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NumericStringConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NumericStringConversionPlugin.cs new file mode 100644 index 00000000..a806ae3f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/NumericStringConversionPlugin.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits the standard numeric formatting and parsing operations. +internal sealed class NumericStringConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + var input = ConversionSymbols.Unwrap(source); + if (target.SpecialType == SpecialType.System_String && ConversionSymbols.IsNumeric(input)) + { + return StringConversionExpressions.Format(FormattingExpression(input, ConversionSymbols.IsNullable(source)), ConversionSymbols.IsNullable(source)); + } + + return source.SpecialType == SpecialType.System_String && ConversionSymbols.IsNumeric(ConversionSymbols.Unwrap(target)) + ? StringConversionExpressions.Parse(target) + : null; + } + + /// Preserves width, precision and custom format using the current culture. + /// The unwrapped numeric type. + /// Whether the input has a nullable wrapper. + /// The concrete ToString operation. + internal static string FormattingExpression(ITypeSymbol type, bool nullable) + { + var value = nullable ? "__value.Value" : "__value"; + var prefix = type.SpecialType is SpecialType.System_Single or SpecialType.System_Double or SpecialType.System_Decimal ? "F" : "D"; + return $"__hint is int __precision ? {value}.ToString(\"{prefix}\" + __precision.ToString())" + + $" : __hint is string __format ? {value}.ToString(__format) : {value}.ToString()"; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringConversionExpressions.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringConversionExpressions.cs new file mode 100644 index 00000000..c3d80f44 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringConversionExpressions.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Builds typed formatting and parsing expressions with nullable-value semantics. +internal static class StringConversionExpressions +{ + /// Builds the common scalar-to-string and string-to-scalar directions. + /// The declared input. + /// The declared output. + /// Whether this mechanism supports the input scalar. + /// Whether this mechanism supports the output scalar. + /// The arguments to the scalar's ToString method. + /// The direct conversion, or null. + internal static ConversionInfo? SelectScalar(ITypeSymbol source, ITypeSymbol target, bool sourceSupported, bool targetSupported, string formatArguments) + { + if (target.SpecialType == SpecialType.System_String && sourceSupported) + { + var value = ConversionSymbols.IsNullable(source) ? "__value.Value" : "__value"; + return Format($"{value}.ToString({formatArguments})", ConversionSymbols.IsNullable(source)); + } + + return source.SpecialType == SpecialType.System_String && targetSupported ? Parse(target) : null; + } + + /// Preserves a successful null result when formatting a nullable value. + /// The non-null formatting operation. + /// Whether the input is nullable. + /// The formatting candidate. + internal static ConversionInfo Format(string expression, bool nullable) => + new(nullable ? $"__value.HasValue ? ({expression}) : null" : expression, "true", BindingAffinity.DefaultInternalTypeConverter); + + /// Parses directly into the concrete value type, treating an empty nullable input as a successful null. + /// The declared output type. + /// The parsing candidate. + internal static ConversionInfo Parse(ITypeSymbol target) + { + var underlying = ConversionSymbols.Unwrap(target).ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var targetName = target.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var nullable = ConversionSymbols.IsNullable(target); + var parse = $"{underlying}.TryParse(__value, out __parsed)"; + var condition = nullable ? $"global::System.String.IsNullOrEmpty(__value) || {parse}" : parse; + var expression = nullable ? $"global::System.String.IsNullOrEmpty(__value) ? default({targetName}) : ({targetName})__parsed" : "__parsed"; + return new(expression, condition, BindingAffinity.DefaultInternalTypeConverter) { Preparation = $"{underlying} __parsed = default({underlying});", }; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringIdentityConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringIdentityConversionPlugin.cs new file mode 100644 index 00000000..b6d3524e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/StringIdentityConversionPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Offers the standard string converter's identity operation. +internal sealed class StringIdentityConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + source.SpecialType == SpecialType.System_String && target.SpecialType == SpecialType.System_String + ? new("__value", "__value != null", BindingAffinity.DefaultInternalTypeConverter) + : null; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/TemporalStringConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/TemporalStringConversionPlugin.cs new file mode 100644 index 00000000..1a37b7b9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/TemporalStringConversionPlugin.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits formatting and parsing for the standard date and time values. +internal sealed class TemporalStringConversionPlugin : IConversionPlugin +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + StringConversionExpressions.SelectScalar(source, target, Supports(ConversionSymbols.Unwrap(source)), Supports(ConversionSymbols.Unwrap(target)), string.Empty); + + /// Identifies the date and time types covered by the standard converters. + /// The unwrapped value type. + /// True for a supported temporal value. + internal static bool Supports(ITypeSymbol type) => + type.ContainingNamespace is { Name: "System", ContainingNamespace.IsGlobalNamespace: true } + && type.Name is "DateTime" or "DateTimeOffset" or "TimeSpan" or "DateOnly" or "TimeOnly"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UnoConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UnoConversionPlugin.cs new file mode 100644 index 00000000..5845e071 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UnoConversionPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts Uno visibility to typed boolean bindings. +internal sealed class UnoConversionPlugin : IConversionPlugin +{ + /// Uno's visibility enum, with ReactiveUI.Uno's hint. + private static readonly VisibilityPlatform Platform = new("Windows.UI.Xaml.Visibility", "Collapsed", false, "ReactiveUI.Uno", string.Empty); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + VisibilityConversion.Select(source, target, Platform, compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UriConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UriConversionPlugin.cs new file mode 100644 index 00000000..de4fb700 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/UriConversionPlugin.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Emits URI formatting and relative-or-absolute URI parsing. +internal sealed class UriConversionPlugin : IConversionPlugin +{ + /// + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) + { + if (ConversionSymbols.IsSystemType(source, nameof(Uri)) && target.SpecialType == SpecialType.System_String) + { + return new("__value.ToString()", "__value != null", BindingAffinity.DefaultInternalTypeConverter); + } + + return source.SpecialType == SpecialType.System_String && ConversionSymbols.IsSystemType(target, nameof(Uri)) + ? new("__parsed", "global::System.Uri.TryCreate(__value, global::System.UriKind.RelativeOrAbsolute, out __parsed)", BindingAffinity.DefaultInternalTypeConverter) + { + Preparation = "global::System.Uri __parsed;", + } + : null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityConversion.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityConversion.cs new file mode 100644 index 00000000..93381dce --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityConversion.cs @@ -0,0 +1,61 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Validates and emits the enum mapping shared by visibility adapters. +internal static class VisibilityConversion +{ + /// Matches the native visibility converter's score. + private const int Affinity = 2; + + /// Builds a mapping only for the exact framework enum and its required members. + /// The input type. + /// The output type. + /// The platform's visibility enum and hint enums. + /// The consumer compilation. + /// The typed visibility mapping, or null when ineligible. + internal static ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, VisibilityPlatform platform, Compilation compilation) + { + var forward = source.SpecialType == SpecialType.System_Boolean; + var enumType = forward ? target : source; + return (!forward && target.SpecialType != SpecialType.System_Boolean) + || enumType.TypeKind != TypeKind.Enum + || !NativeTypeIdentity.Matches(enumType, platform.MetadataName) + || enumType.GetMembers("Visible").IsEmpty + || enumType.GetMembers(platform.Hidden).IsEmpty + ? null + : Create(enumType, forward, platform, compilation); + } + + /// Applies the platform's inversion and hidden-value rules. + /// The verified framework enum. + /// Whether the input is boolean. + /// The platform's visibility enum and hint enums. + /// The consumer compilation. + /// The typed conversion. + private static ConversionInfo Create(ITypeSymbol enumType, bool forward, VisibilityPlatform platform, Compilation compilation) + { + var typeName = enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var inverse = VisibilityHintExpressions.Flag(compilation, platform, "Inverse"); + var visible = forward ? "__value" : $"__value == {typeName}.Visible"; + if (inverse != "false") + { + visible = $"({visible}) != ({inverse})"; + } + + var notVisible = $"{typeName}.{platform.Hidden}"; + if (platform.SupportsHidden && !enumType.GetMembers("Hidden").IsEmpty) + { + var useHidden = VisibilityHintExpressions.Flag(compilation, platform, "UseHidden"); + notVisible = $"({useHidden}) ? {typeName}.Hidden : {notVisible}"; + } + + return new(forward ? $"({visible}) ? {typeName}.Visible : ({notVisible})" : visible, "true", Affinity); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityHintExpressions.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityHintExpressions.cs new file mode 100644 index 00000000..ff637705 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityHintExpressions.cs @@ -0,0 +1,76 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Reads supported visibility flags through the hint enum present in the consumer. +internal static class VisibilityHintExpressions +{ + /// Builds a flag test over every hint enum the consumer can pass, in either runtime flavour. + /// The consumer compilation. + /// The platform, which names the hint enums a binding to it accepts. + /// The flag member to test. + /// A typed flag test, or false when no hint enum is accessible. + /// + /// ReactiveUI declares BooleanToVisibilityHint, and this library's platform packages declare + /// BooleanToVisibilityHints. A consumer may pass either, so the test accepts each one that resolves. + /// + internal static string Flag(Compilation compilation, VisibilityPlatform platform, string member) + { + var tests = new List(); + if (platform.HintNamespace.Length != 0) + { + AddTest(tests, compilation, $"{platform.HintNamespace}.BooleanToVisibilityHint", member); + AddTest(tests, compilation, $"{platform.HintNamespace.Replace("ReactiveUI", "ReactiveUI.Reactive")}.BooleanToVisibilityHint", member); + } + + if (platform.BindingPlatform.Length != 0) + { + AddTest(tests, compilation, $"ReactiveUI.Binding.{platform.BindingPlatform}.BooleanToVisibilityHints", member); + AddTest(tests, compilation, $"ReactiveUI.Binding.Reactive.{platform.BindingPlatform}.BooleanToVisibilityHints", member); + } + + return tests.Count switch + { + 0 => "false", + 1 => tests[0], + _ => $"({string.Join(") || (", tests)})", + }; + } + + /// Adds the flag test for one hint enum when the consumer can reach it. + /// The tests found so far; the count also names the pattern variable. + /// The consumer compilation. + /// The hint enum metadata name. + /// The flag member. + private static void AddTest(List tests, Compilation compilation, string metadataName, string member) + { + if (ForType(compilation, metadataName, member, tests.Count.ToString(System.Globalization.CultureInfo.InvariantCulture)) is { } test) + { + tests.Add(test); + } + } + + /// Tests a flag only when the exact enum and member are accessible. + /// The consumer compilation. + /// The hint enum metadata name. + /// The flag member. + /// The discriminator for the emitted pattern variable. + /// The flag expression, or null. + private static string? ForType(Compilation compilation, string metadataName, string member, string suffix) + { + var type = compilation.GetTypeByMetadataName(metadataName); + if (type is not { TypeKind: TypeKind.Enum } || type.GetMembers(member).IsEmpty + || !compilation.IsSymbolAccessibleWithin(type, compilation.Assembly)) + { + return null; + } + + var typeName = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + var variable = $"__{member}Hint{suffix}"; + return $"__hint is {typeName} {variable} && ({variable} & {typeName}.{member}) != 0"; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityPlatform.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityPlatform.cs new file mode 100644 index 00000000..77a1585c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/VisibilityPlatform.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Describes a platform's visibility enum and the hint enums a binding to it accepts. +/// The platform's visibility enum. +/// The enum member a false value maps to. +/// Whether the hidden hint flag applies. +/// The namespace of ReactiveUI's hint enum, or empty for none. +/// The platform package declaring this library's hint enum, or empty for none. +internal sealed record VisibilityPlatform( + string MetadataName, + string Hidden, + bool SupportsHidden, + string HintNamespace, + string BindingPlatform); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WinUIConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WinUIConversionPlugin.cs new file mode 100644 index 00000000..f599885c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WinUIConversionPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts WinUI visibility to typed boolean bindings. +internal sealed class WinUIConversionPlugin : IConversionPlugin +{ + /// WinUI's visibility enum, with ReactiveUI's hint. + private static readonly VisibilityPlatform Platform = new("Microsoft.UI.Xaml.Visibility", "Collapsed", false, "ReactiveUI", string.Empty); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + VisibilityConversion.Select(source, target, Platform, compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WpfConversionPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WpfConversionPlugin.cs new file mode 100644 index 00000000..8b741dab --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Conversion/WpfConversionPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Conversion; + +/// Adapts Wpf visibility to typed boolean bindings. +internal sealed class WpfConversionPlugin : IConversionPlugin +{ + /// WPF's visibility enum, with ReactiveUI's hint and this library's WPF hint. + private static readonly VisibilityPlatform Platform = new("System.Windows.Visibility", "Collapsed", true, "ReactiveUI", "Wpf"); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ConversionInfo? Select(ITypeSymbol source, ITypeSymbol target, Compilation compilation) => + VisibilityConversion.Select(source, target, Platform, compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ICommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ICommandBindingPlugin.cs new file mode 100644 index 00000000..daf15a34 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ICommandBindingPlugin.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// +/// Compile-time plugin interface for command binding code generation. +/// Implementations determine how a command is bound to a control +/// (via Command property, event + Enabled, or event only). +/// +internal interface ICommandBindingPlugin +{ + /// Gets the affinity score for this plugin. Higher values win when multiple plugins can handle the same invocation. + int Affinity { get; } + + /// + /// Gets a value indicating whether the code generator should emit the custom binder + /// fallback check before this plugin's binding code. Event-based plugins return + /// to allow runtime-registered custom binders to override; + /// the CommandProperty plugin returns because + /// frameworks handle command binding internally. + /// + bool RequiresCustomBinderFallback { get; } + + /// Determines whether this plugin can handle the given BindCommand invocation. + /// The BindCommand invocation info. + /// True if this plugin can generate binding code for this invocation. + bool CanHandle(BindCommandInvocationInfo inv); + + /// Emits the command binding code into the string builder. + /// The string builder. + /// The BindCommand invocation info. + /// The control access chain expression. + /// Whether the target supports nullable reference types (C# 8+); emits nullable annotations on emitted code. + void EmitBinding(SourceWriter sb, BindCommandInvocationInfo inv, string controlAccess, bool supportsNullable); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/IObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IObservationPlugin.cs new file mode 100644 index 00000000..7f5ea467 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IObservationPlugin.cs @@ -0,0 +1,58 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// +/// Compile-time plugin interface for property observation code generation. +/// Implementations determine whether a given type can be observed and emit +/// platform-specific observation code (PropertyObservable, EventObservable, +/// DependencyProperty callbacks, KVO, etc.). +/// +internal interface IObservationPlugin +{ + /// + /// Gets the affinity score matching ReactiveUI's runtime values. + /// Higher values win when multiple plugins match the same type. + /// + int Affinity { get; } + + /// Gets the observation kind identifier (e.g., "INPC", "ReactiveObject", "WpfDP"). + string ObservationKind { get; } + + /// Gets a value indicating whether this plugin supports before-change (PropertyChanging) observation. + bool SupportsBeforeChanged { get; } + + /// Determines whether this plugin can handle the given type based on ClassBindingInfo flags. + /// The type-level binding info. + /// True if this plugin can generate observation code for this type. + bool IsAMatch(ClassBindingInfo classInfo); + + /// Determines whether this plugin's mechanism reaches one particular property of a matched type. + /// The type-level binding info, which lists the properties the type declares. + /// The property being observed. + /// True when the mechanism can observe that property. + /// + /// A type advertises a mechanism; a property participates in it or does not. A dependency object can declare + /// a plain CLR property and a component can declare one with no change event, and emitting the mechanism's + /// code for those names a member that does not exist. A property the type does not declare - an inherited + /// one - is unknown rather than absent, and stays observable so nothing regresses on the strength of a + /// question this cannot answer. + /// + bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName); + + /// Scores this property for the requested notification timing; zero declines the observation. + /// The concrete owner's capabilities. + /// The observed property. + /// Whether the caller requests before-change notifications. + /// The eligible mechanism's score, or zero. + int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange); + + /// Emits a direct typed expression for this mechanism. + /// The output builder. + /// The concrete property and notification timing. + void EmitObservation(SourceWriter sb, in ObservationExpression observation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformCommandBindingPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformCommandBindingPlugin.cs new file mode 100644 index 00000000..e5fd0195 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformCommandBindingPlugin.cs @@ -0,0 +1,17 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// Inspects native command contracts while the consumer's symbols are available. +internal interface IPlatformCommandBindingPlugin : ICommandBindingPlugin +{ + /// Offers the native route only when its required members are available. + /// The concrete control type. + /// The native member data, or null when ineligible. + NativeCommandInfo? InspectControl(INamedTypeSymbol control); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformObservationPlugin.cs new file mode 100644 index 00000000..81814757 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/IPlatformObservationPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// Owns symbol eligibility and direct emission for one platform notification mechanism. +internal interface IPlatformObservationPlugin : IObservationPlugin +{ + /// Offers a candidate only when the consumer exposes the required native members. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// Value-equatable emission data, or null when this plugin is ineligible. + PlatformObservationInfo? InspectProperty(INamedTypeSymbol owner, IPropertySymbol property); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/NullParentObservationBehavior.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/NullParentObservationBehavior.cs new file mode 100644 index 00000000..f6728d8f --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/NullParentObservationBehavior.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// Specifies what a generated deep-chain observer emits while its parent segment is null. +internal enum NullParentObservationBehavior +{ + /// Suppresses values until the parent becomes non-null. + SuppressEmission = 0, + + /// Emits the leaf type's default value so binding consumers can clear their target. + EmitDefault = 1, +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidObservation.cs new file mode 100644 index 00000000..cca2c994 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidObservation.cs @@ -0,0 +1,68 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes Android widget properties through their native typed events. +internal static class AndroidObservation +{ + /// The mechanism's identity. + internal const string Kind = "Android"; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + new(Kind, BindingAffinity.Explicit, Inspect, NativeEventSubscriptionEmitter.AppendSubscription); + + /// Offers a candidate for a widget property whose declaring widget raises its change event. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property) + { + var widget = WidgetFor(property.Name); + if (widget is null || !PlatformSymbols.DerivesFrom(property.ContainingType, widget)) + { + return null; + } + + var first = PlatformSymbols.FindEvent(owner, AndroidWidgetEvents.FindChangeEvent(property.Name)!); + if (first is null) + { + return null; + } + + var events = new EquatableArray([first]); + if (property.Name == "SelectedItem") + { + var second = PlatformSymbols.FindEvent(owner, "NothingSelected"); + if (second is null) + { + return null; + } + + events = new([first, second]); + } + + return new(Kind, BindingAffinity.Explicit, events, null, null, null); + } + + /// Names the widget that defines each observable property contract. + /// The observed property. + /// The native widget type, or null. + private static string? WidgetFor(string propertyName) => propertyName switch + { + "Text" => "Android.Widget.TextView", + "Value" => "Android.Widget.NumberPicker", + "Rating" => "Android.Widget.RatingBar", + "Checked" => "Android.Widget.CompoundButton", + "Date" => "Android.Widget.CalendarView", + "CurrentTab" => "Android.Widget.TabHost", + "SelectedItem" => "Android.Widget.AdapterView", + "Hour" or "Minute" or "CurrentHour" or "CurrentMinute" => "Android.Widget.TimePicker", + _ => null, + }; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidWidgetEvents.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidWidgetEvents.cs new file mode 100644 index 00000000..d089f072 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AndroidWidgetEvents.cs @@ -0,0 +1,89 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// The Android widget properties that report their own changes, and the event each reports them on. +/// +/// +/// An Android view is not observable in general: it implements no change-notification interface, and most of +/// its properties are plain CLR properties that change silently. A handful of widgets do raise an event for one +/// property, and that handful is the whole of what this mechanism reaches - the runtime engine keeps the same +/// list and scores everything outside it zero, so a property that is not here falls through to whatever else +/// the type carries rather than being observed badly. +/// +/// +/// Keyed by property name alone, which is enough: no two widgets in the list report different events for the +/// same property name, and a property only resolves at all on a type that declares it, so matching the name +/// implies the declaring widget and therefore the event. +/// +/// +internal static class AndroidWidgetEvents +{ + /// Finds the event a widget raises when the named property changes. + /// The property being observed. + /// The event name, or when no widget reports that property. + /// + /// Compared in order rather than looked up: the set is closed and known here, so nothing is built at + /// startup and nothing is held for the life of the generator. + /// + internal static string? FindChangeEvent(string propertyName) + { + // TextView and everything built on it. + if (propertyName == "Text") + { + return "TextChanged"; + } + + // NumberPicker. + if (propertyName == "Value") + { + return "ValueChanged"; + } + + // RatingBar. + if (propertyName == "Rating") + { + return "RatingBarChange"; + } + + // CompoundButton, and so CheckBox, RadioButton and Switch. + if (propertyName == "Checked") + { + return "CheckedChange"; + } + + // CalendarView. + if (propertyName == "Date") + { + return "DateChange"; + } + + // TabHost. + if (propertyName == "CurrentTab") + { + return "TabChanged"; + } + + // AdapterView, and so Spinner and ListView. + if (propertyName == "SelectedItem") + { + return "ItemSelected"; + } + + return IsTimePickerField(propertyName) ? "TimeChanged" : null; + } + + /// Determines whether a name is one of the fields TimePicker reports its time change for. + /// The property being observed. + /// when TimePicker reports it. + /// + /// The one widget in the list that names the same two values two ways: the hour and the minute are + /// Hour and Minute from API 23, and CurrentHour and CurrentMinute before it. + /// All four report on the same event. + /// + private static bool IsTimePickerField(string propertyName) => + propertyName == "Hour" || propertyName == "Minute" + || propertyName == "CurrentHour" || propertyName == "CurrentMinute"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppKitObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppKitObservation.cs new file mode 100644 index 00000000..b937da7a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppKitObservation.cs @@ -0,0 +1,43 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes AppKit control values through sender-scoped text-change notifications. +internal static class AppKitObservation +{ + /// The mechanism's identity. + internal const string Kind = "AppKit"; + + /// The native NSControl property observation score. + private const int ControlAffinity = 20; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + new(Kind, ControlAffinity, Inspect, AppleNotificationEmitter.AppendSubscription); + + /// Offers a candidate for an NSControl value whose type resolves the text-change notification. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property) + { + if (!Reports(property.Name) || !PlatformSymbols.DerivesFrom(owner, "AppKit.NSControl")) + { + return null; + } + + var notification = AppleNotificationEmitter.ResolveNotification(owner, "TextDidChangeNotification"); + return notification is null ? null : new(Kind, ControlAffinity, default, notification, null, null); + } + + /// Identifies the NSControl values covered by its native text notification. + /// The property name. + /// True for a supported native value. + internal static bool Reports(string name) => name is + "AlphaValue" or "DoubleValue" or "FloatValue" or "IntValue" or "NintValue" or "ObjectValue" or "StringValue" or "AttributedStringValue"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppleNotificationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppleNotificationEmitter.cs new file mode 100644 index 00000000..f7a20599 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/AppleNotificationEmitter.cs @@ -0,0 +1,41 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Resolves and emits sender-scoped Foundation notification subscriptions. +internal static class AppleNotificationEmitter +{ + /// Finds the public notification constant and its native notification center. + /// The concrete property owner. + /// The framework notification constant. + /// The fully qualified constant, or null when the contract is unavailable. + internal static string? ResolveNotification(INamedTypeSymbol owner, string memberName) + { + var member = PlatformSymbols.FindMember(owner, memberName); + return member is { IsStatic: true, DeclaredAccessibility: Accessibility.Public } + && member.ContainingAssembly.GetTypeByMetadataName("Foundation.NSNotificationCenter") is not null + ? $"{member.ContainingType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}.{memberName}" + : null; + } + + /// Attaches a sender-filtered notification and releases both its registration and token. + /// The writer, inside the subscription callback. + /// The property being observed. + /// The selected notification constant. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendSubscription(SourceWriter sb, PropertyPathSegment segment, PlatformObservationInfo info) => + sb.BeginVar("__token").Append("global::Foundation.NSNotificationCenter.DefaultCenter.AddObserver(") + .Append(info.NotificationName).Line(", __notification => __notify(), __source);") + .Line($"return new {GeneratedTypeNames.ActionDisposable}(() =>") + .OpenBlock() + .Line("global::Foundation.NSNotificationCenter.DefaultCenter.RemoveObserver(__token);") + .Line("__token.Dispose();") + .CloseBlock(");"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainRegistrationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainRegistrationEmitter.cs new file mode 100644 index 00000000..abb3beb3 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainRegistrationEmitter.cs @@ -0,0 +1,135 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Opens the choice that lets a registration observe one link of a chain in a mechanism's place. +/// +/// Every mechanism offers its links on the same terms, so the arguments are written once here and each plugin +/// supplies only the observation that follows them. All of it is fixed at compile time - the declaring type, +/// the property name, the accessor, and a lambda the compiler turns into member tokens - so a link honours a +/// registration without resolving anything by name, and a consumer publishing ahead-of-time carries no +/// expression engine for it. +/// +internal static class ChainRegistrationEmitter +{ + /// The opening a link inside a switch expression is written with. + internal const string TernaryOpening = "? "; + + /// + /// Writes the chooser and its arguments, leaving the writer one level deeper on a fresh line for the + /// mechanism's observation, which then closes. + /// + /// The writer, at the level of the line the choice starts on. + /// The expression naming the object the property is read from. + /// The property path segment being observed. + /// The affinity of the mechanism this link was built from. + /// Whether before-change notifications are being observed. + /// What the call is written after, which differs by the position it sits in. + /// + /// A link inside a switch expression is written after a ?; the first link of a chain and a + /// single-property observation are written after a return. The arguments are the same either way, so + /// the position is handed in rather than the call being written twice. + /// + internal static void AppendChoiceOpen( + SourceWriter sb, + string sourceExpression, + PropertyPathSegment segment, + int generatedAffinity, + bool isBeforeChange, + string opening = TernaryOpening) + { + var valueType = segment.PropertyTypeFullName; + var registration = $"__registration_{sourceExpression}"; + + _ = sb.Append(opening).Append($"({GeneratedTypeNames.ObservationAffinityChecker}.FindHigherAffinityPlugin(") + .Append(sourceExpression).Append(".GetType(), \"").Append(segment.PropertyName).Append("\", ") + .Append(generatedAffinity).Append(", ").AppendLiteral(isBeforeChange) + .Append(") is global::ReactiveUI.Binding.ICreatesObservableForProperty ").Append(registration) + .OpenContinuation() + .Append($"? ({GeneratedTypeNames.IObservable}<").Append(valueType) + .Append($">)new {GeneratedTypeNames.PluginPropertyObservable}<").Append(valueType).Append(">(") + .OpenContinuation(); + _ = AppendPluginObservableArguments(sb, registration, sourceExpression, segment, valueType, isBeforeChange) + .Line(", false)") + .Outdent() + .Append($": ({GeneratedTypeNames.IObservable}<").Append(valueType).Line(">)"); + } + + /// Closes the choice opened, once the mechanism's observation is written. + /// The writer, part way through the line the mechanism's observation ended on. + /// The writer, back at the level the choice started on, with the line left open. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter AppendChoiceClose(SourceWriter sb) => sb.Append(')').Outdent(); + + /// + /// Opens the stage that switches one link of a chain onto its parent's latest value, up to the test that the + /// parent is present, leaving the writer two levels deeper for the branch taken while it is. + /// + /// The writer, at the level of the statement the stage is declared in. + /// The parent stage, this stage, and the lambda's parent parameter. + /// The link the stage observes, whose declaring type the parent is typed as. + /// The type the stage's values are observed as. + /// + /// The parent is typed as the declaring type: IObservable is covariant, so a parent of a more derived + /// type still converts. + /// + internal static void AppendStageOpen(SourceWriter sb, in ChainStageVariables stage, PropertyPathSegment segment, string valueType) => + _ = sb.BeginVar(stage.CurrentObservable).Append("new ").Append(GeneratedTypeNames.SwitchMapSignal).Append('<') + .Append(segment.DeclaringTypeFullName).Append(", ").Append(valueType).Append(">(").Append(stage.PreviousObservable).Append(',') + .OpenContinuation() + .Append(stage.ParentParameter).Append(" => ").Append(stage.ParentParameter).Append(" != null") + .OpenContinuation(); + + /// Closes a chain stage with the branch taken while the parent is null, ending the statement. + /// The writer, on a fresh line after the branch taken while the parent is present. + /// The type the stage's values are observed as. + /// What the stage emits while its parent is null. + /// + /// An inner link emits its default so the stage below re-parents onto null and drops its subscription on the + /// detached subtree; a leaf that suppresses leaves its consumer as it was until the path is whole again. + /// + internal static void AppendStageClose(SourceWriter sb, string valueType, NullParentObservationBehavior nullParentBehavior) + { + _ = sb.Append($": ({GeneratedTypeNames.IObservable}<").Append(valueType).Append(">)"); + _ = nullParentBehavior == NullParentObservationBehavior.EmitDefault + ? sb.Append($"new {GeneratedTypeNames.ImmediateReturnSignal}<").Append(valueType) + .Append(">(default(").Append(valueType).Append("))") + : sb.Append($"{GeneratedTypeNames.ImmutableEmptySignal}<").Append(valueType).Append(">.Instance"); + _ = sb.Line(");").Outdent().Outdent(); + } + + /// + /// Writes the arguments that hand one link to a registration: the registration, the source, the member, its + /// name, its accessor and the notification timing, one per line. The caller writes what follows the timing. + /// + /// The writer, at the level the arguments are written at. + /// The expression naming the registration that won the link. + /// The expression naming the object the property is read from. + /// The property path segment being observed. + /// The type the link's values are observed as. + /// Whether before-change notifications are being observed. + /// The same writer, for chaining. + internal static SourceWriter AppendPluginObservableArguments( + SourceWriter sb, + string registration, + string sourceExpression, + PropertyPathSegment segment, + string valueType, + bool isBeforeChange) + { + var declaringType = segment.DeclaringTypeFullName; + return sb.Append(registration).Line(",") + .Append(sourceExpression).Line(",") + .Append($"(({GeneratedTypeNames.Expression}<{GeneratedTypeNames.Func}<").Append(declaringType).Append(", ") + .Append(valueType).Append(">>)(__e => __e.").Append(segment.PropertyName).Line(")).Body,") + .AppendQuoted(segment.PropertyName).Line(",") + .Append("(object __o) => ((").Append(declaringType).Append(")__o).").Append(segment.PropertyName).Line(",") + .AppendLiteral(isBeforeChange); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainStageVariables.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainStageVariables.cs new file mode 100644 index 00000000..a3f3585d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ChainStageVariables.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// The locals one stage of a generated observation chain reads from and writes to. +/// The local holding the stage before this one. +/// The local this stage is assigned to. +/// The name the switch lambda gives the parent value. +/// +/// The three travel together through every mechanism's stage emission and mean nothing apart, so they are +/// named once here rather than widening each emitter's parameter list by three. +/// +internal readonly record struct ChainStageVariables( + string PreviousObservable, + string CurrentObservable, + string ParentParameter); diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/DependencyPropertyObservationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/DependencyPropertyObservationEmitter.cs new file mode 100644 index 00000000..5298b738 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/DependencyPropertyObservationEmitter.cs @@ -0,0 +1,55 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Shares WinUI-compatible dependency-property symbol checks and callback-token emission. +internal static class DependencyPropertyObservationEmitter +{ + /// Creates the plugin for one framework's dependency objects. + /// The platform mechanism identity. + /// The namespace declaring native dependency objects. + /// The plugin that observes that framework's dependency properties. + internal static NativeObservationPlugin CreatePlugin(string kind, string frameworkNamespace) => + new( + kind, + BindingAffinity.WinUiDependencyObject, + (owner, property) => Inspect(owner, property, kind, frameworkNamespace), + AppendSubscription); + + /// Offers a native candidate only for a property with a concrete dependency-property member. + /// The concrete property owner. + /// The observed CLR property. + /// The platform mechanism identity. + /// The namespace declaring native dependency objects. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property, string kind, string frameworkNamespace) + { + var dependencyObject = $"{frameworkNamespace}.DependencyObject"; + return PlatformSymbols.DerivesFromOrImplements(owner, dependencyObject) + && PlatformSymbols.HasDependencyProperty(owner, property.Name, $"{frameworkNamespace}.DependencyProperty") + ? new(kind, BindingAffinity.WinUiDependencyObject, default, null, $"global::{dependencyObject}", null) + : null; + } + + /// Pairs a native callback token with deterministic unregistration. + /// The writer, inside the subscription callback. + /// The concrete observed property. + /// The verified native mechanism. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendSubscription(SourceWriter sb, PropertyPathSegment segment, PlatformObservationInfo info) => + sb.BeginVar("__token").Append("__source.RegisterPropertyChangedCallback(") + .Append(segment.DeclaringTypeFullName).Append('.').Append(segment.PropertyName) + .Line("Property, (__sender, __property) => __notify());") + .Line($"return new {GeneratedTypeNames.ActionDisposable}(() =>") + .Indent() + .Append("__source.UnregisterPropertyChangedCallback(").Append(segment.DeclaringTypeFullName) + .Append('.').Append(segment.PropertyName).Line("Property, __token));") + .Outdent(); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/INPCObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/INPCObservationPlugin.cs new file mode 100644 index 00000000..50052d91 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/INPCObservationPlugin.cs @@ -0,0 +1,51 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// +/// Observation plugin for types implementing . +/// Supports both after-change and before-change (if the type also implements INotifyPropertyChanging). +/// +internal sealed class INPCObservationPlugin : IObservationPlugin +{ + /// + public int Affinity => BindingAffinity.Explicit; + + /// + public string ObservationKind => "INPC"; + + /// + public bool SupportsBeforeChanged => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) + { + var supported = isBeforeChange ? classInfo.ImplementsINPChanging : classInfo.ImplementsINPC; + return supported ? Affinity : 0; + } + + /// + public bool IsAMatch(ClassBindingInfo classInfo) => + classInfo.ImplementsINPC && !classInfo.ImplementsIReactiveObject; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + NotifyPropertyEmitter.EmitShallowObservation( + sb, + observation.Source, + observation.Segment, + observation.SourceType, + observation.BeforeChange, + observation.Distinct); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KVOObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KVOObservationPlugin.cs new file mode 100644 index 00000000..5658b18a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KVOObservationPlugin.cs @@ -0,0 +1,130 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// +/// Observation plugin for Apple NSObject types (KVO support). +/// Affinity: 15 (matches ReactiveUI's KVOObservableForProperty — highest affinity). +/// Supports both after-change and before-change notifications via KVO options. +/// Generates inline __KVOObservable using NSObject.AddObserver / +/// NSObject.RemoveObserver with compile-time resolved KVO key paths. +/// +/// +/// +/// KVO key paths are resolved at compile time from the .NET property name using the +/// standard naming convention: lowercase first character (e.g., Text → "text"). +/// Boolean properties use the Is prefix (e.g., Enabled → "isEnabled"). +/// +/// +/// The generated __KVOObserver class inherits NSObject and overrides +/// ObserveValue to forward KVO notifications, matching ReactiveUI's +/// BlockObserveValueDelegate pattern. A GCHandle pins the observer +/// for the subscription lifetime. +/// +/// +internal sealed class KVOObservationPlugin : IPlatformObservationPlugin +{ + /// + /// The affinity score for the Apple KVO observation plugin + /// (matches ReactiveUI's KVOObservableForProperty — highest affinity). + /// + private static readonly int KVOAffinity = BindingAffinity.Kvo; + + /// + public int Affinity => KVOAffinity; + + /// + public string ObservationKind => "KVO"; + + /// + public bool SupportsBeforeChanged => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) => + IsAMatch(classInfo) && CanObserveProperty(classInfo, propertyName) ? Affinity : 0; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAMatch(ClassBindingInfo classInfo) => + classInfo.InheritsNSObject; + + /// + /// + /// Key-value observing reaches the properties the Apple frameworks declare, because those are the ones the + /// Obj-C runtime backs. A property an application adds to its own subclass of one of them is an ordinary + /// CLR property that no key path resolves, so it falls through to whatever mechanism the type also carries. + /// The runtime engine draws the same line by asking which assembly declares the member. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => + ObservedProperties.Find(classInfo, propertyName) is { SymbolsInspected: true } + ? PlatformSymbols.Candidate(classInfo, propertyName, ObservationKind) is not null + : !ObservedProperties.IsDeclaredByConsumer(classInfo, propertyName); + + /// + public PlatformObservationInfo? InspectProperty(INamedTypeSymbol owner, IPropertySymbol property) + { + if (!PlatformSymbols.DerivesFrom(owner, "Foundation.NSObject")) + { + return null; + } + + var selector = property.GetMethod is { } getter ? ExportedSelector(getter) : null; + selector ??= ExportedSelector(property); + if (selector is null && IsNativeDeclaration(owner, property)) + { + selector = KvoObservationEmitter.ToKvoKeyPath(property.Name, property.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)); + } + + return selector is null ? null : new(ObservationKind, Affinity, default, null, null, selector); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + KvoObservationEmitter.Emit(sb, observation.Source, observation.Segment, observation.SourceType, observation.BeforeChange, observation.Distinct); + + /// Recognizes properties declared by the assembly supplying NSObject. + /// The concrete observed type. + /// The selected property declaration. + /// True when the declaration belongs to the native framework. + internal static bool IsNativeDeclaration(INamedTypeSymbol owner, IPropertySymbol property) + { + for (var current = owner; current is not null; current = current.BaseType) + { + if (NativeTypeIdentity.Matches(current, "Foundation.NSObject")) + { + return SymbolEqualityComparer.Default.Equals(property.ContainingAssembly, current.ContainingAssembly); + } + } + + return false; + } + + /// Reads a Foundation export selector without loading the platform assembly. + /// The property or getter carrying export metadata. + /// The getter selector, or null. + private static string? ExportedSelector(ISymbol symbol) + { + foreach (var attribute in symbol.GetAttributes()) + { + if (NativeTypeIdentity.Matches(attribute.AttributeClass, "Foundation.ExportAttribute") + && !attribute.ConstructorArguments.IsEmpty + && attribute.ConstructorArguments[0].Value is string selector + && selector.Length > 0 && selector.IndexOf(':') < 0) + { + return selector; + } + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KvoObservationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KvoObservationEmitter.cs new file mode 100644 index 00000000..993c45a7 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/KvoObservationEmitter.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Emits Apple KVO observations through the runtime's key-value observing observable. +internal static class KvoObservationEmitter +{ + /// Emits a typed native property observation. + /// The output builder. + /// The observed source variable. + /// The observed property. + /// The concrete source type. + /// Whether to observe before the change. + /// Whether equal consecutive values are suppressed. + internal static void Emit( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool isBeforeChange, + bool includeStartWith) + { + var keyPath = ResolveKeyPath(segment); + _ = sb.Append(GeneratedTypeNames.OpenKvoProperty).Append(segment.PropertyTypeFullName).Append(">(").Append($"({GeneratedTypeNames.NSObject})") + .Append(rootVar).Append(", ").Append('"').Append(keyPath).Append("\", ").Append($"({GeneratedTypeNames.NSObject} __o) => ((") + .Append(castTypeName).Append(GeneratedSyntax.ObserverCastClose).Append(segment.PropertyName).Append(", ").Append(BoolLiteral(includeStartWith)).Append(", ") + .Append(BoolLiteral(isBeforeChange)).Append(')'); + } + + /// + /// Converts a .NET property name to a KVO key path using the standard naming convention. + /// Boolean properties get an "Is" prefix unless they already start with "Is" + /// (e.g., Enabled → "isEnabled", but IsEnabled → "isEnabled"). + /// All others: lowercase first character (e.g., Text → "text"). + /// + /// The .NET property name. + /// The fully qualified property type (e.g., "bool", "string"). + /// The KVO key path string. + internal static string ToKvoKeyPath(string propertyName, string propertyTypeFullName) + { + if (propertyTypeFullName == "bool" && !propertyName.StartsWith("Is", StringComparison.Ordinal)) + { + propertyName = $"Is{propertyName}"; + } + + return propertyName.Length == 0 ? propertyName : char.ToLowerInvariant(propertyName[0]) + propertyName[1..]; + } + + /// Renders a boolean as the lowercase C# literal text (true/false) for emission into generated source. + /// The boolean value. + /// "true" or "false". + private static string BoolLiteral(bool value) => value ? "true" : "false"; + + /// Uses the exported getter selector verified by symbol inspection. + /// The property to observe. + /// The native key path, escaped for a generated string literal. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static string ResolveKeyPath(PropertyPathSegment segment) => + CodeGeneratorHelpers.EscapeString(PlatformSymbols.Candidate(segment.DeclaringTypeInfo, segment.PropertyName, "KVO")?.KvoKeyPath + ?? ToKvoKeyPath(segment.PropertyName, segment.PropertyTypeFullName)); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeEventSubscriptionEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeEventSubscriptionEmitter.cs new file mode 100644 index 00000000..fddbfe78 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeEventSubscriptionEmitter.cs @@ -0,0 +1,43 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Emits concrete native event delegates and their matching removal. +internal static class NativeEventSubscriptionEmitter +{ + /// Attaches the events a mechanism verified for one property, for a plugin that observes through events alone. + /// The output builder. + /// The observed property. + /// The selected native mechanism, which carries the verified events. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void AppendSubscription(SourceWriter sb, PropertyPathSegment segment, PlatformObservationInfo info) => + Append(sb, info.Events); + + /// Attaches every event required by the selected property contract. + /// The writer, inside the subscription callback. + /// The verified event names and delegate types. + internal static void Append(SourceWriter sb, EquatableArray events) + { + for (var i = 0; i < events.Length; i++) + { + _ = sb.Append(events[i].HandlerType).Append(" __handler").Append(i) + .Line(" = (__sender, __args) => __notify();") + .Append("__source.").Append(events[i].Name).Append(" += __handler").Append(i).EndStatement(); + } + + _ = sb.Line($"return new {GeneratedTypeNames.ActionDisposable}(() =>") + .OpenBlock(); + for (var i = 0; i < events.Length; i++) + { + _ = sb.Append("__source.").Append(events[i].Name).Append(" -= __handler").Append(i).EndStatement(); + } + + _ = sb.CloseBlock(");"); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationEmitter.cs new file mode 100644 index 00000000..dd0f8844 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationEmitter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Emits a typed observation around a platform's native attachment statements. +internal static class NativeObservationEmitter +{ + /// Combines a concrete getter with a selected native subscription. + /// The output builder. + /// The typed source and property. + /// The selected mechanism's identity. + /// The mechanism's static subscription emitter. + internal static void Emit( + SourceWriter sb, + in ObservationExpression observation, + string kind, + Action emitSubscription) + { + var segment = observation.Segment; + var info = PlatformSymbols.Candidate(segment.DeclaringTypeInfo, segment.PropertyName, kind); + if (observation.BeforeChange || info is null) + { + _ = UnchangingObservationEmitter.AppendExpression(sb, observation.Source, segment, observation.SourceType); + return; + } + + _ = sb.Append(GeneratedTypeNames.OpenCallbackProperty).Append(observation.SourceType).Append(", ") + .Append(segment.PropertyTypeFullName).Append(">((").Append(observation.SourceType).Append(')').Append(observation.Source) + .Line(", (__source, __notify) =>") + .Indent() + .OpenBlock(); + emitSubscription(sb, segment, info); + _ = sb.CloseBlockInline().Append(", __source => __source.").Append(segment.PropertyName) + .Append(", ").AppendLiteral(observation.Distinct).Append(')') + .Outdent(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationPlugin.cs new file mode 100644 index 00000000..17066f5a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NativeObservationPlugin.cs @@ -0,0 +1,73 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes a property through one platform's native after-change notification. +/// +/// A platform supplies the parts that differ: its identity, its affinity, which properties it reaches, and the +/// statements that attach to the notification and detach from it. Every native mechanism answers the registry the +/// same way from those parts, and wraps its statements in the runtime's CallbackPropertyObservable. +/// +internal sealed class NativeObservationPlugin : IPlatformObservationPlugin +{ + /// Offers the platform's candidate for one property, or null when the platform does not reach it. + private readonly Func _inspect; + + /// Emits the statements that attach to the platform's notification and detach from it. + private readonly Action _appendSubscription; + + /// Initializes a new instance of the class. + /// The platform mechanism's identity. + /// The score the mechanism competes with. + /// Offers the platform's candidate for one property. + /// Emits the statements that attach to the notification and detach from it. + internal NativeObservationPlugin( + string observationKind, + int affinity, + Func inspect, + Action appendSubscription) + { + ObservationKind = observationKind; + Affinity = affinity; + _inspect = inspect; + _appendSubscription = appendSubscription; + } + + /// + public int Affinity { get; } + + /// + public string ObservationKind { get; } + + /// + public bool SupportsBeforeChanged => false; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) => + !isBeforeChange && CanObserveProperty(classInfo, propertyName) ? Affinity : 0; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public PlatformObservationInfo? InspectProperty(INamedTypeSymbol owner, IPropertySymbol property) => + _inspect(owner, property); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAMatch(ClassBindingInfo classInfo) => PlatformSymbols.HasCandidate(classInfo, ObservationKind); + + /// + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => + PlatformSymbols.Candidate(classInfo, propertyName, ObservationKind) is not null; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + NativeObservationEmitter.Emit(sb, observation, ObservationKind, _appendSubscription); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NotifyPropertyEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NotifyPropertyEmitter.cs new file mode 100644 index 00000000..a7ae3fa7 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/NotifyPropertyEmitter.cs @@ -0,0 +1,53 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// +/// The observation emission shared by every plugin that watches a type through +/// and +/// . +/// +/// +/// A plain INPC type and an IReactiveObject differ only in which plugin claims them and at what +/// affinity - IReactiveObject implements both interfaces, so the code emitted for the two is the +/// same PropertyObservable / PropertyChangingObservable either way. The emission lives here +/// once so the two plugins stay in step. +/// +internal static class NotifyPropertyEmitter +{ + /// Emits a shallow observation as an inline expression. + /// The writer, part way through the line the expression belongs to. + /// The variable holding the observed object. + /// The property path segment being observed. + /// The type the observed object is cast to. + /// True for before-change observation. + /// Whether the observation emits the current value on subscribe. + internal static void EmitShallowObservation( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool isBeforeChange, + bool includeStartWith) + { + var read = GeneratedTypeNames.ReadProperty(segment, castTypeName, "__o"); + if (isBeforeChange) + { + _ = sb.Append($"new {GeneratedTypeNames.PropertyChangingObservable}<").Append(segment.PropertyTypeFullName).Append(">((") + .Append($"{GeneratedTypeNames.INotifyPropertyChanging})").Append(rootVar).Append(", ").AppendQuoted(segment.PropertyName) + .Append($", ({GeneratedTypeNames.INotifyPropertyChanging} __o) => ") + .Append(read).Append(')'); + return; + } + + _ = sb.Append($"new {GeneratedTypeNames.PropertyObservable}<").Append(segment.PropertyTypeFullName).Append(">(") + .Append(rootVar).Append(", ").AppendQuoted(segment.PropertyName) + .Append($", ({GeneratedTypeNames.INotifyPropertyChanged} __o) => ").Append(read) + .Append(", ").AppendLiteral(includeStartWith).Append(')'); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ObservationEmissionExtensions.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ObservationEmissionExtensions.cs new file mode 100644 index 00000000..f328b316 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ObservationEmissionExtensions.cs @@ -0,0 +1,111 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Composes property expressions into locals and typed observation chains. +internal static class ObservationEmissionExtensions +{ + /// Composes the selected mechanism into the surrounding observation. + /// The selected property observation mechanism. + extension(IObservationPlugin plugin) + { + /// Emits one property expression with the requested notification timing. + /// The output builder. + /// The source variable. + /// The observed property. + /// The concrete source type. + /// Whether to observe before the change. + /// Whether equal consecutive values are suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void EmitShallowObservation( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool isBeforeChange, + bool includeStartWith) => + plugin.EmitObservation(sb, new(rootVar, segment, castTypeName, isBeforeChange, includeStartWith)); + + /// Assigns a typed observation to a local. + /// The output builder. + /// The source variable. + /// The observed property. + /// The concrete source type. + /// Whether to observe before the change. + /// The resulting observable local. + internal void EmitShallowObservationVariable( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool isBeforeChange, + string varName) + { + _ = sb.BeginVar(varName); + plugin.EmitShallowObservation(sb, rootVar, segment, castTypeName, isBeforeChange, true); + _ = sb.EndStatement(); + } + + /// Emits the root observation that owns a property chain. + /// The output builder. + /// The source variable. + /// The observed property. + /// The concrete source type. + /// Whether to observe before the change. + /// The resulting observable local. + internal void EmitDeepChainRootSegment( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool isBeforeChange, + string obsVarName) + { + _ = sb.BeginVar(obsVarName); + plugin.EmitShallowObservation(sb, rootVar, segment, castTypeName, isBeforeChange, false); + _ = sb.EndStatement(); + } + + /// Emits an after-change observation used by a binding. + /// The output builder. + /// The source variable. + /// The observed property. + /// The concrete source type. + /// The resulting observable local. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal void EmitInlineObservationVariable( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + string varName) => + plugin.EmitShallowObservationVariable(sb, rootVar, segment, castTypeName, false, varName); + + /// Re-subscribes a property whenever its parent changes, preserving custom-provider voting. + /// The output builder. + /// The chain's observable locals and parent parameter. + /// The observed property. + /// Whether to observe before the change. + /// The delivery behavior while the parent is null. + internal void EmitDeepChainInnerSegment( + SourceWriter sb, + ChainStageVariables stage, + PropertyPathSegment segment, + bool isBeforeChange, + NullParentObservationBehavior nullParentBehavior) + { + var valueType = segment.PropertyTypeFullName; + ChainRegistrationEmitter.AppendStageOpen(sb, stage, segment, valueType); + ChainRegistrationEmitter.AppendChoiceOpen(sb, stage.ParentParameter, segment, plugin.Affinity, isBeforeChange); + plugin.EmitShallowObservation(sb, stage.ParentParameter, segment, segment.DeclaringTypeFullName, isBeforeChange, false); + _ = ChainRegistrationEmitter.AppendChoiceClose(sb).EndLine(); + ChainRegistrationEmitter.AppendStageClose(sb, valueType, nullParentBehavior); + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PlatformSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PlatformSymbols.cs new file mode 100644 index 00000000..8e2ec362 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PlatformSymbols.cs @@ -0,0 +1,144 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Provides symbol navigation shared by platform plugins. +internal static class PlatformSymbols +{ + /// The sender and event-arguments parameters of a native event delegate. + private const int EventParameterCount = 2; + + /// Checks whether a type has any property eligible for a mechanism. + /// The extracted type data. + /// The mechanism identity. + /// True when at least one property offers that candidate. + internal static bool HasCandidate(ClassBindingInfo info, string kind) + { + for (var i = 0; i < info.Properties.Length; i++) + { + if (Candidate(info, info.Properties[i].PropertyName, kind) is not null) + { + return true; + } + } + + return false; + } + + /// Checks a framework base identity, including the type itself. + /// The consumer type. + /// The framework type name. + /// True when the type derives from the named framework type. + internal static bool DerivesFrom(INamedTypeSymbol type, string metadataName) + { + for (var current = type; current is not null; current = current.BaseType) + { + if (NativeTypeIdentity.Matches(current, metadataName)) + { + return true; + } + } + + return false; + } + + /// Checks a framework base identity, or an interface of that name the type implements. + /// The consumer type. + /// The framework type name. + /// True when the type derives from or implements the named framework type. + /// Uno declares DependencyObject as an interface on its non-Windows heads. + internal static bool DerivesFromOrImplements(INamedTypeSymbol type, string metadataName) + { + if (DerivesFrom(type, metadataName)) + { + return true; + } + + var interfaces = type.AllInterfaces; + for (var i = 0; i < interfaces.Length; i++) + { + if (NativeTypeIdentity.Matches(interfaces[i], metadataName)) + { + return true; + } + } + + return false; + } + + /// Finds a member through the base chain, honoring member hiding. + /// The type exposing the member. + /// The member name. + /// The nearest declaration, or null. + internal static ISymbol? FindMember(INamedTypeSymbol owner, string name) + { + for (var type = owner; type is not null; type = type.BaseType) + { + var members = type.GetMembers(name); + if (!members.IsEmpty) + { + return members[0]; + } + } + + return null; + } + + /// Accepts public instance events with two-argument void delegates. + /// The type exposing the event. + /// The event name. + /// Concrete event metadata, or null. + internal static NotificationEventInfo? FindEvent(INamedTypeSymbol owner, string name) => + FindMember(owner, name) is IEventSymbol { IsStatic: false, DeclaredAccessibility: Accessibility.Public, Type: INamedTypeSymbol delegateType } + && delegateType.DelegateInvokeMethod is { ReturnsVoid: true, Parameters.Length: EventParameterCount } invoke + && invoke.Parameters[0].RefKind == RefKind.None && invoke.Parameters[1].RefKind == RefKind.None + ? new(name, delegateType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)) + : null; + + /// Verifies the public native member backing a CLR dependency property. + /// The type exposing the member. + /// The observed CLR property name. + /// The framework dependency-property type. + /// True when a static field or readable property has the required type. + internal static bool HasDependencyProperty(INamedTypeSymbol owner, string propertyName, string metadataName) + { + var type = FindMember(owner, $"{propertyName}Property") switch + { + IFieldSymbol { IsStatic: true, DeclaredAccessibility: Accessibility.Public } field => field.Type, + IPropertySymbol { IsStatic: true, GetMethod.DeclaredAccessibility: Accessibility.Public } property => property.Type, + _ => null, + }; + return NativeTypeIdentity.Matches(type, metadataName); + } + + /// Gets one plugin's verified candidate for a property. + /// The type's extracted property data. + /// The property name. + /// The plugin identity. + /// The matching candidate, or null. + internal static PlatformObservationInfo? Candidate(ClassBindingInfo? info, string name, string kind) + { + var property = info is null ? null : ObservedProperties.Find(info, name); + if (property is null) + { + return null; + } + + for (var i = 0; i < property.PlatformObservations.Length; i++) + { + var candidate = property.PlatformObservations[i]; + if (candidate.Kind == kind) + { + return candidate; + } + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PocoObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PocoObservationPlugin.cs new file mode 100644 index 00000000..325f3f74 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/PocoObservationPlugin.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Reads a non-notifying property at subscription time and keeps the observation open. +internal sealed class PocoObservationPlugin : IObservationPlugin +{ + /// + public int Affinity => BindingAffinity.Fallback; + + /// + public string ObservationKind => "POCO"; + + /// + public bool SupportsBeforeChanged => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAMatch(ClassBindingInfo classInfo) => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) => Affinity; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + sb.Append(GeneratedTypeNames.OpenDeferredProperty).Append(observation.SourceType).Append(", ") + .Append(observation.Segment.PropertyTypeFullName).Append(">(").Append(observation.Source) + .Append(", __source => ").Append(GeneratedTypeNames.ReadProperty(observation.Segment, observation.SourceType, "__source")) + .Append(')'); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ReactiveObjectObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ReactiveObjectObservationPlugin.cs new file mode 100644 index 00000000..97928777 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/ReactiveObjectObservationPlugin.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// +/// Observation plugin for types implementing IReactiveObject, which claims them ahead of the +/// plain INPC plugin. IReactiveObject implements both notification interfaces, so the emitted +/// observation is the same. +/// +internal sealed class ReactiveObjectObservationPlugin : IObservationPlugin +{ + /// + public int Affinity => BindingAffinity.ExactType; + + /// + public string ObservationKind => "ReactiveObject"; + + /// + public bool SupportsBeforeChanged => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) => + IsAMatch(classInfo) ? Affinity : 0; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAMatch(ClassBindingInfo classInfo) => classInfo.ImplementsIReactiveObject; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + NotifyPropertyEmitter.EmitShallowObservation( + sb, + observation.Source, + observation.Segment, + observation.SourceType, + observation.BeforeChange, + observation.Distinct); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitObservation.cs new file mode 100644 index 00000000..e8782b39 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitObservation.cs @@ -0,0 +1,94 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes UIKit text, selection, date and switch properties through their native notifications. +internal static class UIKitObservation +{ + /// The mechanism's identity. + internal const string Kind = "UIKit"; + + /// The native UIKit property-specific score. + private const int PropertyAffinity = 30; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = new(Kind, PropertyAffinity, Inspect, AppendSubscription); + + /// Offers a candidate for a text control's notification or a control's typed change event. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property) + { + var notification = NotificationFor(owner, property.Name); + if (notification is not null) + { + return new(Kind, PropertyAffinity, default, notification, null, null); + } + + var widget = property.Name switch + { + "Date" => "UIKit.UIDatePicker", + "SelectedSegment" => "UIKit.UISegmentedControl", + "On" => "UIKit.UISwitch", + "SelectedItem" => "UIKit.UITabBar", + "Text" => "UIKit.UISearchBar", + _ => null, + }; + if (widget is null || !PlatformSymbols.DerivesFrom(owner, widget)) + { + return null; + } + + var eventName = property.Name switch + { + "SelectedItem" => "ItemSelected", + "Text" => "TextChanged", + _ => "ValueChanged", + }; + var changeEvent = PlatformSymbols.FindEvent(owner, eventName); + return changeEvent is null ? null : new(Kind, PropertyAffinity, new([changeEvent]), null, null, null); + } + + /// Emits the native notification selected for this property. + /// The output builder. + /// The observed property. + /// The verified native notification. + internal static void AppendSubscription(SourceWriter sb, PropertyPathSegment segment, PlatformObservationInfo info) + { + if (info.NotificationName is not null) + { + AppleNotificationEmitter.AppendSubscription(sb, segment, info); + } + else + { + NativeEventSubscriptionEmitter.Append(sb, info.Events); + } + } + + /// Resolves sender-scoped text notifications for UIKit text controls. + /// The property owner. + /// The property name. + /// The notification constant, or null. + internal static string? NotificationFor(INamedTypeSymbol owner, string name) + { + if (name != "Text") + { + return null; + } + + if (PlatformSymbols.DerivesFrom(owner, "UIKit.UITextField")) + { + return AppleNotificationEmitter.ResolveNotification(owner, "TextFieldTextDidChangeNotification"); + } + + return PlatformSymbols.DerivesFrom(owner, "UIKit.UITextView") + ? AppleNotificationEmitter.ResolveNotification(owner, "TextDidChangeNotification") + : null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitValueObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitValueObservation.cs new file mode 100644 index 00000000..8c17e371 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UIKitValueObservation.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes the value exposed by UIKit controls through their native value-change event. +internal static class UIKitValueObservation +{ + /// The mechanism's identity. + internal const string Kind = "UIKitValue"; + + /// The native UIControl value observation score. + private const int ValueAffinity = 20; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + new(Kind, ValueAffinity, Inspect, NativeEventSubscriptionEmitter.AppendSubscription); + + /// Offers a candidate for a UIControl's Value when the control declares ValueChanged. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property) + { + if (property.Name != "Value" || !PlatformSymbols.DerivesFrom(owner, "UIKit.UIControl")) + { + return null; + } + + var changeEvent = PlatformSymbols.FindEvent(owner, "ValueChanged"); + return changeEvent is null ? null : new(Kind, ValueAffinity, new([changeEvent]), null, null, null); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnchangingObservationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnchangingObservationEmitter.cs new file mode 100644 index 00000000..c46c5cea --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnchangingObservationEmitter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Emits the observation for a property whose mechanism cannot report the change asked about. +/// +/// +/// Every platform mechanism answers one timing. A dependency property, a WinUI dependency property and a +/// WinForms companion event all report a change after it happened and have nothing to say before it, so a +/// before-change observation of one of them has no mechanism at all - which is the same position a plain +/// CLR property is in, and it takes the same answer: the value as it stands, once, and then silence. +/// +/// +/// The value matters. Reporting default(T) would say the property is empty when it is not, and a +/// binding reading it would clear its target on the strength of that. The runtime engine reports what the +/// property actually holds. +/// +/// +internal static class UnchangingObservationEmitter +{ + /// Appends the observation as a bare expression, for a caller assembling a larger one. + /// The string builder to append to. + /// The variable the property is read from. + /// The property being read. + /// The type the root is cast to before the read. + /// The same string builder. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static SourceWriter AppendExpression( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName) => + sb.Append(GeneratedTypeNames.OpenUnchangingProperty).Append(segment.PropertyTypeFullName) + .Append(">(((").Append(castTypeName).Append(')').Append(rootVar).Append(").") + .Append(segment.PropertyName).Append(')'); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnoObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnoObservation.cs new file mode 100644 index 00000000..3a016b07 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/UnoObservation.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes dependency properties exposed through Uno's Windows UI namespace. +internal static class UnoObservation +{ + /// The mechanism's identity. + internal const string Kind = "UnoDP"; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + DependencyPropertyObservationEmitter.CreatePlugin(Kind, "Windows.UI.Xaml"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinFormsObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinFormsObservation.cs new file mode 100644 index 00000000..0c8ecdf9 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinFormsObservation.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes WinForms component properties through their concrete change events. +internal static class WinFormsObservation +{ + /// The mechanism's identity. + internal const string Kind = "WinForms"; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + new(Kind, BindingAffinity.WinFormsEvent, Inspect, NativeEventSubscriptionEmitter.AppendSubscription); + + /// Offers a candidate for a component property that declares a {Name}Changed event. + /// The concrete type through which the property is accessed. + /// The property being observed. + /// The eligible candidate, or null. + internal static PlatformObservationInfo? Inspect(INamedTypeSymbol owner, IPropertySymbol property) + { + if (!PlatformSymbols.DerivesFrom(owner, "System.ComponentModel.Component")) + { + return null; + } + + var changeEvent = PlatformSymbols.FindEvent(owner, $"{property.Name}Changed"); + return changeEvent is null ? null : new(Kind, BindingAffinity.WinFormsEvent, new([changeEvent]), null, null, null); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinUIObservation.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinUIObservation.cs new file mode 100644 index 00000000..2cd694c8 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WinUIObservation.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes WinUI dependency properties through native callback tokens. +internal static class WinUIObservation +{ + /// The mechanism's identity. + internal const string Kind = "WinUIDP"; + + /// Gets the plugin the registry selects this mechanism through. + internal static NativeObservationPlugin Plugin { get; } = + DependencyPropertyObservationEmitter.CreatePlugin(Kind, "Microsoft.UI.Xaml"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationEmitter.cs new file mode 100644 index 00000000..c98660f0 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationEmitter.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Emits WPF dependency-property observation with a typed getter. +internal static class WpfObservationEmitter +{ + /// Closes the descriptor lookup and subscribes the generated handler. + private const string AddValueChangedCall = ")).AddValueChanged("; + + /// Closes the descriptor lookup and unsubscribes the generated handler. + private const string RemoveValueChangedCall = ")).RemoveValueChanged("; + + /// Emits a typed native property observation. + /// The output builder. + /// The observed source variable. + /// The observed property. + /// The concrete source type. + /// Whether equal consecutive values are suppressed. + internal static void Emit( + SourceWriter sb, + string rootVar, + PropertyPathSegment segment, + string castTypeName, + bool includeStartWith) => + _ = sb.Append($"new {GeneratedTypeNames.Observables}.EventObservable<").Append(segment.PropertyTypeFullName).Append(">(") + .Append("__h => global::System.ComponentModel.DependencyPropertyDescriptor.FromProperty(").Append(castTypeName).Append('.') + .Append(segment.PropertyName).Append("Property,").Append(" typeof(").Append(castTypeName).Append(AddValueChangedCall).Append(rootVar) + .Append(", __h), ").Append("__h => global::System.ComponentModel.DependencyPropertyDescriptor.FromProperty(").Append(castTypeName).Append('.') + .Append(segment.PropertyName).Append("Property,").Append(" typeof(").Append(castTypeName).Append(RemoveValueChangedCall).Append(rootVar) + .Append(", __h), ").Append("() => ((").Append(castTypeName).Append(')').Append(rootVar).Append(").").Append(segment.PropertyName).Append(", ") + .AppendLiteral(includeStartWith).Append(')'); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationPlugin.cs new file mode 100644 index 00000000..b951bc1e --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/Observation/WpfObservationPlugin.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +/// Observes WPF dependency properties through DependencyPropertyDescriptor.AddValueChanged. +internal sealed class WpfObservationPlugin : IPlatformObservationPlugin +{ + /// The affinity this plugin bids with. + private static readonly int WpfAffinity = BindingAffinity.WpfDependencyObject; + + /// + public int Affinity => WpfAffinity; + + /// + public string ObservationKind => "WpfDP"; + + /// + public bool SupportsBeforeChanged => false; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetAffinityForProperty(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange) => + IsAMatch(classInfo) && CanObserveProperty(classInfo, propertyName) ? Affinity : 0; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAMatch(ClassBindingInfo classInfo) => + classInfo.InheritsWpfDependencyObject; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanObserveProperty(ClassBindingInfo classInfo, string propertyName) => + ObservedProperties.Find(classInfo, propertyName) is { SymbolsInspected: true } + ? PlatformSymbols.Candidate(classInfo, propertyName, ObservationKind) is not null + : ObservedProperties.IsDependencyProperty(classInfo, propertyName); + + /// + public PlatformObservationInfo? InspectProperty(INamedTypeSymbol owner, IPropertySymbol property) => + PlatformSymbols.DerivesFrom(owner, "System.Windows.DependencyObject") + && PlatformSymbols.HasDependencyProperty(owner, property.Name, "System.Windows.DependencyProperty") + ? new(ObservationKind, Affinity, default, null, "global::System.Windows.DependencyObject", null) + : null; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void EmitObservation(SourceWriter sb, in ObservationExpression observation) => + WpfObservationEmitter.Emit(sb, observation.Source, observation.Segment, observation.SourceType, observation.Distinct); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservationPluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservationPluginRegistry.cs new file mode 100644 index 00000000..443f02ff --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservationPluginRegistry.cs @@ -0,0 +1,122 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// Selects the strongest eligible observation mechanism, preserving declaration order for ties. +internal static class ObservationPluginRegistry +{ + /// The supported mechanisms in deterministic tie order. + private static readonly IObservationPlugin[] Plugins = + [ + new KVOObservationPlugin(), // Affinity 15 - Apple NSObject KVO + UIKitObservation.Plugin, + UIKitValueObservation.Plugin, + AppKitObservation.Plugin, + new ReactiveObjectObservationPlugin(), // Affinity 10 - IReactiveObject + WinFormsObservation.Plugin, // Affinity 8 - WinForms Component + WinUIObservation.Plugin, // Affinity 6 - WinUI DependencyObject + UnoObservation.Plugin, + new INPCObservationPlugin(), // Affinity 5 - INotifyPropertyChanged + AndroidObservation.Plugin, // Affinity 5 - Android View + new WpfObservationPlugin(), // Affinity 4 - WPF DependencyObject + new PocoObservationPlugin() + ]; + + /// Gets the total number of registered plugins. + internal static int Count => Plugins.Length; + + /// Gets the highest-affinity plugin that can handle the given type. + /// The type-level binding info. + /// The best matching plugin, or if no plugin matches. + internal static IObservationPlugin? GetBestPlugin(ClassBindingInfo classInfo) + { + IObservationPlugin? best = null; + for (var i = 0; i < Plugins.Length; i++) + { + var candidate = Plugins[i]; + if (candidate.IsAMatch(classInfo) && (best is null || candidate.Affinity > best.Affinity)) + { + best = candidate; + } + } + + return best; + } + + /// Gets the highest-affinity plugin whose mechanism reaches one particular property. + /// The type-level binding info. + /// The property being observed. + /// Whether the mechanism must report before the property changes. + /// The best matching plugin, or if none reaches that property. + /// + /// A mechanism that outranks another on the type can still be the wrong one for a given property - a + /// component that also raises PropertyChanged declares properties with no change event - so a plugin that + /// cannot reach the property is passed over for the next, exactly as a zero affinity would be at runtime. + /// + internal static IObservationPlugin? GetBestPlugin(ClassBindingInfo classInfo, string propertyName, bool isBeforeChange = false) + { + IObservationPlugin? best = null; + var bestScore = 0; + for (var i = 0; i < Plugins.Length; i++) + { + var candidate = Plugins[i]; + var score = candidate.GetAffinityForProperty(classInfo, propertyName, isBeforeChange); + if (score <= bestScore) + { + continue; + } + + best = candidate; + bestScore = score; + } + + return best; + } + + /// Collects eligible platform candidates while property symbols are available. + /// The concrete type exposing the property. + /// The property to inspect. + /// Value-equatable candidates for subsequent affinity voting. + internal static EquatableArray InspectProperty(INamedTypeSymbol owner, IPropertySymbol property) + { + var candidates = new List(); + for (var i = 0; i < Plugins.Length; i++) + { + if (Plugins[i] is IPlatformObservationPlugin platform && platform.InspectProperty(owner, property) is { } candidate) + { + candidates.Add(candidate); + } + } + + return new([.. candidates]); + } + + /// Gets a plugin by its observation kind identifier. + /// The observation kind (e.g., "INPC", "WpfDP"). + /// The matching plugin, or if not found. + internal static IObservationPlugin? GetPluginByKind(string observationKind) + { + for (var i = 0; i < Plugins.Length; i++) + { + if (Plugins[i].ObservationKind == observationKind) + { + return Plugins[i]; + } + } + + return null; + } + + /// Gets the plugin at the specified index. + /// The zero-based index. + /// The plugin at the specified index. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static IObservationPlugin GetPlugin(int index) => Plugins[index]; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservedProperties.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservedProperties.cs new file mode 100644 index 00000000..3ac8145a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ObservedProperties.cs @@ -0,0 +1,73 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins; + +/// Answers what a mechanism can reach on one property of a type that carries it. +/// +/// records what the type declares and what it inherits from bases in +/// its own assembly, so a property the consumer wrote anywhere in its own hierarchy is answered from what that +/// declaration actually carries. +/// +/// A property still missing from it comes from somewhere the scan cannot see - a platform base - and is unknown +/// rather than absent. Treating unknown as observable keeps the mechanism the type advertises, which is right +/// for a platform base: that is exactly where a dependency property or a change event it declares would live. +/// +/// +internal static class ObservedProperties +{ + /// Determines whether a property participates in the dependency-property mechanism. + /// The declaring type's binding info. + /// The property being observed. + /// True when the property has a companion dependency-property field, or is not declared here. + internal static bool IsDependencyProperty(ClassBindingInfo classInfo, string propertyName) + { + var declared = Find(classInfo, propertyName); + return declared is null || declared.IsDependencyProperty; + } + + /// Determines whether a property participates in the change-event mechanism. + /// The declaring type's binding info. + /// The property being observed. + /// True when the property has a companion change event, or is not declared here. + internal static bool HasChangeEvent(ClassBindingInfo classInfo, string propertyName) + { + var declared = Find(classInfo, propertyName); + return declared is null || declared.HasChangeEvent; + } + + /// Determines whether the consumer's own type declares the property. + /// The declaring type's binding info. + /// The property being observed. + /// True when this type declares the property itself. + /// + /// The scan sees the consumer's declarations, so a property found here is one the consumer wrote and a + /// property missing from here comes from somewhere the scan cannot see - a base type in a referenced + /// assembly, which for a platform type is the platform itself. That is the question key-value observing + /// turns on: the Obj-C runtime backs the properties its own frameworks declare, not the ones an + /// application adds to a subclass of them. + /// + internal static bool IsDeclaredByConsumer(ClassBindingInfo classInfo, string propertyName) => + Find(classInfo, propertyName) is { IsDeclaredByType: true }; + + /// Finds the declared property of that name. + /// The declaring type's binding info. + /// The property name to find. + /// The property info, or null when the type does not declare it. + internal static ObservablePropertyInfo? Find(ClassBindingInfo classInfo, string propertyName) + { + var properties = classInfo.Properties; + for (var i = 0; i < properties.Length; i++) + { + if (string.Equals(properties[i].PropertyName, propertyName, StringComparison.Ordinal)) + { + return properties[i]; + } + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/IPropertyRaisePlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/IPropertyRaisePlugin.cs new file mode 100644 index 00000000..30047530 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/IPropertyRaisePlugin.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// A way for generated code to raise a type's change notifications for a property it backs. +/// +/// ToProperty needs the object that declares the property to announce each new value. A type can only +/// raise its own events, so each plugin names a member that does it and that generated code can reach. +/// +internal interface IPropertyRaisePlugin +{ + /// Gets the score that ranks this mechanism; the highest applicable score wins. + int Affinity { get; } + + /// Describes how generated code raises the type's notifications, when this mechanism applies to it. + /// The type that declares the property. + /// The consumer compilation, which the generated code is compiled into. + /// The raise description, or null when this mechanism cannot raise the type's notifications. + PropertyRaiseInfo? Select(INamedTypeSymbol type, Compilation compilation); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PartialTypeRaisePlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PartialTypeRaisePlugin.cs new file mode 100644 index 00000000..0e88f037 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PartialTypeRaisePlugin.cs @@ -0,0 +1,141 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.SourceGenerators.CodeGeneration; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// Raises notifications from inside a partial type, where its own event and protected members are in reach. +/// +/// +/// Most view models raise PropertyChanged through a protected method, or invoke the event themselves, and +/// neither is callable from generated code outside the type. A partial type can take one more member, and that member +/// can do what the type's own code does: invoke the field-like event it declares, or call a protected raise method it +/// inherits. The generator declares that member and calls it. +/// +/// +/// Every declaration of the type and of each type it is nested in has to be partial, because the generator can only +/// add to a type that is already open to additions. +/// +/// +internal sealed class PartialTypeRaisePlugin : IPropertyRaisePlugin +{ + /// The name this mechanism is recorded under. + internal const string MechanismName = "PartialType"; + + /// + public int Affinity => BindingAffinity.Fallback; + + /// + public PropertyRaiseInfo? Select(INamedTypeSymbol type, Compilation compilation) + { + var changed = RaiseMembers.FindMethod( + type, + changing: false, + compilation.GetTypeByMetadataName(Constants.PropertyChangedEventArgsMetadataName), + type, + compilation) + ?? RaiseMembers.FindFieldLikeEvent( + type, + RaiseMembers.ChangedEventName, + compilation.GetTypeByMetadataName(Constants.PropertyChangedEventHandlerMetadataName)); + if (changed is not { } changedCall) + { + return null; + } + + // The syntax is only read once a raise member exists, since it is the one test that walks declarations. + var declaration = DescribeDeclaration(type); + if (declaration is null) + { + return null; + } + + var changing = RaiseMembers.FindMethod( + type, + changing: true, + compilation.GetTypeByMetadataName(Constants.PropertyChangingEventArgsMetadataName), + type, + compilation) + ?? RaiseMembers.FindFieldLikeEvent( + type, + RaiseMembers.ChangingEventName, + compilation.GetTypeByMetadataName(Constants.PropertyChangingEventHandlerMetadataName)); + + return new(MechanismName, changedCall, changing, declaration); + } + + /// Describes the partial declarations that reach the type, outermost first. + /// The type to add a member to. + /// The declaration headers, or null when the type or a type containing it is not partial. + internal static PartialTypeDeclaration? DescribeDeclaration(INamedTypeSymbol type) + { + var depth = 0; + for (var current = type; current is not null; current = current.ContainingType) + { + depth++; + } + + var headers = new string[depth]; + var index = depth - 1; + var outermost = type; + for (var current = type; current is not null; current = current.ContainingType) + { + var header = DescribePartialClass(current); + if (header is null) + { + return null; + } + + headers[index] = header; + index--; + outermost = current; + } + + var ns = outermost.ContainingNamespace; + return new(ns is null || ns.IsGlobalNamespace ? null : ns.ToDisplayString(), new(headers)); + } + + /// Writes the header of one partial class declaration. + /// The type. + /// The header, such as partial class Name<T>, or null when the type is not a partial class. + private static string? DescribePartialClass(INamedTypeSymbol type) + { + var references = type.DeclaringSyntaxReferences; + if (type.TypeKind != TypeKind.Class || references.IsEmpty) + { + return null; + } + + string? keyword = null; + for (var i = 0; i < references.Length; i++) + { + if (references[i].GetSyntax() is not TypeDeclarationSyntax declaration + || !declaration.Modifiers.Any(SyntaxKind.PartialKeyword)) + { + return null; + } + + keyword ??= declaration.Keyword.ValueText; + } + + if (type.TypeParameters.IsEmpty) + { + return $"partial {keyword} {type.Name}"; + } + + // A generic header is built in a pooled buffer rather than through an array and a join. + var header = new PooledStringBuilder().Append("partial ").Append(keyword).Append(' ').Append(type.Name).Append('<'); + for (var i = 0; i < type.TypeParameters.Length; i++) + { + _ = (i == 0 ? header : header.Append(", ")).Append(type.TypeParameters[i].Name); + } + + return header.Append('>').ToStringAndReturn(); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PropertyRaisePluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PropertyRaisePluginRegistry.cs new file mode 100644 index 00000000..3ee6b767 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/PropertyRaisePluginRegistry.cs @@ -0,0 +1,67 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// Selects the strongest way to raise a type's change notifications from generated code. +internal static class PropertyRaisePluginRegistry +{ + /// The mechanisms, strongest first, so the first that applies is the one that wins. + /// + /// Declared in descending affinity so selection can stop at the first match. That order also puts the cheap + /// tests first: the ReactiveUI test is one interface lookup, the raise-method test walks member names, and only + /// the partial-type test reads syntax. + /// + private static readonly IPropertyRaisePlugin[] Plugins = + [ + new ReactiveObjectRaisePlugin(), // Affinity 10 - ReactiveUI's IReactiveObject + new RaiseMethodRaisePlugin(), // Affinity 5 - a raise method generated code can call + new PartialTypeRaisePlugin(), // Affinity 1 - a partial type the generator can add a member to + ]; + + /// The selection per type symbol, which lives as long as the compilation that owns the symbol. + /// + /// A view model backs several properties, and every one of its call sites asks about the same type. A symbol + /// belongs to one compilation, so the answer cannot go stale; the box lets a type that nothing can raise be + /// remembered too. + /// + private static readonly ConditionalWeakTable> Selections = new(); + + /// Selects how generated code raises a type's change notifications. + /// The type that declares the property. + /// The consumer compilation. + /// The strongest applicable raise description, or null when generated code cannot raise them. + internal static PropertyRaiseInfo? Select(INamedTypeSymbol type, Compilation compilation) + { + if (Selections.TryGetValue(type, out var cached)) + { + return cached.Value; + } + + var selection = SelectUncached(type, compilation); + _ = Selections.GetValue(type, _ => new(selection)); + return selection; + } + + /// Asks each mechanism in turn, strongest first. + /// The type that declares the property. + /// The consumer compilation. + /// The first applicable raise description, or null. + private static PropertyRaiseInfo? SelectUncached(INamedTypeSymbol type, Compilation compilation) + { + for (var i = 0; i < Plugins.Length; i++) + { + if (Plugins[i].Select(type, compilation) is { } raise) + { + return raise; + } + } + + return null; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMembers.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMembers.cs new file mode 100644 index 00000000..acabe18d --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMembers.cs @@ -0,0 +1,161 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// Finds the members a type raises its change notifications through. +internal static class RaiseMembers +{ + /// The name of the after-change event. + internal const string ChangedEventName = "PropertyChanged"; + + /// The name of the before-change event. + internal const string ChangingEventName = "PropertyChanging"; + + /// The conventional names of a method that raises PropertyChanged. + /// + /// Covers hand-written view models and the common base classes: CommunityToolkit.Mvvm and Prism use + /// OnPropertyChanged and RaisePropertyChanged, Caliburn.Micro uses NotifyOfPropertyChange. + /// + private static readonly string[] ChangedMethodNames = + ["RaisePropertyChanged", "OnPropertyChanged", "NotifyPropertyChanged", "NotifyOfPropertyChange"]; + + /// The conventional names of a method that raises PropertyChanging. + private static readonly string[] ChangingMethodNames = + ["RaisePropertyChanging", "OnPropertyChanging", "NotifyPropertyChanging"]; + + /// Finds a raise method on the type or a base type that is callable from a given place. + /// The type that declares the property. + /// Whether to look for a before-change raise method rather than an after-change one. + /// The event-args type a raise method may take instead of a name. + /// Where the call is made from: the consumer assembly, or the type itself. + /// The consumer compilation, which judges accessibility. + /// The call, preferring an event-args overload; or null when there is none. + /// + /// An overload that takes event args lets generated code pass one cached instance per property, so raising + /// allocates nothing; a name overload allocates event args on every change. Both are looked for across the + /// whole hierarchy before a name overload is settled for. + /// + internal static PropertyRaiseCall? FindMethod( + INamedTypeSymbol type, + bool changing, + INamedTypeSymbol? eventArgsType, + ISymbol within, + Compilation compilation) + { + var search = new MethodSearch(type, eventArgsType, within, compilation); + var names = changing ? ChangingMethodNames : ChangedMethodNames; + PropertyRaiseCall? byName = null; + + for (var current = type; current is not null; current = current.BaseType) + { + for (var n = 0; n < names.Length; n++) + { + if (search.Match(current, names[n], ref byName) is { } byArgs) + { + return byArgs; + } + } + } + + return byName; + } + + /// Finds a field-like event the type itself declares, which only code inside the type can invoke. + /// The type that declares the property. + /// The event name. + /// The delegate type the event must have. + /// The invocation, or null when the type declares no such event. + /// + /// A field-like event's accessors are synthesized by the compiler, which is how it is told apart from an event + /// with hand-written accessors: only the former has a delegate field behind it that can be invoked. + /// + internal static PropertyRaiseCall? FindFieldLikeEvent(INamedTypeSymbol type, string name, INamedTypeSymbol? handlerType) + { + if (handlerType is null) + { + return null; + } + + var members = type.GetMembers(name); + for (var i = 0; i < members.Length; i++) + { + if (members[i] is IEventSymbol { IsStatic: false, IsAbstract: false, AddMethod.IsImplicitlyDeclared: true } evt + && SymbolEqualityComparer.Default.Equals(evt.Type, handlerType)) + { + return new(PropertyRaiseCallKind.EventInvoke, name, PropertyRaiseArgumentKind.EventArgs); + } + } + + return null; + } + + /// What one raise-method search looks for, and from where. + /// The type that declares the property, which a protected call is made through. + /// The event-args type a raise method may take instead of a name. + /// Where the call is made from. + /// The consumer compilation, which judges accessibility. + private readonly record struct MethodSearch( + INamedTypeSymbol Type, + INamedTypeSymbol? EventArgsType, + ISymbol Within, + Compilation Compilation) + { + /// Looks at one type's methods of one name. + /// The type whose members are read. + /// The method name. + /// The first name overload found so far, kept in case no event-args overload exists. + /// An event-args overload, which ends the search; otherwise null. + public PropertyRaiseCall? Match(INamedTypeSymbol declaring, string name, ref PropertyRaiseCall? byName) + { + var members = declaring.GetMembers(name); + for (var m = 0; m < members.Length; m++) + { + if (AsRaiseMethod(members[m]) is not { } method || !Compilation.IsSymbolAccessibleWithin(method, Within, Type)) + { + continue; + } + + var first = method.Parameters[0].Type; + if (EventArgsType is not null && SymbolEqualityComparer.Default.Equals(first, EventArgsType)) + { + return new(PropertyRaiseCallKind.InstanceMethod, name, PropertyRaiseArgumentKind.EventArgs); + } + + if (byName is null && first.SpecialType == SpecialType.System_String) + { + byName = new(PropertyRaiseCallKind.InstanceMethod, name, PropertyRaiseArgumentKind.PropertyName); + } + } + + return null; + } + + /// Determines whether a member is an instance method callable with one name or event-args argument. + /// The member to judge. + /// The member as a method when one argument is enough to call it; otherwise null. + private static IMethodSymbol? AsRaiseMethod(ISymbol member) + { + if (member is not IMethodSymbol { IsStatic: false, IsGenericMethod: false, MethodKind: MethodKind.Ordinary } method + || method.Parameters.IsEmpty + || method.Parameters[0].RefKind != RefKind.None) + { + return null; + } + + for (var i = 1; i < method.Parameters.Length; i++) + { + if (!method.Parameters[i].IsOptional) + { + return null; + } + } + + return method; + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMethodRaisePlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMethodRaisePlugin.cs new file mode 100644 index 00000000..798530b1 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/RaiseMethodRaisePlugin.cs @@ -0,0 +1,47 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// Raises notifications through a public or internal raise method that generated code can call directly. +/// +/// A view model that exposes RaisePropertyChanged(string) or OnPropertyChanged(PropertyChangedEventArgs) +/// to its own assembly needs nothing more. The method is looked for by its conventional names, on the type and its +/// base types, and has to be accessible from the consumer's assembly, which is where generated code runs. +/// +internal sealed class RaiseMethodRaisePlugin : IPropertyRaisePlugin +{ + /// The name this mechanism is recorded under. + internal const string MechanismName = "RaiseMethod"; + + /// + public int Affinity => BindingAffinity.Explicit; + + /// + public PropertyRaiseInfo? Select(INamedTypeSymbol type, Compilation compilation) + { + var changed = RaiseMembers.FindMethod( + type, + changing: false, + compilation.GetTypeByMetadataName(Constants.PropertyChangedEventArgsMetadataName), + compilation.Assembly, + compilation); + if (changed is not { } changedCall) + { + return null; + } + + var changing = RaiseMembers.FindMethod( + type, + changing: true, + compilation.GetTypeByMetadataName(Constants.PropertyChangingEventArgsMetadataName), + compilation.Assembly, + compilation); + + return new(MechanismName, changedCall, changing, null); + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/ReactiveObjectRaisePlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/ReactiveObjectRaisePlugin.cs new file mode 100644 index 00000000..ea06f24c --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/PropertyRaise/ReactiveObjectRaisePlugin.cs @@ -0,0 +1,142 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.PropertyRaise; + +/// Raises a ReactiveUI object's notifications through ReactiveUI's own public raise extensions. +/// +/// +/// ReactiveUI routes a raise through per-object state: that is what honours +/// SuppressChangeNotifications and DelayChangeNotifications and feeds the Changed and +/// Changing observables. IReactiveObject.RaisePropertyChanged(args) would skip all of it, so the +/// generated code calls the public IReactiveObjectExtensions.RaisePropertyChanged extension instead, which is +/// the same path ReactiveUI's own ToProperty takes. +/// +/// +/// The two ReactiveUI flavours keep that state in different assemblies, so the extension class is taken from the +/// assembly that declares the object's ReactiveUI base type. Nothing here references ReactiveUI: every type is found +/// by metadata name. +/// +/// +internal sealed class ReactiveObjectRaisePlugin : IPropertyRaisePlugin +{ + /// The name this mechanism is recorded under. + internal const string MechanismName = "ReactiveObject"; + + /// The ReactiveUI extension raising PropertyChanged. + private const string RaiseChangedName = "RaisePropertyChanged"; + + /// The ReactiveUI extension raising PropertyChanging. + private const string RaiseChangingName = "RaisePropertyChanging"; + + /// The raise description per ReactiveUI extension class, which lives as long as its compilation. + private static readonly ConditionalWeakTable RaiseByExtensions = new(); + + /// + public int Affinity => BindingAffinity.ExactType; + + /// + public PropertyRaiseInfo? Select(INamedTypeSymbol type, Compilation compilation) + { + var reactiveObject = compilation.GetTypeByMetadataName(Constants.IReactiveObjectMetadataName); + if (reactiveObject is null || !Implements(type, reactiveObject)) + { + return null; + } + + // Every ReactiveUI type that reaches the same extension class raises the same way, so the description and + // the class name inside it are built once per extension symbol rather than once per call site. + var extensions = FindExtensions(type, compilation); + return extensions is null + || !HasAccessibleMethod(extensions, RaiseChangedName, compilation) + || !HasAccessibleMethod(extensions, RaiseChangingName, compilation) + ? null + : RaiseByExtensions.GetValue(extensions, static e => Describe(e.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat))); + } + + /// Describes the two static raise calls on one extension class. + /// The fully qualified extension class. + /// The raise description. + private static PropertyRaiseInfo Describe(string owner) => + new( + MechanismName, + new(PropertyRaiseCallKind.StaticMethod, RaiseChangedName, PropertyRaiseArgumentKind.PropertyName, owner), + new PropertyRaiseCall(PropertyRaiseCallKind.StaticMethod, RaiseChangingName, PropertyRaiseArgumentKind.PropertyName, owner), + null); + + /// Determines whether a type implements an interface. + /// The type to judge. + /// The interface. + /// when the type is or implements the interface. + private static bool Implements(INamedTypeSymbol type, INamedTypeSymbol interfaceType) + { + if (SymbolEqualityComparer.Default.Equals(type, interfaceType)) + { + return true; + } + + var interfaces = type.AllInterfaces; + for (var i = 0; i < interfaces.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(interfaces[i], interfaceType)) + { + return true; + } + } + + return false; + } + + /// Finds the ReactiveUI extension class that owns the object's notification state. + /// The ReactiveUI object type. + /// The consumer compilation. + /// The extension class, or null when no ReactiveUI assembly declaring it is referenced. + private static INamedTypeSymbol? FindExtensions(INamedTypeSymbol type, Compilation compilation) + { + // A ReactiveObject subclass reaches the assembly that declares ReactiveObject, which is the flavour whose + // state the object uses. A hand-written IReactiveObject reaches no ReactiveUI base, and takes either. + for (var current = type.BaseType; current is not null; current = current.BaseType) + { + var assembly = current.ContainingAssembly; + if (assembly is null) + { + continue; + } + + var declared = assembly.GetTypeByMetadataName(Constants.IReactiveObjectExtensionsMetadataName) + ?? assembly.GetTypeByMetadataName(Constants.ReactiveIReactiveObjectExtensionsMetadataName); + if (declared is not null) + { + return declared; + } + } + + return compilation.GetTypeByMetadataName(Constants.IReactiveObjectExtensionsMetadataName) + ?? compilation.GetTypeByMetadataName(Constants.ReactiveIReactiveObjectExtensionsMetadataName); + } + + /// Determines whether a static class declares a method the consumer can call. + /// The class. + /// The method name. + /// The consumer compilation. + /// when an accessible static method of that name exists. + private static bool HasAccessibleMethod(INamedTypeSymbol type, string name, Compilation compilation) + { + var members = type.GetMembers(name); + for (var i = 0; i < members.Length; i++) + { + if (members[i] is IMethodSymbol { IsStatic: true } method + && compilation.IsSymbolAccessibleWithin(method, compilation.Assembly)) + { + return true; + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/CollectionSetMethodEmitter.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/CollectionSetMethodEmitter.cs new file mode 100644 index 00000000..4ab4e635 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/CollectionSetMethodEmitter.cs @@ -0,0 +1,100 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Globalization; +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.SourceGenerators.CodeGeneration; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Emits typed collection mutation and isolates winning custom set-method providers. +internal static class CollectionSetMethodEmitter +{ + /// The local a write callback holds the collection it mutates in. + private const string CollectionLocal = "__collection"; + + /// Names the local holding one walked intermediate of the path, before its index. + private const string ParentLocalPrefix = "__setParent"; + + /// Subscribes after scheduling so collection operations run on the owning thread. + /// The writer, inside the worker's body. + /// The concrete collection write. + /// The scheduled input stream. + internal static void EmitSubscription(SourceWriter sb, in SetMethodEmission write, string source) + { + var targetType = write.Path[write.Path.Length - 1].PropertyTypeFullName; + AppendSelection(sb, write, targetType); + if (write.ReportChanges) + { + _ = sb.BeginVar("__setChanges").Append("new global::ReactiveUI.Primitives.Signals.Signal<").Append(targetType).Line(">();"); + } + + _ = sb.BeginVar("__setSubscription").Append(GeneratedTypeNames.BindingErrors).Append(".Subscribe(").Append(source).Line(", value =>") + .OpenBlock(); + AppendTarget(sb, write); + _ = sb.If("__setConverter != null") + .BeginVar("__result").Append('(').Append(targetType).Line(")__setConverter.PerformSet(__collection, value, null);"); + if (write.ReportChanges) + { + _ = sb.Line("__setChanges.OnNext(__result);"); + } + + _ = sb.Line("return;").CloseBlock(); + AppendMutation(sb, write.Mechanism); + if (write.ReportChanges) + { + _ = sb.Line("__setChanges.OnNext(__collection);"); + } + + _ = sb.CloseBlockInline().Append(", ").AppendQuoted(write.Expression).Line(");"); + } + + /// Resolves the custom winner once, retaining native ties. + /// The writer, inside the worker's body. + /// The concrete write. + /// The collection type. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendSelection(SourceWriter sb, in SetMethodEmission write, string targetType) => + sb.BeginVar("__setConverter").Append("global::ReactiveUI.Binding.BindingConverters.Current.SetMethodConverters.TryGetConverter(typeof(") + .Append(write.SourceType).Append("), typeof(").Append(targetType).Line("));") + .BeginIf().Append("__setConverter != null && __setConverter.GetAffinityForObjects(typeof(") + .Append(write.SourceType).Append("), typeof(").Append(targetType).Append(")) <= ").Append(write.Mechanism.Affinity).CloseCondition() + .Line("__setConverter = null;") + .CloseBlock(); + + /// Reads each path link once and skips a temporarily missing collection owner. + /// The writer, inside the write callback. + /// The target path. + private static void AppendTarget(SourceWriter sb, in SetMethodEmission write) + { + var parent = write.Root; + for (var i = 0; i < write.Path.Length; i++) + { + var local = i == write.Path.Length - 1 ? CollectionLocal : ParentLocalPrefix + i.ToString(CultureInfo.InvariantCulture); + _ = sb.BeginVar(local).Append(CodeGeneratorHelpers.AppendSegmentRead(parent, write.Path[i])).EndStatement() + .BeginIf().Append(local).Append(" == null").CloseCondition() + .Line("return;") + .CloseBlock(); + parent = local; + } + } + + /// Balances layout suspension even when enumeration or a native collection call fails. + /// The writer, inside the write callback. + /// The selected collection mechanism. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void AppendMutation(SourceWriter sb, SetMethodInfo mechanism) => + sb.BeginVar("__layoutOwner").Append("__collection.").Append(mechanism.LayoutOwner).EndStatement() + .Line("__layoutOwner.SuspendLayout();") + .Try() + .Line("__collection.Clear();") + .Append("__collection.AddRange(") + .Append(mechanism.SourceIsArray ? "value" : $"global::System.Linq.Enumerable.ToArray<{GeneratedTypeNames.WinFormsControl}>(value)") + .Line(");") + .CloseBlock() + .Finally() + .Line("__layoutOwner.ResumeLayout();") + .CloseBlock(); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/ISetMethodPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/ISetMethodPlugin.cs new file mode 100644 index 00000000..61533559 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/ISetMethodPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Offers a typed native setter for a source and destination pair. +internal interface ISetMethodPlugin +{ + /// Inspects the consumer's collection and value contracts. + /// The incoming value type. + /// The property's collection type. + /// The scored mechanism, or null when ineligible. + SetMethodInfo? Select(ITypeSymbol source, ITypeSymbol target); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/PanelSetMethodPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/PanelSetMethodPlugin.cs new file mode 100644 index 00000000..cbd98a48 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/PanelSetMethodPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Populates the control collection owned by a WinForms panel. +internal sealed class PanelSetMethodPlugin : ISetMethodPlugin +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public SetMethodInfo? Select(ITypeSymbol source, ITypeSymbol target) => + WinFormsCollectionSymbols.Select(source, target, "System.Windows.Forms.Control.ControlCollection", "Owner"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/SetMethodPluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/SetMethodPluginRegistry.cs new file mode 100644 index 00000000..83640e77 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/SetMethodPluginRegistry.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Selects the strongest eligible typed setter, preserving declaration order on ties. +internal static class SetMethodPluginRegistry +{ + /// The known native setter mechanisms. + private static readonly ISetMethodPlugin[] Plugins = [new PanelSetMethodPlugin(), new TableLayoutSetMethodPlugin()]; + + /// Compares the native candidates for the actual source and destination types. + /// The incoming value type. + /// The collection type. + /// The highest-affinity eligible mechanism. + internal static SetMethodInfo? Select(ITypeSymbol? source, ITypeSymbol? target) + { + if (source is null || target is null) + { + return null; + } + + SetMethodInfo? winner = null; + foreach (var plugin in Plugins) + { + var candidate = plugin.Select(source, target); + if (candidate is not null && (winner is null || candidate.Affinity > winner.Affinity)) + { + winner = candidate; + } + } + + return winner; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/TableLayoutSetMethodPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/TableLayoutSetMethodPlugin.cs new file mode 100644 index 00000000..e64fa017 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/TableLayoutSetMethodPlugin.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Models; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Populates a WinForms table's control collection under its container's layout suspension. +internal sealed class TableLayoutSetMethodPlugin : ISetMethodPlugin +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public SetMethodInfo? Select(ITypeSymbol source, ITypeSymbol target) => + WinFormsCollectionSymbols.Select(source, target, "System.Windows.Forms.TableLayoutControlCollection", "Container"); +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/WinFormsCollectionSymbols.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/WinFormsCollectionSymbols.cs new file mode 100644 index 00000000..8c5322ab --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/SetMethod/WinFormsCollectionSymbols.cs @@ -0,0 +1,92 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.SourceGenerators.Helpers; +using ReactiveUI.Binding.SourceGenerators.Models; +using ReactiveUI.Binding.SourceGenerators.Plugins.Observation; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.SetMethod; + +/// Validates WinForms collection mutation members from the consumer's symbols. +internal static class WinFormsCollectionSymbols +{ + /// The native collection setter's affinity. + private const int CollectionAffinity = 10; + + /// Checks the element, collection and layout contracts before offering direct mutation. + /// The incoming enumerable type. + /// The destination collection type. + /// The exact native collection type. + /// The property providing layout suspension. + /// The verified native setter, or null. + internal static SetMethodInfo? Select(ITypeSymbol source, ITypeSymbol target, string collectionName, string layoutOwner) + { + if (target is not INamedTypeSymbol collection || !NativeTypeIdentity.Matches(target, collectionName) || !HasCollectionContract(collection, layoutOwner)) + { + return null; + } + + foreach (var contract in source.AllInterfaces) + { + if (contract.OriginalDefinition.SpecialType == SpecialType.System_Collections_Generic_IEnumerable_T + && contract.TypeArguments[0] is INamedTypeSymbol { BaseType: { } elementBase } + && PlatformSymbols.DerivesFrom(elementBase, "System.Windows.Forms.Control")) + { + return new(CollectionAffinity, layoutOwner) { SourceIsArray = source is IArrayTypeSymbol { IsSZArray: true } }; + } + } + + return null; + } + + /// Checks the public collection and layout operations used by generated code. + /// The native collection type. + /// The property exposing its layout owner. + /// True when direct mutation is supported. + internal static bool HasCollectionContract(INamedTypeSymbol collection, string layoutOwner) => + PlatformSymbols.FindMember(collection, layoutOwner) is IPropertySymbol { IsStatic: false, GetMethod.DeclaredAccessibility: Accessibility.Public, Type: INamedTypeSymbol owner } + && HasMethod(owner, "SuspendLayout") && HasMethod(owner, "ResumeLayout") + && HasMethod(collection, "Clear") && HasAddRange(collection); + + /// Checks for an accessible parameterless native operation. + /// The declaring hierarchy. + /// The operation name. + /// True when the method can be called directly. + private static bool HasMethod(INamedTypeSymbol type, string name) + { + for (var current = type; current is not null; current = current.BaseType) + { + foreach (var member in current.GetMembers(name)) + { + if (member is IMethodSymbol { IsStatic: false, DeclaredAccessibility: Accessibility.Public, Parameters.Length: 0 }) + { + return true; + } + } + } + + return false; + } + + /// Checks that AddRange accepts a concrete control array. + /// The collection hierarchy. + /// True when the native array overload exists. + private static bool HasAddRange(INamedTypeSymbol type) + { + for (var current = type; current is not null; current = current.BaseType) + { + foreach (var member in current.GetMembers("AddRange")) + { + if (member is IMethodSymbol { IsStatic: false, DeclaredAccessibility: Accessibility.Public, Parameters.Length: 1 } method + && method.Parameters[0].Type is IArrayTypeSymbol array && NativeTypeIdentity.Matches(array.ElementType, "System.Windows.Forms.Control")) + { + return true; + } + } + } + + return false; + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/AvaloniaViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/AvaloniaViewThreadPlugin.cs new file mode 100644 index 00000000..943f39bf --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/AvaloniaViewThreadPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Writes to an Avalonia object through the sequencer of the dispatcher that owns it. +internal sealed class AvaloniaViewThreadPlugin : IViewThreadPlugin +{ + /// + public string OwnerMetadataName => "Avalonia.AvaloniaObject"; + + /// + public string InvokerMetadataName => "ReactiveUI.Binding.Avalonia.AvaloniaViewThreadInvoker"; + + /// + public string ReactiveInvokerMetadataName => "ReactiveUI.Binding.Reactive.Avalonia.AvaloniaViewThreadInvoker"; + + /// + public string PackageName => "ReactiveUI.Binding.Avalonia"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/IViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/IViewThreadPlugin.cs new file mode 100644 index 00000000..2b7f6f22 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/IViewThreadPlugin.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Names the runtime invoker a generated binding routes its writes through for one UI platform. +/// +/// The invokers live in the platform packages, one per runtime flavour. A generated binding references whichever +/// the consumer's compilation can see; when it sees neither, the binding carries no invoker and the runtime +/// registry resolves one. +/// +internal interface IViewThreadPlugin +{ + /// Gets the metadata name of the platform type whose instances this invoker writes to. + string OwnerMetadataName { get; } + + /// Gets the metadata name of the invoker in the lean runtime's platform package. + string InvokerMetadataName { get; } + + /// Gets the metadata name of the invoker in the System.Reactive runtime's platform package. + string ReactiveInvokerMetadataName { get; } + + /// Gets the name of the lean platform package that ships the invoker. + /// + /// Null when a binding onto the platform's objects without the package is not reported, because the platform's + /// type is shared with a platform the package does not serve. + /// + string? PackageName { get; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/MauiViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/MauiViewThreadPlugin.cs new file mode 100644 index 00000000..18ee5a0a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/MauiViewThreadPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Writes to a MAUI object through the dispatcher it carries. +internal sealed class MauiViewThreadPlugin : IViewThreadPlugin +{ + /// + public string OwnerMetadataName => "Microsoft.Maui.Controls.BindableObject"; + + /// + public string InvokerMetadataName => "ReactiveUI.Binding.Maui.DispatcherViewThreadInvoker"; + + /// + public string ReactiveInvokerMetadataName => "ReactiveUI.Binding.Reactive.Maui.DispatcherViewThreadInvoker"; + + /// + public string PackageName => "ReactiveUI.Binding.Maui"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/UnoViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/UnoViewThreadPlugin.cs new file mode 100644 index 00000000..3771a92a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/UnoViewThreadPlugin.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Writes to an Uno Platform object through the sequencer of the dispatcher queue that owns it. +/// +/// Uno and WinUI share Microsoft.UI.Xaml.DependencyObject. The invoker is named only when the compilation +/// references ReactiveUI.Binding.Uno, and a WinUI binding without it is not reported, since that package is for Uno. +/// +internal sealed class UnoViewThreadPlugin : IViewThreadPlugin +{ + /// + public string OwnerMetadataName => "Microsoft.UI.Xaml.DependencyObject"; + + /// + public string InvokerMetadataName => "ReactiveUI.Binding.Uno.UnoViewThreadInvoker"; + + /// + public string ReactiveInvokerMetadataName => "ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker"; + + /// + public string? PackageName => null; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/ViewThreadPluginRegistry.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/ViewThreadPluginRegistry.cs new file mode 100644 index 00000000..8b5a49c2 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/ViewThreadPluginRegistry.cs @@ -0,0 +1,153 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Matches a binding target's type to the runtime invoker a generated binding routes its writes through. +internal static class ViewThreadPluginRegistry +{ + /// The plugins, one per UI platform. + private static readonly IViewThreadPlugin[] Plugins = + [ + new WpfViewThreadPlugin(), + new WinFormsViewThreadPlugin(), + new MauiViewThreadPlugin(), + new AvaloniaViewThreadPlugin(), + new UnoViewThreadPlugin(), + ]; + + /// The platform types each compilation resolves, in plugin order. + private static readonly ConditionalWeakTable OwnerCache = new(); + + /// Finds the invoker a generated binding routes its writes through for a target type. + /// The target's type, or null when the model could not name it. + /// The compilation the type belongs to. + /// + /// The fully qualified runtime invoker, or null when the type belongs to no supported platform or the compilation + /// does not reference that platform's runtime package. + /// + internal static string? InvokerFor(ITypeSymbol? type, Compilation compilation) => + FindPlatform(type, compilation) is { } index ? GetOwners(compilation).Invokers[index] : null; + + /// Finds the platform package a target type needs but the compilation does not reference. + /// The target's type, or null when the model could not name it. + /// The compilation the type belongs to. + /// + /// The package that ships the platform's invoker, or null when the type belongs to no supported platform or the + /// compilation already references that platform's invoker. + /// + internal static string? MissingPackageFor(ITypeSymbol? type, Compilation compilation) => + FindPlatform(type, compilation) is { } index && GetOwners(compilation).Invokers[index] is null + ? Plugins[index].PackageName + : null; + + /// Finds which platform a type belongs to, directly, through a base class or through an interface. + /// The type, or null. + /// The compilation the type belongs to. + /// The plugin index, or null when the type belongs to no supported platform. + /// Uno declares DependencyObject as an interface on its non-Windows heads. + private static int? FindPlatform(ITypeSymbol? type, Compilation compilation) + { + var owners = GetOwners(compilation); + if (type is null || !owners.AnyResolved) + { + return null; + } + + for (var current = type; current is not null; current = current.BaseType) + { + if (IndexOf(current, owners) is { } index) + { + return index; + } + } + + var interfaces = type.AllInterfaces; + for (var i = 0; i < interfaces.Length; i++) + { + if (IndexOf(interfaces[i], owners) is { } index) + { + return index; + } + } + + return null; + } + + /// Finds the plugin whose platform type is the given type. + /// The type to look up. + /// The platform types the compilation resolves. + /// The plugin index, or null when the type is no platform's type. + private static int? IndexOf(ITypeSymbol type, OwnerTypes owners) + { + for (var i = 0; i < Plugins.Length; i++) + { + if (SymbolEqualityComparer.Default.Equals(type, owners.Types[i])) + { + return i; + } + } + + return null; + } + + /// Resolves the platform types a compilation references, once per compilation. + /// The compilation to inspect. + /// The resolved types, in plugin order. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static OwnerTypes GetOwners(Compilation compilation) => + OwnerCache.GetValue(compilation, static c => new(c)); + + /// The platform types one compilation resolves, and their invokers, in plugin order. + private sealed class OwnerTypes + { + /// Initializes a new instance of the class. + /// The compilation to resolve the types in. + /// + /// The invoker is named by the flavour that resolved, because the platform packages are separate assemblies + /// that retargeting cannot see into. A platform whose owner resolves without an invoker is still recorded, so + /// a binding onto it can be reported rather than silently left unmarshalled. + /// + public OwnerTypes(Compilation compilation) + { + Types = new INamedTypeSymbol?[Plugins.Length]; + Invokers = new string?[Plugins.Length]; + for (var i = 0; i < Plugins.Length; i++) + { + var plugin = Plugins[i]; + Types[i] = compilation.GetTypeByMetadataName(plugin.OwnerMetadataName); + Invokers[i] = Types[i] is not null && ResolveInvoker(compilation, plugin) is { } invoker ? $"global::{invoker}" : null; + AnyResolved |= Types[i] is not null; + } + } + + /// Gets the resolved types; an entry is null when the compilation does not reference that platform. + public INamedTypeSymbol?[] Types { get; } + + /// Gets the fully qualified invoker each platform routes through, or null where none resolves. + public string?[] Invokers { get; } + + /// Gets a value indicating whether the compilation references any supported platform. + public bool AnyResolved { get; } + + /// Finds which flavour of a platform's invoker the compilation references. + /// The compilation to inspect. + /// The platform. + /// The metadata name of the invoker that resolves, or null when neither does. + private static string? ResolveInvoker(Compilation compilation, IViewThreadPlugin plugin) + { + if (compilation.GetTypeByMetadataName(plugin.InvokerMetadataName) is not null) + { + return plugin.InvokerMetadataName; + } + + return compilation.GetTypeByMetadataName(plugin.ReactiveInvokerMetadataName) is not null + ? plugin.ReactiveInvokerMetadataName + : null; + } + } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WinFormsViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WinFormsViewThreadPlugin.cs new file mode 100644 index 00000000..c1514e44 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WinFormsViewThreadPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Writes to a WinForms control on the thread that created its handle. +internal sealed class WinFormsViewThreadPlugin : IViewThreadPlugin +{ + /// + public string OwnerMetadataName => "System.Windows.Forms.Control"; + + /// + public string InvokerMetadataName => "ReactiveUI.Binding.WinForms.ControlViewThreadInvoker"; + + /// + public string ReactiveInvokerMetadataName => "ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker"; + + /// + public string PackageName => "ReactiveUI.Binding.WinForms"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WpfViewThreadPlugin.cs b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WpfViewThreadPlugin.cs new file mode 100644 index 00000000..d0218096 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Plugins/ViewThread/WpfViewThreadPlugin.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.SourceGenerators.Plugins.ViewThread; + +/// Writes to a WPF object on the thread its dispatcher owns. +internal sealed class WpfViewThreadPlugin : IViewThreadPlugin +{ + /// + public string OwnerMetadataName => "System.Windows.Threading.DispatcherObject"; + + /// + public string InvokerMetadataName => "ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker"; + + /// + public string ReactiveInvokerMetadataName => "ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker"; + + /// + public string PackageName => "ReactiveUI.Binding.Wpf"; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Polyfills/CompilerFeatureRequiredAttribute.cs b/src/ReactiveUI.Binding.SourceGenerators/Polyfills/CompilerFeatureRequiredAttribute.cs new file mode 100644 index 00000000..7eed1853 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Polyfills/CompilerFeatureRequiredAttribute.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; + +namespace System.Runtime.CompilerServices; + +/// Names a compiler feature a consumer of the marked member has to understand. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)] +internal sealed class CompilerFeatureRequiredAttribute : Attribute +{ + /// Initializes a new instance of the class. + /// The name of the required compiler feature. + public CompilerFeatureRequiredAttribute(string featureName) => FeatureName = featureName; + + /// Gets the name of the required compiler feature. + public string FeatureName { get; } + + /// Gets or sets a value indicating whether a compiler that does not understand the feature may ignore it. + public bool IsOptional { get; set; } +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/Polyfills/IsClosedTypeAttribute.cs b/src/ReactiveUI.Binding.SourceGenerators/Polyfills/IsClosedTypeAttribute.cs new file mode 100644 index 00000000..1fe0530a --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/Polyfills/IsClosedTypeAttribute.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; + +namespace System.Runtime.CompilerServices; + +/// Marks a class the compiler declared closed, so only its own assembly derives from it. +[ExcludeFromCodeCoverage] +[DebuggerNonUserCode] +[AttributeUsage(AttributeTargets.Class, Inherited = false)] +internal sealed class IsClosedTypeAttribute : Attribute; diff --git a/src/ReactiveUI.Binding.SourceGenerators/ReactiveUI.Binding.SourceGenerators.csproj b/src/ReactiveUI.Binding.SourceGenerators/ReactiveUI.Binding.SourceGenerators.csproj new file mode 100644 index 00000000..01ef50ef --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/ReactiveUI.Binding.SourceGenerators.csproj @@ -0,0 +1,65 @@ + + + netstandard2.0 + true + false + + true + Compatibility package for ReactiveUI.Binding consumers that reference the source generator by name. The generator and its analyzer ship inside ReactiveUI.Binding and ReactiveUI.Binding.Reactive; this package exists so existing references keep resolving. + $(NoWarn);AD0001 + full + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.SourceGenerators/RoslynHelpers.cs b/src/ReactiveUI.Binding.SourceGenerators/RoslynHelpers.cs new file mode 100644 index 00000000..d5d96743 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/RoslynHelpers.cs @@ -0,0 +1,201 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +namespace ReactiveUI.Binding.SourceGenerators; + +/// +/// Fast syntax-only predicates for the incremental generator pipeline. +/// These run on every keystroke and must be extremely cheap (no semantic model). +/// +internal static class RoslynHelpers +{ + /// Detects class declarations that can participate in view registration. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a class with a base list; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsClassWithBaseList(SyntaxNode node, CancellationToken ct) => + node is ClassDeclarationSyntax { BaseList.Types.Count: > 0 }; + + /// Pipeline B predicate: detects WhenChanged invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a WhenChanged invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWhenChangedInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.WhenChangedMethodName + }; + + /// Pipeline B predicate: detects WhenChanging invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a WhenChanging invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWhenChangingInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.WhenChangingMethodName + }; + + /// Pipeline B predicate: detects BindOneWay or BindTwoWay invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a bind invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.BindOneWayMethodName or Constants.BindTwoWayMethodName + or Constants.OneWayBindMethodName or Constants.BindMethodName + }; + + /// Checks if a syntax node is a Bind (view-first two-way) invocation specifically. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a Bind invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindSpecificInvocation(SyntaxNode node, CancellationToken ct) => + IsBindInvocation(node, ct) && GetMemberAccessName(node) == Constants.BindMethodName; + + /// Checks if a syntax node is a BindOneWay invocation specifically. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a BindOneWay invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindOneWaySpecificInvocation(SyntaxNode node, CancellationToken ct) => + IsBindInvocation(node, ct) && GetMemberAccessName(node) == Constants.BindOneWayMethodName; + + /// Checks if a syntax node is a BindTwoWay invocation specifically. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a BindTwoWay invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindTwoWaySpecificInvocation(SyntaxNode node, CancellationToken ct) => + IsBindInvocation(node, ct) && GetMemberAccessName(node) == Constants.BindTwoWayMethodName; + + /// Checks if a syntax node is a OneWayBind invocation specifically. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a OneWayBind invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsOneWayBindSpecificInvocation(SyntaxNode node, CancellationToken ct) => + IsBindInvocation(node, ct) && GetMemberAccessName(node) == Constants.OneWayBindMethodName; + + /// + /// Extracts the method name from a member access invocation expression. + /// Returns null if the node is not the expected shape. + /// + /// The syntax node (expected to be an InvocationExpressionSyntax). + /// The method name, or null. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? GetMemberAccessName(SyntaxNode node) => + node is not InvocationExpressionSyntax { Expression: MemberAccessExpressionSyntax memberAccess } + ? null + : memberAccess.Name.Identifier.Text; + + /// Pipeline B predicate: detects WhenAnyValue invocations only. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a WhenAnyValue invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWhenAnyValueInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.WhenAnyValueMethodName + }; + + /// Pipeline B predicate: detects WhenAny invocations (with IObservedChange selector). + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a WhenAny invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWhenAnyInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.WhenAnyMethodName + }; + + /// Pipeline B predicate: detects WhenAnyObservable invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a WhenAnyObservable invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsWhenAnyObservableInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.WhenAnyObservableMethodName + }; + + /// Pipeline B predicate: detects BindInteraction invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a BindInteraction invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindInteractionInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.BindInteractionMethodName + }; + + /// Pipeline B predicate: detects BindCommand invocations. + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a BindCommand invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindCommandInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.BindCommandMethodName + }; + + /// Pipeline B predicate: detects BindTo invocations (observable stream to target property). + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a BindTo invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsBindToInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.BindToMethodName + }; + + /// Pipeline B predicate: detects InvokeCommand invocations (observable stream to a command). + /// The syntax node to check. + /// Cancellation token. + /// true if the node is an InvokeCommand invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsInvokeCommandInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.InvokeCommandMethodName + }; + + /// Pipeline B predicate: detects ToProperty invocations (observable backing a read-only property). + /// The syntax node to check. + /// Cancellation token. + /// true if the node is a ToProperty invocation; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsToPropertyInvocation(SyntaxNode node, CancellationToken ct) => + node is InvocationExpressionSyntax invocation + && invocation.Expression is MemberAccessExpressionSyntax + { + Name.Identifier.Text: Constants.ToPropertyMethodName + }; +} diff --git a/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.props b/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.props new file mode 100644 index 00000000..a647fa94 --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.props @@ -0,0 +1,25 @@ + + + + + true + + + + + + + + diff --git a/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.targets b/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.targets new file mode 100644 index 00000000..7db4c7ae --- /dev/null +++ b/src/ReactiveUI.Binding.SourceGenerators/build/ReactiveUI.Binding.SourceGenerators.targets @@ -0,0 +1,89 @@ + + + + + true + + + <_ReactiveUIBindingInterceptorNamespace>ReactiveUI.Binding.Generated.Interceptors + + + <_ReactiveUIBindingMinimumCompilerVersion>4.8 + <_ReactiveUIBindingInterceptorCompilerVersion>4.13 + + + + + + <_ReactiveUIBindingCompilerVersion Condition="'$(CompilerApiVersion)' != '' and $(CompilerApiVersion.StartsWith('roslyn'))">$(CompilerApiVersion.Substring(6)) + <_ReactiveUIBindingCompilerVersion Condition="!$(_ReactiveUIBindingCompilerVersion.Contains('.'))">$(_ReactiveUIBindingMinimumCompilerVersion) + + <_ReactiveUIBindingInterceptsCallSites>false + <_ReactiveUIBindingInterceptsCallSites Condition="'$([System.Version]::Parse($(_ReactiveUIBindingCompilerVersion)).CompareTo($([System.Version]::Parse($(_ReactiveUIBindingInterceptorCompilerVersion)))))' >= '0'">true + + <_ReactiveUIBindingSlot Condition="'$(_ReactiveUIBindingInterceptsCallSites)' == 'true'">roslyn$(_ReactiveUIBindingInterceptorCompilerVersion) + <_ReactiveUIBindingSlot Condition="'$(_ReactiveUIBindingSlot)' == ''">roslyn$(_ReactiveUIBindingMinimumCompilerVersion) + + + + + <_ReactiveUIBindingAnalyzer Include="@(Analyzer)" + Condition="'%(Analyzer.Filename)' == 'ReactiveUI.Binding.SourceGenerators' or '%(Analyzer.Filename)' == 'ReactiveUI.Binding.Analyzer'"> + <_Slot>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName('%(Analyzer.FullPath)')))))) + + + + + + + + <_ReactiveUIBindingInterceptorsNamespaces>$(InterceptorsNamespaces) + <_ReactiveUIBindingInterceptorsNamespaces Condition="'$(_ReactiveUIBindingInterceptorsNamespaces)' != ''">$(_ReactiveUIBindingInterceptorsNamespaces); + <_ReactiveUIBindingInterceptorsNamespaces>$(_ReactiveUIBindingInterceptorsNamespaces)$(_ReactiveUIBindingInterceptorNamespace) + $(_ReactiveUIBindingInterceptorsNamespaces) + + + + + + + diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-android/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-android/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-android/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-browserwasm/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-browserwasm/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-browserwasm/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-desktop/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-desktop/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-desktop/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..04e90da5 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,32 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-android/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-android/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-android/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-browserwasm/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-browserwasm/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-browserwasm/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-desktop/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-desktop/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-desktop/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..04e90da5 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,32 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..43d44030 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +namespace ReactiveUI.Binding.Reactive.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Reactive.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Reactive/ReactiveUI.Binding.Uno.Reactive.csproj b/src/ReactiveUI.Binding.Uno.Reactive/ReactiveUI.Binding.Uno.Reactive.csproj new file mode 100644 index 00000000..9158f22e --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Reactive/ReactiveUI.Binding.Uno.Reactive.csproj @@ -0,0 +1,59 @@ + + + + $(BindingUnoTargets) + Library + + true + ReactiveUI.Binding.Reactive.Uno + + true + + true + + false + 24.0 + 15.0 + Uno Platform support for ReactiveUI.Binding.Reactive, for consumers on System.Reactive. + reactiveui;binding;uno;winui;system.reactive + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Uno.Shared/Builder/UnoBindingBuilderExtensions.cs b/src/ReactiveUI.Binding.Uno.Shared/Builder/UnoBindingBuilderExtensions.cs new file mode 100644 index 00000000..663c0319 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Shared/Builder/UnoBindingBuilderExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Uno.Builder; +#else +namespace ReactiveUI.Binding.Uno.Builder; +#endif + +/// Uno Platform extensions for the ReactiveUI.Binding builder. +public static class UnoBindingBuilderExtensions +{ + /// Provides WithUno extension members for . + /// The builder instance; it must be an . + extension(IAppBuilder builder) + { + /// Registers the Uno module, which adds the Uno view thread invoker. + /// The builder instance for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IReactiveUIBindingBuilder WithUno() => + ((IReactiveUIBindingBuilder)builder).WithUno(); + } + + /// Provides WithUno extension members for . + /// The builder instance. + extension(IReactiveUIBindingBuilder builder) + { + /// Registers the Uno module, which adds the Uno view thread invoker. + /// The builder instance for chaining. + /// The builder is null. + public IReactiveUIBindingBuilder WithUno() + { + ArgumentExceptionHelper.ThrowIfNull(builder); + + return builder.WithPlatformModule(new UnoBindingModule()); + } + } +} diff --git a/src/ReactiveUI.Binding.Uno.Shared/UnoBindingModule.cs b/src/ReactiveUI.Binding.Uno.Shared/UnoBindingModule.cs new file mode 100644 index 00000000..7929c3db --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Shared/UnoBindingModule.cs @@ -0,0 +1,24 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Uno; +#else +namespace ReactiveUI.Binding.Uno; +#endif + +/// Registers the Uno Platform view thread invoker with the dependency resolver. +/// The source generator observes Uno dependency properties at compile time, so no observer is registered. +public sealed class UnoBindingModule : IModule +{ + /// + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + resolver.RegisterLazySingleton(static () => UnoViewThreadInvoker.Instance); + } +} diff --git a/src/ReactiveUI.Binding.Uno.Shared/UnoViewThreadInvoker.cs b/src/ReactiveUI.Binding.Uno.Shared/UnoViewThreadInvoker.cs new file mode 100644 index 00000000..f6e5d764 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.Shared/UnoViewThreadInvoker.cs @@ -0,0 +1,24 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.UI.Xaml; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Uno; +#else +namespace ReactiveUI.Binding.Uno; +#endif + +/// Routes writes to an Uno Platform DependencyObject onto the DispatcherQueueSequencer of the queue that owns it. +/// Every dependency object belongs to the dispatcher queue of the thread that created it. +public sealed class UnoViewThreadInvoker : SequencerViewThreadInvoker +{ + /// Gets the shared instance, which generated bindings route their Uno writes through. + public static UnoViewThreadInvoker Instance { get; } = new(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected override DispatcherQueueSequencer SequencerFor(DependencyObject target) => + DispatcherQueueSequencer.For(target.DispatcherQueue); +} diff --git a/src/ReactiveUI.Binding.Uno.slnf b/src/ReactiveUI.Binding.Uno.slnf new file mode 100644 index 00000000..85f20c42 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno.slnf @@ -0,0 +1,9 @@ +{ + "solution": { + "path": "ReactiveUI.SourceGenerators.slnx", + "projects": [ + "ReactiveUI.Binding.Uno\\ReactiveUI.Binding.Uno.csproj", + "ReactiveUI.Binding.Uno.Reactive\\ReactiveUI.Binding.Uno.Reactive.csproj" + ] + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-android/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-android/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-android/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-browserwasm/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-browserwasm/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-browserwasm/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-desktop/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-desktop/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-desktop/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..3ec1e660 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-android/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-android/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-android/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-browserwasm/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-browserwasm/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-browserwasm/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-desktop/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-desktop/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-desktop/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..3ec1e660 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,31 @@ +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..384ecbc3 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,30 @@ +namespace ReactiveUI.Binding.Uno +{ + public sealed class UnoBindingModule : Splat.Builder.IModule + { + public UnoBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public sealed class UnoViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public UnoViewThreadInvoker() { } + public static ReactiveUI.Binding.Uno.UnoViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherQueueSequencer SequencerFor(Microsoft.UI.Xaml.DependencyObject target) { } + } +} +namespace ReactiveUI.Binding.Uno.Builder +{ + public static class UnoBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithUno() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Uno/ReactiveUI.Binding.Uno.csproj b/src/ReactiveUI.Binding.Uno/ReactiveUI.Binding.Uno.csproj new file mode 100644 index 00000000..17132413 --- /dev/null +++ b/src/ReactiveUI.Binding.Uno/ReactiveUI.Binding.Uno.csproj @@ -0,0 +1,53 @@ + + + $(BindingUnoTargets) + Library + + true + + true + + true + + false + 24.0 + 15.0 + Uno Platform support for ReactiveUI.Binding. Routes view writes onto the dispatcher queue that owns each control. + reactiveui;binding;uno;winui + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt new file mode 100644 index 00000000..a701c1c9 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..b4cde9a3 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt new file mode 100644 index 00000000..a701c1c9 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..b4cde9a3 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..63f0cd0d --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,36 @@ +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt new file mode 100644 index 00000000..a701c1c9 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..b4cde9a3 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt new file mode 100644 index 00000000..a701c1c9 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..b4cde9a3 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.Reactive.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Reactive/ReactiveUI.Binding.WinForms.Reactive.csproj b/src/ReactiveUI.Binding.WinForms.Reactive/ReactiveUI.Binding.WinForms.Reactive.csproj new file mode 100644 index 00000000..679d21ec --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Reactive/ReactiveUI.Binding.WinForms.Reactive.csproj @@ -0,0 +1,50 @@ + + + + $(BindingWindowsOnlyTargets) + ReactiveUI.Binding.Reactive.WinForms + true + WinForms platform support for ReactiveUI.Binding.Reactive, for consumers on System.Reactive. + reactiveui;binding;winforms;system.reactive + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.WinForms.Shared/Builder/WinFormsBindingBuilderExtensions.cs b/src/ReactiveUI.Binding.WinForms.Shared/Builder/WinFormsBindingBuilderExtensions.cs new file mode 100644 index 00000000..467162f9 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/Builder/WinFormsBindingBuilderExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms.Builder; +#else +namespace ReactiveUI.Binding.WinForms.Builder; +#endif + +/// WinForms-specific extensions for the ReactiveUI.Binding builder. +public static class WinFormsBindingBuilderExtensions +{ + /// Provides WithWinForms extension members for . + /// The builder instance; it must be an . + extension(IAppBuilder builder) + { + /// Registers the WinForms module, which adds event-based property observation and the control view thread invoker. + /// The builder instance for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IReactiveUIBindingBuilder WithWinForms() => + ((IReactiveUIBindingBuilder)builder).WithWinForms(); + } + + /// Provides WithWinForms extension members for . + /// The builder instance. + extension(IReactiveUIBindingBuilder builder) + { + /// Registers the WinForms module, which adds event-based property observation and the control view thread invoker. + /// The builder instance for chaining. + /// The builder is null. + public IReactiveUIBindingBuilder WithWinForms() + { + ArgumentExceptionHelper.ThrowIfNull(builder); + + return builder.WithPlatformModule(new WinFormsBindingModule()); + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Shared/ControlViewThreadInvoker.cs b/src/ReactiveUI.Binding.WinForms.Shared/ControlViewThreadInvoker.cs new file mode 100644 index 00000000..81ffb362 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/ControlViewThreadInvoker.cs @@ -0,0 +1,26 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Windows.Forms; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms; +#else +namespace ReactiveUI.Binding.WinForms; +#endif + +/// Routes writes to a WinForms Control onto the ControlSequencer of the thread that created its handle. +/// A control that needs no invoke, including one with no handle yet, is written inline. +public sealed class ControlViewThreadInvoker : SequencerViewThreadInvoker +{ + /// Gets the shared instance, which generated bindings route their WinForms writes through. + public static ControlViewThreadInvoker Instance { get; } = new(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected override ControlSequencer? SequencerFor(Control target) => + // InvokeRequired is false until the control or a parent has a handle, and BeginInvoke needs one. + target.InvokeRequired ? ControlSequencer.For(target) : null; +} diff --git a/src/ReactiveUI.Binding.WinForms.Shared/EventCacheKey.cs b/src/ReactiveUI.Binding.WinForms.Shared/EventCacheKey.cs new file mode 100644 index 00000000..c22b6d84 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/EventCacheKey.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms; +#else +namespace ReactiveUI.Binding.WinForms; +#endif + +/// Identifies the change event looked up for one property of one type. +/// The type declaring the property. +/// The name of the property. +[DebuggerDisplay("EventCacheKey: {Type.Name,nq}.{PropertyName,nq}")] +internal readonly record struct EventCacheKey(Type Type, string PropertyName); diff --git a/src/ReactiveUI.Binding.WinForms.Shared/EventSubscription.cs b/src/ReactiveUI.Binding.WinForms.Shared/EventSubscription.cs new file mode 100644 index 00000000..a43e3868 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/EventSubscription.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms; +#else +namespace ReactiveUI.Binding.WinForms; +#endif + +/// The handler a WinForms change-event observation has to detach when it is disposed. +/// The event the handler was attached to. +/// The component raising it. +/// The handler to detach. +[DebuggerDisplay("EventSubscription: {EventInfo.Name,nq} on {Sender}")] +internal readonly record struct EventSubscription( + EventInfo EventInfo, + object Sender, + EventHandler Handler); diff --git a/src/ReactiveUI.Binding.WinForms.Shared/WinFormsBindingModule.cs b/src/ReactiveUI.Binding.WinForms.Shared/WinFormsBindingModule.cs new file mode 100644 index 00000000..8f4ead2c --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/WinFormsBindingModule.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms; +#else +namespace ReactiveUI.Binding.WinForms; +#endif + +/// Registers the WinForms event-based property observer and view thread invoker with the dependency resolver. +/// +/// WinForms command binding (event+Enabled) is handled at compile time by the source generator. +/// +public sealed class WinFormsBindingModule : IModule +{ + /// + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + resolver.RegisterLazySingleton(static () => new WinFormsCreatesObservableForProperty()); + + resolver.RegisterLazySingleton(static () => new ControlViewThreadInvoker()); + } +} diff --git a/src/ReactiveUI.Binding.WinForms.Shared/WinFormsCreatesObservableForProperty.cs b/src/ReactiveUI.Binding.WinForms.Shared/WinFormsCreatesObservableForProperty.cs new file mode 100644 index 00000000..a4197e02 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms.Shared/WinFormsCreatesObservableForProperty.cs @@ -0,0 +1,100 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.Reflection; +using System.Runtime.CompilerServices; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.WinForms; +#else +namespace ReactiveUI.Binding.WinForms; +#endif + +/// Observes a WinForms Component property by subscribing to its public {PropertyName}Changed event through reflection. +/// +/// Each notification carries no value; the observer reads the property. Before-change observation is not supported. +/// +[RequiresUnreferencedCode( + "Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] +public class WinFormsCreatesObservableForProperty : ICreatesObservableForProperty +{ + /// + /// A concurrent dictionary cache used to store information about events corresponding + /// to property changes on WinForms components. + /// The key is a tuple consisting of a type and property name, and the value is the associated + /// if the {PropertyName}Changed event exists, or null if it does not. + /// + private static readonly ConcurrentDictionary EventInfoCache = new(); + + /// Returns the WinForms event affinity when the component type has a public instance {propertyName}Changed event. + /// The type that owns the property. + /// The property name, without the Changed suffix. + /// always yields zero, since WinForms raises no before-change event. + /// for a Component type with such an event; otherwise zero. + [RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) + { + if (beforeChanged) + { + return 0; + } + + if (!typeof(Component).IsAssignableFrom(type)) + { + return 0; + } + + return GetEventInfo(type, propertyName) is not null ? BindingAffinity.WinFormsEvent : 0; + } + + /// Returns an observable that raises whenever raises its {propertyName}Changed event. + /// The component to observe. + /// The expression carried on each notification. + /// The property name, without the Changed suffix. + /// Ignored; notifications are always after the change. + /// Ignored. + /// An observable that adds the event handler on subscription and removes it on disposal. + /// is null. + /// The sender's type has no such event. + [RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public IObservable> GetNotificationForProperty( + object sender, + System.Linq.Expressions.Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + + var ei = GetEventInfo(sender.GetType(), propertyName) ?? throw new ArgumentException( + $"Could not find event {propertyName}Changed on type {sender.GetType().Name}", + nameof(propertyName)); + + return new AnonymousObservable>(subj => + { + var handler = new EventHandler((_, _) => + subj.OnNext(new ObservedChange(sender, expression, default))); + + ei.AddEventHandler(sender, handler); + return Scope.Create( + new(ei, sender, handler), + static state => state.EventInfo.RemoveEventHandler(state.Sender, state.Handler)); + }); + } + + /// Retrieves the for the specified {PropertyName}Changed event on the given type. + /// The type to be inspected for the event. + /// The name of the property whose corresponding event information is to be retrieved. + /// + /// An object if the {PropertyName}Changed event is found; otherwise, null. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static EventInfo? GetEventInfo(Type type, string propertyName) => + EventInfoCache.GetOrAdd( + new(type, propertyName), + static key => key.Type.GetEvent( + $"{key.PropertyName}Changed", + BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy)); +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows/PublicAPI.txt new file mode 100644 index 00000000..ab77f602 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..20ede2e5 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows/PublicAPI.txt new file mode 100644 index 00000000..ab77f602 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..20ede2e5 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..57718470 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,37 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows/PublicAPI.txt new file mode 100644 index 00000000..ab77f602 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..20ede2e5 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows/PublicAPI.txt new file mode 100644 index 00000000..ab77f602 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..20ede2e5 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,41 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.WinForms +{ + public sealed class ControlViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public ControlViewThreadInvoker() { } + public static ReactiveUI.Binding.WinForms.ControlViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.ControlSequencer? SequencerFor(System.Windows.Forms.Control target) { } + } + public sealed class WinFormsBindingModule : Splat.Builder.IModule + { + public WinFormsBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find and subscribe to {PropertyName}Changed events on WinForms components.")] + public class WinFormsCreatesObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public WinFormsCreatesObservableForProperty() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to find {PropertyName}Changed events.")] + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Uses reflection to subscribe to {PropertyName}Changed events.")] + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } +} +namespace ReactiveUI.Binding.WinForms.Builder +{ + public static class WinFormsBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWinForms() { } + } + } +} diff --git a/src/ReactiveUI.Binding.WinForms/ReactiveUI.Binding.WinForms.csproj b/src/ReactiveUI.Binding.WinForms/ReactiveUI.Binding.WinForms.csproj new file mode 100644 index 00000000..d7278835 --- /dev/null +++ b/src/ReactiveUI.Binding.WinForms/ReactiveUI.Binding.WinForms.csproj @@ -0,0 +1,47 @@ + + + $(BindingWindowsOnlyTargets) + true + WinForms platform support for ReactiveUI.Binding. Provides event-based property observation for WinForms components. + reactiveui;binding;winforms + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/Directory.Build.targets b/src/ReactiveUI.Binding.Wpf.Reactive/Directory.Build.targets new file mode 100644 index 00000000..cb3abce3 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt new file mode 100644 index 00000000..7771642c --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..486c64f0 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt new file mode 100644 index 00000000..7771642c --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..486c64f0 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..72ffec80 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt new file mode 100644 index 00000000..7771642c --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..486c64f0 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt new file mode 100644 index 00000000..7771642c --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..486c64f0 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,58 @@ +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests.Reactive")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Reactive.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.Reactive.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.Reactive.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Reactive.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Reactive.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.Reactive.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Reactive.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Reactive.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Reactive/ReactiveUI.Binding.Wpf.Reactive.csproj b/src/ReactiveUI.Binding.Wpf.Reactive/ReactiveUI.Binding.Wpf.Reactive.csproj new file mode 100644 index 00000000..f17966f1 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Reactive/ReactiveUI.Binding.Wpf.Reactive.csproj @@ -0,0 +1,56 @@ + + + + $(BindingWindowsOnlyTargets) + ReactiveUI.Binding.Reactive.Wpf + true + WPF platform support for ReactiveUI.Binding.Reactive, for consumers on System.Reactive. + reactiveui;binding;wpf;dependencyproperty;system.reactive + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityHints.cs b/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityHints.cs new file mode 100644 index 00000000..23dfe48f --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityHints.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Conversion hints, passed as the conversion hint, that change how a boolean maps to a Visibility. +[Flags] +public enum BooleanToVisibilityHints +{ + /// True is Visible and false is Collapsed. + None = 0, + + /// Swaps the mapping, so true is not visible and false is Visible. + Inverse = 1 << 1, + + /// Uses Hidden rather than Collapsed as the value that is not visible. + UseHidden = 1 << 2, +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityTypeConverter.cs b/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityTypeConverter.cs new file mode 100644 index 00000000..969365d1 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/BooleanToVisibilityTypeConverter.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Converts a to or ; the conversion always succeeds. +/// +/// A conversion hint inverts the mapping or selects +/// for the value that is not visible. Any other hint is treated as +/// . +/// +public sealed class BooleanToVisibilityTypeConverter : BindingTypeConverter +{ + /// + public override int GetAffinityForObjects() => BindingAffinity.DefaultInternalTypeConverter; + + /// + public override bool TryConvert(bool from, object? conversionHint, [NotNullWhen(true)] out Visibility result) + { + var hint = conversionHint is BooleanToVisibilityHints visibilityHint + ? visibilityHint + : BooleanToVisibilityHints.None; + + if ((hint & BooleanToVisibilityHints.Inverse) != 0 ? !from : from) + { + result = Visibility.Visible; + return true; + } + + result = (hint & BooleanToVisibilityHints.UseHidden) != 0 + ? Visibility.Hidden + : Visibility.Collapsed; + return true; + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/Builder/WpfBindingBuilderExtensions.cs b/src/ReactiveUI.Binding.Wpf.Shared/Builder/WpfBindingBuilderExtensions.cs new file mode 100644 index 00000000..c3630381 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/Builder/WpfBindingBuilderExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf.Builder; +#else +namespace ReactiveUI.Binding.Wpf.Builder; +#endif + +/// WPF-specific extensions for the ReactiveUI.Binding builder. +public static class WpfBindingBuilderExtensions +{ + /// Provides WithWpf extension members for . + /// The builder instance; it must be an . + extension(IAppBuilder builder) + { + /// Registers the WPF module, which adds dependency-property observation and the dispatcher view thread invoker. + /// The builder instance for chaining. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IReactiveUIBindingBuilder WithWpf() => + ((IReactiveUIBindingBuilder)builder).WithWpf(); + } + + /// Provides WithWpf extension members for . + /// The builder instance. + extension(IReactiveUIBindingBuilder builder) + { + /// Registers the WPF module, which adds dependency-property observation and the dispatcher view thread invoker. + /// The builder instance for chaining. + /// The builder is null. + public IReactiveUIBindingBuilder WithWpf() + { + ArgumentExceptionHelper.ThrowIfNull(builder); + + return builder.WithPlatformModule(new WpfBindingModule()); + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/DependencyObjectObservableForProperty.cs b/src/ReactiveUI.Binding.Wpf.Shared/DependencyObjectObservableForProperty.cs new file mode 100644 index 00000000..05726c3c --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/DependencyObjectObservableForProperty.cs @@ -0,0 +1,100 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using System.Windows; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Observes a WPF DependencyObject property through its {PropertyName}Property dependency property. +/// +/// The observable raises after the value changes, and each notification carries no value; the observer reads the property. +/// A before-change request receives the same after-change observable. +/// +public class DependencyObjectObservableForProperty : ICreatesObservableForProperty +{ + /// Returns the WPF dependency-object affinity when the type declares a public static {propertyName}Property field. + /// The type that owns the property. + /// The property name, without the Property suffix. + /// Ignored. + /// for a DependencyObject type with such a field; otherwise zero. + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) + { + if (!typeof(DependencyObject).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) + { + return 0; + } + + return GetDependencyProperty(type, propertyName) is not null ? BindingAffinity.WpfDependencyObject : 0; + } + + /// Returns an observable that raises whenever the dependency property changes on . + /// The DependencyObject to observe. + /// The expression carried on each notification. + /// The property name, without the Property suffix. + /// Ignored; notifications are always after the change. + /// to skip the debug message written when no descriptor is found. + /// An observable that subscribes to the descriptor's value-changed event and unsubscribes on disposal. + /// is null. + /// The type declares no dependency property for . + /// WPF supplies no descriptor for the dependency property. + public IObservable> GetNotificationForProperty( + object sender, + System.Linq.Expressions.Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) + { + ArgumentExceptionHelper.ThrowIfNull(sender); + + var type = sender.GetType(); + + var dependencyProperty = GetDependencyProperty(type, propertyName) ?? throw new ArgumentException( + $"The property {propertyName} does not have a dependency property.", + nameof(propertyName)); + var dependencyPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(dependencyProperty, type); + + if (dependencyPropertyDescriptor is null) + { + if (!suppressWarnings) + { + Debug.WriteLine( + $"[ReactiveUI.Binding.Wpf] Error: Couldn't find dependency property {propertyName} on {type.Name}"); + } + + throw new InvalidOperationException($"Couldn't find dependency property {propertyName} on {type.Name}"); + } + + return new AnonymousObservable>(subj => + { + var handler = new EventHandler((_, _) => + subj.OnNext(new ObservedChange(sender, expression, default))); + + dependencyPropertyDescriptor.AddValueChanged(sender, handler); + return Scope.Create( + new(dependencyPropertyDescriptor, sender, handler), + static state => state.Descriptor.RemoveValueChanged(state.Sender, state.Handler)); + }); + } + + /// Retrieves the associated with the specified property name on the given type, if available. + /// The type to search for the dependency property. + /// The name of the property for which the dependency property is sought. + /// + /// The associated with the specified property name, + /// or null if no matching dependency property is found. + /// + internal static DependencyProperty? GetDependencyProperty(Type type, string propertyName) + { + var fi = Array.Find( + type.GetTypeInfo().GetFields(BindingFlags.FlattenHierarchy | BindingFlags.Static | BindingFlags.Public), + x => x.Name == $"{propertyName}Property" && x.IsStatic); + + return (DependencyProperty?)fi?.GetValue(null); + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/DependencyPropertySubscription.cs b/src/ReactiveUI.Binding.Wpf.Shared/DependencyPropertySubscription.cs new file mode 100644 index 00000000..b5838ab0 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/DependencyPropertySubscription.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// The handler a dependency-property observation has to detach when it is disposed. +/// The descriptor the handler was attached through. +/// The object being watched. +/// The handler to detach. +[DebuggerDisplay("DependencyPropertySubscription: {Descriptor.Name,nq} on {Sender}")] +internal readonly record struct DependencyPropertySubscription( + DependencyPropertyDescriptor Descriptor, + object Sender, + EventHandler Handler); diff --git a/src/ReactiveUI.Binding.Wpf.Shared/DispatcherViewThreadInvoker.cs b/src/ReactiveUI.Binding.Wpf.Shared/DispatcherViewThreadInvoker.cs new file mode 100644 index 00000000..75f0b43d --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/DispatcherViewThreadInvoker.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Windows.Threading; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Routes writes to a WPF DispatcherObject onto the DispatcherSequencer of the dispatcher that owns it. +/// The sequencer posts at normal priority. An object with no dispatcher, such as a frozen Freezable, is written inline. +public sealed class DispatcherViewThreadInvoker : SequencerViewThreadInvoker +{ + /// Gets the shared instance, which generated bindings route their WPF writes through. + public static DispatcherViewThreadInvoker Instance { get; } = new(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected override DispatcherSequencer? SequencerFor(DispatcherObject target) => + target.Dispatcher is { } dispatcher ? DispatcherSequencer.For(dispatcher) : null; +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/VisibilityToBooleanTypeConverter.cs b/src/ReactiveUI.Binding.Wpf.Shared/VisibilityToBooleanTypeConverter.cs new file mode 100644 index 00000000..f64c8430 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/VisibilityToBooleanTypeConverter.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Converts a to a , true for Visible and false for Hidden or Collapsed; the conversion always succeeds. +/// +/// A conversion hint inverts the result. Any other hint is treated as +/// . +/// +public sealed class VisibilityToBooleanTypeConverter : BindingTypeConverter +{ + /// + public override int GetAffinityForObjects() => BindingAffinity.DefaultInternalTypeConverter; + + /// + public override bool TryConvert(Visibility from, object? conversionHint, [NotNullWhen(true)] out bool result) + { + var hint = conversionHint is BooleanToVisibilityHints visibilityHint + ? visibilityHint + : BooleanToVisibilityHints.None; + + var isVisible = from == Visibility.Visible; + result = (hint & BooleanToVisibilityHints.Inverse) != 0 ? !isVisible : isVisible; + return true; + } +} diff --git a/src/ReactiveUI.Binding.Wpf.Shared/WpfBindingModule.cs b/src/ReactiveUI.Binding.Wpf.Shared/WpfBindingModule.cs new file mode 100644 index 00000000..046a1a48 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf.Shared/WpfBindingModule.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Splat.Builder; + +#if REACTIVE_SHIM +namespace ReactiveUI.Binding.Reactive.Wpf; +#else +namespace ReactiveUI.Binding.Wpf; +#endif + +/// Registers the WPF dependency-property observer and view thread invoker with the dependency resolver. +/// +/// WPF command binding is handled at compile time by the source generator. +/// +public sealed class WpfBindingModule : IModule +{ + /// + public void Configure(IMutableDependencyResolver resolver) + { + ArgumentExceptionHelper.ThrowIfNull(resolver); + + resolver.RegisterLazySingleton(static () => + new DependencyObjectObservableForProperty()); + + resolver.RegisterLazySingleton(static () => new DispatcherViewThreadInvoker()); + } +} diff --git a/src/ReactiveUI.Binding.Wpf/Directory.Build.targets b/src/ReactiveUI.Binding.Wpf/Directory.Build.targets new file mode 100644 index 00000000..cb3abce3 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows/PublicAPI.txt new file mode 100644 index 00000000..e4498371 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..be769ebe --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows/PublicAPI.txt new file mode 100644 index 00000000..e4498371 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..be769ebe --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..c4272c4b --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,56 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows/PublicAPI.txt new file mode 100644 index 00000000..e4498371 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..be769ebe --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows/PublicAPI.txt new file mode 100644 index 00000000..e4498371 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows7.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt new file mode 100644 index 00000000..be769ebe --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -0,0 +1,57 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf.Tests")] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")] +namespace ReactiveUI.Binding.Wpf +{ + [System.Flags] + public enum BooleanToVisibilityHints + { + None = 0, + Inverse = 2, + UseHidden = 4, + } + public sealed class BooleanToVisibilityTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToVisibilityTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out System.Windows.Visibility result) { } + } + public class DependencyObjectObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public DependencyObjectObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public sealed class DispatcherViewThreadInvoker : ReactiveUI.Binding.SequencerViewThreadInvoker + { + public DispatcherViewThreadInvoker() { } + public static ReactiveUI.Binding.Wpf.DispatcherViewThreadInvoker Instance { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + protected override ReactiveUI.Primitives.Concurrency.DispatcherSequencer? SequencerFor(System.Windows.Threading.DispatcherObject target) { } + } + public sealed class VisibilityToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public VisibilityToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Windows.Visibility from, object? conversionHint, out bool result) { } + } + public sealed class WpfBindingModule : Splat.Builder.IModule + { + public WpfBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } +} +namespace ReactiveUI.Binding.Wpf.Builder +{ + public static class WpfBindingBuilderExtensions + { + extension(ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder builder) + { + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + extension(Splat.Builder.IAppBuilder builder) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithWpf() { } + } + } +} diff --git a/src/ReactiveUI.Binding.Wpf/ReactiveUI.Binding.Wpf.csproj b/src/ReactiveUI.Binding.Wpf/ReactiveUI.Binding.Wpf.csproj new file mode 100644 index 00000000..ff5a3a02 --- /dev/null +++ b/src/ReactiveUI.Binding.Wpf/ReactiveUI.Binding.Wpf.csproj @@ -0,0 +1,47 @@ + + + $(BindingWindowsOnlyTargets) + true + WPF platform support for ReactiveUI.Binding. Provides DependencyProperty observation and Visibility converters. + reactiveui;binding;wpf;dependencyproperty + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.Binding.slnf b/src/ReactiveUI.Binding.slnf new file mode 100644 index 00000000..5f37f17f --- /dev/null +++ b/src/ReactiveUI.Binding.slnf @@ -0,0 +1,21 @@ +{ + "solution": { + "path": "ReactiveUI.SourceGenerators.slnx", + "projects": [ + "ReactiveUI.Binding\\ReactiveUI.Binding.csproj", + "ReactiveUI.Binding.Reactive\\ReactiveUI.Binding.Reactive.csproj", + "ReactiveUI.Binding.SourceGenerators\\ReactiveUI.Binding.SourceGenerators.csproj", + "ReactiveUI.Binding.SourceGenerators.Roslyn413\\ReactiveUI.Binding.SourceGenerators.Roslyn413.csproj", + "ReactiveUI.Binding.Analyzer\\ReactiveUI.Binding.Analyzer.csproj", + "ReactiveUI.Binding.Analyzer.Roslyn413\\ReactiveUI.Binding.Analyzer.Roslyn413.csproj", + "ReactiveUI.Binding.Wpf\\ReactiveUI.Binding.Wpf.csproj", + "ReactiveUI.Binding.Wpf.Reactive\\ReactiveUI.Binding.Wpf.Reactive.csproj", + "ReactiveUI.Binding.WinForms\\ReactiveUI.Binding.WinForms.csproj", + "ReactiveUI.Binding.WinForms.Reactive\\ReactiveUI.Binding.WinForms.Reactive.csproj", + "ReactiveUI.Binding.Maui\\ReactiveUI.Binding.Maui.csproj", + "ReactiveUI.Binding.Maui.Reactive\\ReactiveUI.Binding.Maui.Reactive.csproj", + "ReactiveUI.Binding.Avalonia\\ReactiveUI.Binding.Avalonia.csproj", + "ReactiveUI.Binding.Avalonia.Reactive\\ReactiveUI.Binding.Avalonia.Reactive.csproj" + ] + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net10.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net10.0-ios/PublicAPI.txt new file mode 100644 index 00000000..d0da16d7 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net10.0-ios/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net10.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net10.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..e6c76652 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net10.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net10.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net10.0-macos/PublicAPI.txt new file mode 100644 index 00000000..b2fb48a4 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net10.0-macos/PublicAPI.txt @@ -0,0 +1,2431 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS26.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("AppKitCommandTarget: IsEnabled = {IsEnabled}")] + public sealed class AppKitCommandTarget : Foundation.NSObject + { + public AppKitCommandTarget(System.Windows.Input.ICommand command, System.Func parameter) { } + public bool IsEnabled { get; set; } + [Foundation.Export("theAction:")] + public void Execute(Foundation.NSObject sender) { } + [Foundation.Export("validateMenuItem:")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool ValidateMenuItem(AppKit.NSMenuItem item) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net10.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net10.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..15887b3c --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net10.0-tvos/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS26.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..c516a4d9 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,2410 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net11.0-ios/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net11.0-ios/PublicAPI.txt new file mode 100644 index 00000000..d0da16d7 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net11.0-ios/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("iOS15.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net11.0-maccatalyst/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net11.0-maccatalyst/PublicAPI.txt new file mode 100644 index 00000000..e6c76652 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net11.0-maccatalyst/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("MacCatalyst15.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net11.0-macos/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net11.0-macos/PublicAPI.txt new file mode 100644 index 00000000..ad22f966 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net11.0-macos/PublicAPI.txt @@ -0,0 +1,2431 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("macOS27.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("AppKitCommandTarget: IsEnabled = {IsEnabled}")] + public sealed class AppKitCommandTarget : Foundation.NSObject + { + public AppKitCommandTarget(System.Windows.Input.ICommand command, System.Func parameter) { } + public bool IsEnabled { get; set; } + [Foundation.Export("theAction:")] + public void Execute(Foundation.NSObject sender) { } + [Foundation.Export("validateMenuItem:")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool ValidateMenuItem(AppKit.NSMenuItem item) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net11.0-tvos/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net11.0-tvos/PublicAPI.txt new file mode 100644 index 00000000..a3bc5e8b --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net11.0-tvos/PublicAPI.txt @@ -0,0 +1,2419 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +[assembly: System.Runtime.Versioning.SupportedOSPlatform("tvOS27.0")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("KvoPropertyObservable: KvoProperty: {_keyPath}")] + public sealed class KvoPropertyObservable : System.IObservable + { + public KvoPropertyObservable(Foundation.NSObject source, string keyPath, System.Func getter, bool distinct, bool beforeChange) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..c516a4d9 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,2410 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..a247e64e --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,2048 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + [System.Serializable] + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + public TValue GetValue() { } + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net8.0/PublicAPI.txt new file mode 100644 index 00000000..f687fbe5 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net8.0/PublicAPI.txt @@ -0,0 +1,2403 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.Binding/PublicAPI/net9.0/PublicAPI.txt new file mode 100644 index 00000000..c516a4d9 --- /dev/null +++ b/src/ReactiveUI.Binding/PublicAPI/net9.0/PublicAPI.txt @@ -0,0 +1,2410 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Avalonia")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.GeneratedCode.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Maui")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Uno")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.WinForms")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ReactiveUI.Binding.Wpf")] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.MemberNotNullAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.NotNullWhenAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.CallerArgumentExpressionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.CompilerServices.IsExternalInit))] +namespace ReactiveUI.Binding +{ + public static class BindingAffinity + { + public static readonly int DefaultEvent; + public static readonly int DefaultInternalTypeConverter; + public static readonly int EventEnabledControl; + public static readonly int ExactType; + public static readonly int Explicit; + public static readonly int Fallback; + public static readonly int Kvo; + public static readonly int WinFormsEvent; + public static readonly int WinUiDependencyObject; + public static readonly int WpfDependencyObject; + } + [System.Diagnostics.DebuggerDisplay("BindingChange: {FromViewModel ? \"ViewModel\" : \"View\",nq} -> {Value}")] + public readonly record struct BindingChange : System.IEquatable + { + public BindingChange(object? Value, bool FromViewModel) { } + public bool FromViewModel { get; init; } + public object? Value { get; init; } + } + public static class BindingConverters + { + public static ReactiveUI.Binding.ConverterService Current { get; } + public static void SetService(ReactiveUI.Binding.ConverterService service) { } + } + public enum BindingDirection + { + OneWay = 0, + TwoWay = 1, + AsyncOneWay = 2, + } + public static class BindingErrors + { + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IDisposable Subscribe(System.IObservable source, System.Action onNext, string bindingExpression) { } + } + [System.Diagnostics.DebuggerDisplay("BindingFallbackConverterRegistry: {_snapshot.Converters.Count} fallback converters registered")] + public sealed class BindingFallbackConverterRegistry + { + public BindingFallbackConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.IBindingFallbackConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public static class BindingHooks + { + public static bool Any { get; } + public static void Refresh() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static bool ShouldBind(object? source, object target, System.Func[]> getSourceProperties, System.Func[]> getTargetProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public static class BindingSchedulers + { + public static ReactiveUI.Primitives.Concurrency.ISequencer? MainThread { get; set; } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnSequencer(System.IObservable source, ReactiveUI.Primitives.Concurrency.ISequencer scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static System.IObservable ObserveOnViewThread(System.IObservable source, object? target, ReactiveUI.Binding.IViewThreadInvoker fallback) { } + public static void UseSynchronizationContext(System.Threading.SynchronizationContext? context) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} converter")] + public abstract class BindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + protected BindingTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + public abstract int GetAffinityForObjects() { } + public abstract bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public static class BindingTypeConverterDispatch + { + public static bool TryConvert(ReactiveUI.Binding.IBindingTypeConverter converter, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertAny(object? converter, System.Type fromType, object? from, System.Type toType, object? conversionHint, out object? result) { } + public static bool TryConvertFallback(ReactiveUI.Binding.IBindingFallbackConverter converter, System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + [System.Diagnostics.DebuggerDisplay("BindingTypeConverterRegistry: Typed converters for {_snapshot.ConvertersByTypePair.Count} type pairs")] + public sealed class BindingTypeConverterRegistry + { + public BindingTypeConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public ReactiveUI.Binding.IBindingTypeConverter? TryGetConverter(System.Type fromType, System.Type toType) { } + } + public sealed class BooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public BooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("ByteToNullableByteTypeConverter: byte -> byte? (affinity {Affinity})")] + public sealed class ByteToNullableByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ByteToNullableByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte from, object? conversionHint, out byte? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte from, object? conversionHint, out string? result) { } + } + public static class ConverterMigrationHelper + { + public static ReactiveUI.Binding.ExtractedConverters ExtractConverters(Splat.IReadonlyDependencyResolver resolver) { } + } + public static class ConverterMigrationHelperMixins + { + extension(ReactiveUI.Binding.ConverterService converterService) + { + public void ImportFrom(Splat.IReadonlyDependencyResolver resolver) { } + } + } + [System.Diagnostics.DebuggerDisplay("ConverterService: Typed: {TypedConverters}; fallback: {FallbackConverters}; set-method: {SetMethodConverters}")] + public sealed class ConverterService + { + public ConverterService() { } + public ReactiveUI.Binding.BindingFallbackConverterRegistry FallbackConverters { get; } + public ReactiveUI.Binding.SetMethodBindingConverterRegistry SetMethodConverters { get; } + public ReactiveUI.Binding.BindingTypeConverterRegistry TypedConverters { get; } + public object? ResolveConverter(System.Type fromType, System.Type toType) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ISetMethodBindingConverter? ResolveSetMethodConverter(System.Type? fromType, System.Type? toType) { } + } + public static class CreatesObservableForPropertyMixins + { + extension(ReactiveUI.Binding.ICreatesObservableForProperty factory) + { + public int GetAffinityForObject(System.Type type, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged) { } + } + } + public sealed class DateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset from, object? conversionHint, out string? result) { } + } + public sealed class DateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("DecimalToNullableDecimalTypeConverter: decimal -> decimal? (affinity {Affinity})")] + public sealed class DecimalToNullableDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DecimalToNullableDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal from, object? conversionHint, out decimal? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal from, object? conversionHint, out string? result) { } + } + public static class DefaultConverterRegistration + { + public static void RegisterDefaults(ReactiveUI.Binding.ConverterService service) { } + } + [System.Diagnostics.DebuggerDisplay("DefaultViewLocator: Mappings = {_mappings.Count}")] + public sealed class DefaultViewLocator : ReactiveUI.Binding.IViewLocator + { + public DefaultViewLocator() { } + public ReactiveUI.Binding.ViewMappingBuilder CreateMappingBuilder() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map(System.Func factory) where TViewModel : class { } + public void Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public void Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Unmap() where TViewModel : class { } + public bool Unmap(string? contract) where TViewModel : class { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static void SetGeneratedViewDispatch(System.Func dispatch) { } + } + [System.Diagnostics.DebuggerDisplay("DoubleToNullableDoubleTypeConverter: double -> double? (affinity {Affinity})")] + public sealed class DoubleToNullableDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public DoubleToNullableDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double from, object? conversionHint, out double? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class DoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public DoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("EqualityTypeConverter: {FromType.Name,nq} -> {ToType.Name,nq} by equality with the conversion hint")] + public sealed class EqualityTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public EqualityTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + public sealed class ExcludeFromViewRegistrationAttribute : System.Attribute + { + public ExcludeFromViewRegistrationAttribute() { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ExpressionChainParameters: ExpressionChain: {Expression}, BeforeChange = {BeforeChange}, Distinct = {IsDistinct}")] + public readonly record struct ExpressionChainParameters : System.IEquatable> + { + public ExpressionChainParameters(TSender? Source, System.Linq.Expressions.Expression? Expression, System.Linq.Expressions.Expression[] Links, bool BeforeChange, bool SkipInitial, bool IsDistinct, bool SuppressWarnings) { } + public bool BeforeChange { get; init; } + public System.Linq.Expressions.Expression? Expression { get; init; } + public bool IsDistinct { get; init; } + public System.Linq.Expressions.Expression[] Links { get; init; } + public bool SkipInitial { get; init; } + public TSender? Source { get; init; } + public bool SuppressWarnings { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ExtractedConverters: {TypedConverters.Count} typed, {FallbackConverters.Count} fallback, {SetMethodConverters.Count} set-method")] + public record ExtractedConverters : System.IEquatable + { + public ExtractedConverters(System.Collections.Generic.IList TypedConverters, System.Collections.Generic.IList FallbackConverters, System.Collections.Generic.IList SetMethodConverters) { } + public System.Collections.Generic.IList FallbackConverters { get; init; } + public System.Collections.Generic.IList SetMethodConverters { get; init; } + public System.Collections.Generic.IList TypedConverters { get; init; } + } + public sealed class GuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public GuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid from, object? conversionHint, out string? result) { } + } + public interface IActivatableView + { + } + public interface IBindingFallbackConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + bool TryConvert(System.Type fromType, object from, System.Type toType, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : Splat.IEnableLogger + { + System.Type FromType { get; } + System.Type ToType { get; } + int GetAffinityForObjects() { } + bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public interface IBindingTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + bool TryConvert(TFrom? from, object? conversionHint, out TTo? result) { } + } + public interface ICreatesCommandBinding + { + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, string eventName) where T : class { } + System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, T? target, System.IObservable commandParameter, System.Action> addHandler, System.Action> removeHandler) where T : class where TEventArgs : System.EventArgs { } + int GetAffinityForObject(bool hasEventTarget) { } + } + public interface ICreatesObservableForProperty + { + int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + public interface IInteraction + { + System.IObservable Handle(TInput input) { } + System.IDisposable RegisterHandler(System.Action> handler) { } + System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + } + public interface IInteractionContext + { + TInput Input { get; } + bool IsHandled { get; } + void SetOutput(TOutput output) { } + } + public interface IObservedChange + { + System.Linq.Expressions.Expression? Expression { get; } + TSender Sender { get; } + TValue Value { get; } + } + public interface IOutputContext : ReactiveUI.Binding.IInteractionContext + { + TOutput GetOutput() { } + } + public interface IPropertyBindingHook + { + bool ExecuteHook(object? source, object target, System.Func[]> getCurrentViewModelProperties, System.Func[]> getCurrentViewProperties, ReactiveUI.Binding.BindingDirection direction) { } + } + public interface IReactiveBinding : System.IDisposable where TView : ReactiveUI.Binding.IViewFor + { + System.IObservable Changed { get; } + ReactiveUI.Binding.BindingDirection Direction { get; } + TView View { get; } + System.Linq.Expressions.Expression? ViewExpression { get; } + System.Linq.Expressions.Expression? ViewModelExpression { get; } + } + public interface ISetMethodBindingConverter : Splat.IEnableLogger + { + int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } + object? PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } + } + public interface IViewFor : ReactiveUI.Binding.IActivatableView + { + object? ViewModel { get; set; } + } + public interface IViewFor : ReactiveUI.Binding.IViewFor where T : class + { + T? ViewModel { get; set; } + } + public interface IViewLocator : Splat.IEnableLogger + { + ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel, string? contract) { } + ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel, string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel, string? contract) { } + } + public interface IViewThreadInvoker + { + bool CheckAccess(object target) { } + bool Claims(object target) { } + void Post(object target, System.Action callback, object? state) { } + } + [System.Diagnostics.DebuggerDisplay("IntegerToNullableIntegerTypeConverter: int -> int? (affinity {Affinity})")] + public sealed class IntegerToNullableIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public IntegerToNullableIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int from, object? conversionHint, out int? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class IntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public IntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("Interaction: Handlers = {_handlers.Length}")] + public class Interaction : ReactiveUI.Binding.IInteraction + { + public Interaction() { } + public Interaction(ReactiveUI.Primitives.Concurrency.ISequencer? handlerScheduler) { } + protected virtual ReactiveUI.Binding.IOutputContext GenerateContext(TInput input) { } + protected System.Func, System.Threading.Tasks.Task>[] GetHandlers() { } + public virtual System.Threading.Tasks.Task Handle(TInput input) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + System.IObservable ReactiveUI.Binding.IInteraction.Handle(TInput input) { } + public System.IDisposable RegisterHandler(System.Action> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.Threading.Tasks.Task> handler) { } + public System.IDisposable RegisterHandler(System.Func, System.IObservable> handler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable WhenHandled(TInput input) { } + } + [System.Diagnostics.DebuggerDisplay("InteractionContext: Input = {Input}, Handled = {_outputSet == 1}, Output = {_output}")] + public sealed class InteractionContext : ReactiveUI.Binding.IOutputContext + { + public TInput Input { get; } + public bool IsHandled { get; } + public TOutput GetOutput() { } + public void SetOutput(TOutput output) { } + } + [System.Diagnostics.DebuggerDisplay("LongToNullableLongTypeConverter: long -> long? (affinity {Affinity})")] + public sealed class LongToNullableLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public LongToNullableLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long from, object? conversionHint, out long? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class LongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public LongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long from, object? conversionHint, out string? result) { } + } + public sealed class NullableBooleanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableBooleanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(bool? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableByteToByteTypeConverter: byte? -> byte (affinity {Affinity})")] + public sealed class NullableByteToByteTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableByteToByteTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(byte? from, object? conversionHint, out byte result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableByteToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableByteToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(byte? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeOffsetToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeOffsetToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTimeOffset? from, object? conversionHint, out string? result) { } + } + public sealed class NullableDateTimeToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDateTimeToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.DateTime? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDecimalToDecimalTypeConverter: decimal? -> decimal (affinity {Affinity})")] + public sealed class NullableDecimalToDecimalTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDecimalToDecimalTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(decimal? from, object? conversionHint, out decimal result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDecimalToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDecimalToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(decimal? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableDoubleToDoubleTypeConverter: double? -> double (affinity {Affinity})")] + public sealed class NullableDoubleToDoubleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableDoubleToDoubleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(double? from, object? conversionHint, out double result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableDoubleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableDoubleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(double? from, object? conversionHint, out string? result) { } + } + public sealed class NullableGuidToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableGuidToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Guid? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableIntegerToIntegerTypeConverter: int? -> int (affinity {Affinity})")] + public sealed class NullableIntegerToIntegerTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableIntegerToIntegerTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(int? from, object? conversionHint, out int result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableIntegerToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableIntegerToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(int? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableLongToLongTypeConverter: long? -> long (affinity {Affinity})")] + public sealed class NullableLongToLongTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableLongToLongTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(long? from, object? conversionHint, out long result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableLongToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableLongToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(long? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableShortToShortTypeConverter: short? -> short (affinity {Affinity})")] + public sealed class NullableShortToShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableShortToShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short? from, object? conversionHint, out short result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short? from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("NullableSingleToSingleTypeConverter: float? -> float (affinity {Affinity})")] + public sealed class NullableSingleToSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public NullableSingleToSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float? from, object? conversionHint, out float result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class NullableSingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableSingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly? from, object? conversionHint, out string? result) { } + } + public sealed class NullableTimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public NullableTimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyAttribute: ReadOnly = {ReadOnly}, UseProtected = {UseProtected}, InitialValue = {InitialValue}")] + public sealed class ObservableAsPropertyAttribute : System.Attribute + { + public ObservableAsPropertyAttribute() { } + public ReactiveUI.Binding.ObservableAsPropertyInheritance Inheritance { get; set; } + public string? InitialValue { get; set; } + public string? PropertyName { get; set; } + public bool ReadOnly { get; set; } + public bool UseProtected { get; set; } + } + [System.Diagnostics.DebuggerDisplay("ObservableAsPropertyHelper: Value = {_core.LastValue}, IsSubscribed = {IsSubscribed}")] + public sealed class ObservableAsPropertyHelper : System.IDisposable + { + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Func getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public ObservableAsPropertyHelper(System.IObservable observable, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + public bool IsSubscribed { get; } + public System.IObservable ThrownExceptions { get; } + public T Value { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void Dispose() { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, ReactiveUI.Binding.ObservablePropertyTarget target, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, System.Func? getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Create(System.IObservable observable, object owner, System.Action onChanged, System.Action? onChanging, T? initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue) { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper Default(T? initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) { } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static T PendingValue(object owner, string propertyName, T fallback) { } + } + public enum ObservableAsPropertyInheritance + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("{Owner}.{PropertyName}")] + public readonly struct ObservablePropertyTarget : System.IEquatable + { + public ObservablePropertyTarget(object owner, string propertyName) { } + public object Owner { get; } + public string PropertyName { get; } + public readonly bool Equals(ReactiveUI.Binding.ObservablePropertyTarget other) { } + public override readonly bool Equals(object? obj) { } + public override readonly int GetHashCode() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator ==(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool operator !=(ReactiveUI.Binding.ObservablePropertyTarget left, ReactiveUI.Binding.ObservablePropertyTarget right) { } + } + [System.Diagnostics.DebuggerDisplay("ObservedChange: Expression = {Expression}, Sender = {Sender}, Value = {Value}")] + public class ObservedChange : ReactiveUI.Binding.IObservedChange + { + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } + public TSender Sender { get; } + public TValue Value { get; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + public static class ObservedProperty + { + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property, System.Func getter) where TSource : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable> Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2) where TSource : class { } + public static System.IObservable Create(TSource source, System.Linq.Expressions.Expression> property1, System.Func getter1, System.Linq.Expressions.Expression> property2, System.Func getter2, System.Func selector) where TSource : class { } + public static System.IObservable Switch(this System.IObservable?> source) { } + public static System.IObservable Then(this System.IObservable parent, System.Linq.Expressions.Expression> property, System.Func getter) where TParent : class { } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +1 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +2 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +3 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +4 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +5 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +6 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +7 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9) { } + public T1 Property1 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +8 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +9 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +10 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +11 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +12 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +13 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("PropertyValues: {Property1}, {Property2}, +14 more")] + public readonly record struct PropertyValues : System.IEquatable> + { + public PropertyValues(T1 Property1, T2 Property2, T3 Property3, T4 Property4, T5 Property5, T6 Property6, T7 Property7, T8 Property8, T9 Property9, T10 Property10, T11 Property11, T12 Property12, T13 Property13, T14 Property14, T15 Property15, T16 Property16) { } + public T1 Property1 { get; init; } + public T10 Property10 { get; init; } + public T11 Property11 { get; init; } + public T12 Property12 { get; init; } + public T13 Property13 { get; init; } + public T14 Property14 { get; init; } + public T15 Property15 { get; init; } + public T16 Property16 { get; init; } + public T2 Property2 { get; init; } + public T3 Property3 { get; init; } + public T4 Property4 { get; init; } + public T5 Property5 { get; init; } + public T6 Property6 { get; init; } + public T7 Property7 { get; init; } + public T8 Property8 { get; init; } + public T9 Property9 { get; init; } + } + [System.Diagnostics.DebuggerDisplay("ReactiveBinding: {Direction} binding on {View}")] + public sealed class ReactiveBinding : ReactiveUI.Binding.IReactiveBinding where TView : ReactiveUI.Binding.IViewFor + { + public ReactiveBinding(TView view, System.IObservable changed, ReactiveUI.Binding.BindingDirection direction, System.IDisposable subscription) { } + public System.IObservable Changed { get; } + public ReactiveUI.Binding.BindingDirection Direction { get; } + public TView View { get; } + public System.Linq.Expressions.Expression? ViewExpression { get; } + public System.Linq.Expressions.Expression? ViewModelExpression { get; } + public void Dispose() { } + } + public static class ReactiveSchedulerExtensions + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, object? conversionHint) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class { } + extension(TSource source) where TSource : class + { + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindOneWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.IBindingTypeConverter sourceToTargetConverter, ReactiveUI.Binding.IBindingTypeConverter targetToSourceConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public System.IDisposable BindTwoWay(TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + } + extension(TView view) where TView : class, ReactiveUI.Binding.IViewFor + { + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter viewModelToViewConverter, ReactiveUI.Binding.IBindingTypeConverter viewToViewModelConverter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding Bind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.IBindingTypeConverter converter, object? conversionHint = null, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler = null, string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + public ReactiveUI.Binding.IReactiveBinding OneWayBind(TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class { } + } + } + public static class ReactiveUIBindingExtensions + { + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding Bind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null, string propertyNameExpression = "", string controlNameExpression = "", string withParameterExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindCommandUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TView : class, ReactiveUI.Binding.IViewFor where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindInteraction(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler, string propertyNameExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.Threading.Tasks.Task> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindInteractionUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression>> propertyName, System.Func, System.IObservable> handler) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindOneWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindOneWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversionFunc) where TSource : class where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + public static System.IDisposable BindTo(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindToUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> property, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride) where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + public static System.IDisposable BindTwoWay(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv, string sourcePropertyExpression = "", string targetPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IDisposable BindTwoWayUnsafe(this TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func sourceToTargetConv, System.Func targetToSourceConv) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding BindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func viewModelToViewConverter, System.Func viewToViewModelConverter, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate = ViewToViewModel) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommand(this System.IObservable source, System.Windows.Input.ICommand command) { } + public static System.IDisposable InvokeCommand(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty, string commandPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable InvokeCommandUnsafe(this System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector, string viewModelPropertyExpression = "", string viewPropertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBindUnsafe(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func selector) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Runtime.CompilerServices.OverloadResolutionPriority(1)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToProperty(this System.IObservable target, TObj source, System.Func property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string propertyExpression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, System.Linq.Expressions.Expression> property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, TRet initialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] + public static ReactiveUI.Binding.ObservableAsPropertyHelper ToPropertyUnsafe(this System.IObservable target, TObj source, string property, out ReactiveUI.Binding.ObservableAsPropertyHelper result, System.Func getInitialValue, bool deferSubscription, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler) where TObj : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Func, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector, bool isDistinct) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, string obs1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector, string obs1Expression = "", string obs2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector, string obs1Expression = "", string obs2Expression = "", string obs3Expression = "", string obs4Expression = "", string obs5Expression = "", string obs6Expression = "", string obs7Expression = "", string obs8Expression = "", string obs9Expression = "", string obs10Expression = "", string obs11Expression = "", string obs12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyObservableUnsafe(this TSender sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static System.IObservable WhenAnyUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, ReactiveUI.Binding.IObservedChange, TRet> selector) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func selector) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TSender : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenAnyValueUnsafe(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func selector) where TSender : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanged(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangedUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, string property1Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable> WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + public static System.IObservable WhenChanging(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc, string property1Expression = "", string property2Expression = "", string property3Expression = "", string property4Expression = "", string property5Expression = "", string property6Expression = "", string property7Expression = "", string property8Expression = "", string property9Expression = "", string property10Expression = "", string property11Expression = "", string property12Expression = "", string property13Expression = "", string property14Expression = "", string property15Expression = "", string property16Expression = "", string callerFilePath = "", int callerLineNumber = 0) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Func conversionFunc) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static System.IObservable> WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16) where TObj : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable WhenChangingUnsafe(this TObj objectToMonitor, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Linq.Expressions.Expression> property13, System.Linq.Expressions.Expression> property14, System.Linq.Expressions.Expression> property15, System.Linq.Expressions.Expression> property16, System.Func conversionFunc) where TObj : class { } + } + public abstract class SequencerViewThreadInvoker : ReactiveUI.Binding.IViewThreadInvoker where TTarget : class where TSequencer : class, ReactiveUI.Primitives.Concurrency.ISequencer, ReactiveUI.Primitives.Concurrency.IThreadAffineSequencer + { + protected SequencerViewThreadInvoker() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool CheckAccess(object target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public bool Claims(object target) { } + public void Post(object target, System.Action callback, object? state) { } + protected abstract TSequencer? SequencerFor(TTarget target) { } + } + [System.Diagnostics.DebuggerDisplay("SetMethodBindingConverterRegistry: {_snapshot.Converters.Count} set-method converters registered")] + public sealed class SetMethodBindingConverterRegistry + { + public SetMethodBindingConverterRegistry() { } + public System.Collections.Generic.IEnumerable GetAllConverters() { } + public void Register(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + public ReactiveUI.Binding.ISetMethodBindingConverter? TryGetConverter(System.Type? fromType, System.Type? toType) { } + } + [System.Diagnostics.DebuggerDisplay("ShortToNullableShortTypeConverter: short -> short? (affinity {Affinity})")] + public sealed class ShortToNullableShortTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public ShortToNullableShortTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(short from, object? conversionHint, out short? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class ShortToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public ShortToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(short from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + public sealed class SingleInstanceViewAttribute : System.Attribute + { + public SingleInstanceViewAttribute() { } + } + [System.Diagnostics.DebuggerDisplay("SingleToNullableSingleTypeConverter: float -> float? (affinity {Affinity})")] + public sealed class SingleToNullableSingleTypeConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public SingleToNullableSingleTypeConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvert(float from, object? conversionHint, out float? result) { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class SingleToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public SingleToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(float from, object? conversionHint, out string? result) { } + } + [System.Diagnostics.DebuggerDisplay("StringConverter: string -> string identity (affinity {Affinity})")] + public sealed class StringConverter : ReactiveUI.Binding.IBindingTypeConverter + { + public StringConverter() { } + public System.Type FromType { get; } + public System.Type ToType { get; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public int GetAffinityForObjects() { } + public bool TryConvertTyped(object? from, object? conversionHint, out object? result) { } + } + public sealed class StringToBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool result) { } + } + public sealed class StringToByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte result) { } + } + public sealed class StringToDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly result) { } + } + public sealed class StringToDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset result) { } + } + public sealed class StringToDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime result) { } + } + public sealed class StringToDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal result) { } + } + public sealed class StringToDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double result) { } + } + public sealed class StringToGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid result) { } + } + public sealed class StringToIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int result) { } + } + public sealed class StringToLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long result) { } + } + public sealed class StringToNullableBooleanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableBooleanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out bool? result) { } + } + public sealed class StringToNullableByteTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableByteTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out byte? result) { } + } + public sealed class StringToNullableDateOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateOnly? result) { } + } + public sealed class StringToNullableDateTimeOffsetTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeOffsetTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTimeOffset? result) { } + } + public sealed class StringToNullableDateTimeTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDateTimeTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.DateTime? result) { } + } + public sealed class StringToNullableDecimalTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDecimalTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out decimal? result) { } + } + public sealed class StringToNullableDoubleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableDoubleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out double? result) { } + } + public sealed class StringToNullableGuidTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableGuidTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Guid? result) { } + } + public sealed class StringToNullableIntegerTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableIntegerTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out int? result) { } + } + public sealed class StringToNullableLongTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableLongTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out long? result) { } + } + public sealed class StringToNullableShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short? result) { } + } + public sealed class StringToNullableSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float? result) { } + } + public sealed class StringToNullableTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly? result) { } + } + public sealed class StringToNullableTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToNullableTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan? result) { } + } + public sealed class StringToShortTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToShortTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out short result) { } + } + public sealed class StringToSingleTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToSingleTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out float result) { } + } + public sealed class StringToTimeOnlyTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeOnlyTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeOnly result) { } + } + public sealed class StringToTimeSpanTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToTimeSpanTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.TimeSpan result) { } + } + public sealed class StringToUriTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public StringToUriTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(string? from, object? conversionHint, out System.Uri? result) { } + } + public sealed class TimeOnlyToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeOnlyToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeOnly from, object? conversionHint, out string? result) { } + } + public sealed class TimeSpanToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public TimeSpanToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.TimeSpan from, object? conversionHint, out string? result) { } + } + public enum TriggerUpdate + { + ViewToViewModel = 0, + ViewModelToView = 1, + } + [System.Diagnostics.DebuggerDisplay("UnhandledInteractionException: Input = {Input}, Interaction = {Interaction}")] + public class UnhandledInteractionException : System.Exception + { + public UnhandledInteractionException() { } + public UnhandledInteractionException(string message) { } + public UnhandledInteractionException(ReactiveUI.Binding.Interaction interaction, TInput input) { } + public UnhandledInteractionException(string message, System.Exception innerException) { } + public TInput Input { get; } + public ReactiveUI.Binding.Interaction? Interaction { get; } + } + public sealed class UriToStringTypeConverter : ReactiveUI.Binding.BindingTypeConverter + { + public UriToStringTypeConverter() { } + public override int GetAffinityForObjects() { } + public override bool TryConvert(System.Uri? from, object? conversionHint, out string? result) { } + } + [System.AttributeUsage(System.AttributeTargets.Class)] + [System.Diagnostics.DebuggerDisplay("ViewContractAttribute: Contract = {Contract}")] + public sealed class ViewContractAttribute : System.Attribute + { + public ViewContractAttribute(string contract) { } + public string Contract { get; } + } + public static class ViewLocator + { + public static ReactiveUI.Binding.IViewLocator GetCurrent() { } + } + public static class ViewLocatorMixins + { + extension(ReactiveUI.Binding.IViewLocator locator) + { + public ReactiveUI.Binding.IViewFor? ResolveView(object? viewModel) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.IViewFor? ResolveView() where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(TViewModel viewModel) where TViewModel : class { } + public ReactiveUI.Binding.IViewFor? ResolveView(string? contract) where TViewModel : class { } + [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("ResolveViewUnsafe closes IViewFor<> over the view model's runtime type to ask the service locator. Use ResolveView with a generated view or a Map registration to stay ahead-of-time safe.")] + public ReactiveUI.Binding.IViewFor? ResolveViewUnsafe(object? viewModel) { } + } + } + public class ViewLocatorNotFoundException : System.Exception + { + public ViewLocatorNotFoundException() { } + public ViewLocatorNotFoundException(string message) { } + public ViewLocatorNotFoundException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("ViewMappingBuilder: Locator = {_locator}")] + public sealed class ViewMappingBuilder + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory) where TViewModel : class { } + public ReactiveUI.Binding.ViewMappingBuilder Map(System.Func factory, string? contract) where TViewModel : class { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder Map() where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + public ReactiveUI.Binding.ViewMappingBuilder Map(string? contract) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor, new() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator() where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + public ReactiveUI.Binding.ViewMappingBuilder MapFromServiceLocator(string? contract, string? serviceContract) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ViewThreadInvokers + { + public static ReactiveUI.Binding.IViewThreadInvoker? ForTarget(object? target) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } +} +namespace ReactiveUI.Binding.Builder +{ + public interface IReactiveUIBindingBuilder : Splat.Builder.IAppBuilder + { + ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCoreServices() { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public interface IReactiveUIBindingInstance : Splat.Builder.IAppInstance + { + } + [System.Diagnostics.DebuggerDisplay("ReactiveUIBindingBuilder: CoreServicesRegistered = {_coreRegistered}")] + public sealed class ReactiveUIBindingBuilder : Splat.Builder.AppBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder, ReactiveUI.Binding.Builder.IReactiveUIBindingInstance + { + public ReactiveUIBindingBuilder(Splat.IMutableDependencyResolver resolver, Splat.IReadonlyDependencyResolver? current) { } + public ReactiveUI.Binding.ConverterService ConverterService { get; } + public ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(System.Action configure) { } + ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder.WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithCommandBinder(ReactiveUI.Binding.ICreatesCommandBinding binder) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(ReactiveUI.Binding.IBindingTypeConverter converter) { } + public override Splat.Builder.IAppBuilder WithCoreServices() { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(T module) where T : Splat.Builder.IModule { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(System.Action configureAction) { } + public ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } + public sealed class ReactiveUIBindingModule : Splat.Builder.IModule + { + public ReactiveUIBindingModule() { } + public void Configure(Splat.IMutableDependencyResolver resolver) { } + } + public static class RxBindingBuilder + { + public static ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + public static void EnsureInitialized() { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void MarkAsInitialized() { } + public static void ResetForTesting() { } + } + public static class RxBindingBuilderMixins + { + extension(Splat.IMutableDependencyResolver resolver) + { + public ReactiveUI.Binding.Builder.ReactiveUIBindingBuilder CreateReactiveUIBindingBuilder() { } + } + } +} +namespace ReactiveUI.Binding.CommandBinding +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBinderService + { + public static ReactiveUI.Binding.ICreatesCommandBinding? GetBinder(bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandInvoker + { + public static System.IDisposable Invoke(System.IObservable source, System.IObservable commands) { } + public static System.IDisposable Invoke(System.IObservable source, System.Windows.Input.ICommand command) { } + } +} +namespace ReactiveUI.Binding.Expressions +{ + public static class ExpressionMixins + { + extension(System.Linq.Expressions.Expression expression) + { + public object?[]? GetArgumentsArray() { } + public System.Collections.Generic.IEnumerable GetExpressionChain() { } + public System.Reflection.MemberInfo? GetMemberInfo() { } + public System.Linq.Expressions.Expression? GetParent() { } + } + } + public static class Reflection + { + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types which may be removed by trimming.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.Binding.IObservedChange[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public static bool TrySetValueToPropertyChain(object? target, System.Collections.Generic.IEnumerable expressionChain, TValue value, bool shouldThrow) { } + } +} +namespace ReactiveUI.Binding.Fallback +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class CommandBindingAffinityChecker + { + public static bool HasHigherAffinityPlugin(int generatedAffinity, bool hasEventTarget) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class ObservationAffinityChecker + { + public static ReactiveUI.Binding.ICreatesObservableForProperty? FindHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + public static bool HasHigherAffinityPlugin(System.Type type, string propertyName, int generatedAffinity, bool beforeChanged) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static void Refresh() { } + } + public static class RuntimeBindingConverter + { + public static bool TryConvert(TFrom value, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, out TTo result) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding Bind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair conversions, System.IObservable? signalViewUpdate, ReactiveUI.Binding.TriggerUpdate triggerUpdate) where TViewModel : class where TView : class, ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindOneWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTo(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> targetProperty, object? conversionHint, ReactiveUI.Binding.IBindingTypeConverter? converterOverride, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static System.IDisposable BindTwoWay(TSource source, TTarget target, System.Linq.Expressions.Expression> sourceProperty, System.Linq.Expressions.Expression> targetProperty, ReactiveUI.Binding.Fallback.TwoWayConverterPair converters, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TSource : class where TTarget : class { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime binding fallback resolves the property chain by reflection.")] + public static ReactiveUI.Binding.IReactiveBinding OneWayBind(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, System.Func conversion, ReactiveUI.Primitives.Concurrency.ISequencer? scheduler, string bindingExpression) where TViewModel : class where TView : ReactiveUI.Binding.IViewFor { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandBindingFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command binding resolves the property chain by reflection.")] + public static System.IDisposable BindCommand(TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> commandProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable commandParameter, string? toEvent, string bindingExpression) where TView : class where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeCommandFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime command fallback resolves the property chain by reflection.")] + public static System.IDisposable InvokeCommand(System.IObservable source, TTarget? target, System.Linq.Expressions.Expression> commandProperty) where TTarget : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class RuntimeInteractionFallback + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime interaction fallback resolves the property chain by reflection.")] + public static System.IDisposable BindInteraction(TViewModel? viewModel, System.Linq.Expressions.Expression>> interactionProperty, System.Func, System.IDisposable> register, string bindingExpression) where TViewModel : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Runtime observation fallback uses reflection-based expression analysis.")] + public static class RuntimeObservationFallback + { + public static System.IObservable WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TSender : class { } + public static System.IObservable> WhenAnyValue(TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TSender : class { } + public static System.IObservable WhenChanged(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanged(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + public static System.IObservable WhenChanging(TObj obj, System.Linq.Expressions.Expression> property) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) where TObj : class { } + public static System.IObservable> WhenChanging(TObj obj, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) where TObj : class { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("TwoWayConverterPair: {typeof(TSourceProp).Name,nq} <-> {typeof(TTargetProp).Name,nq}")] + public record TwoWayConverterPair : System.IEquatable> + { + public TwoWayConverterPair(System.Func Forward, System.Func Reverse) { } + public System.Func Forward { get; init; } + public System.Func Reverse { get; init; } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class TwoWayConverters + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static ReactiveUI.Binding.Fallback.TwoWayConverterPair Create(System.Func forward, System.Func reverse) { } + } +} +namespace ReactiveUI.Binding.Mixins +{ + public static class BuilderMixins + { + public static ReactiveUI.Binding.Builder.IReactiveUIBindingInstance BuildApp(this Splat.Builder.IAppBuilder appBuilder) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder ConfigureViewLocator(this Splat.Builder.IAppBuilder appBuilder, System.Action configure) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingTypeConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithFallbackConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.IBindingFallbackConverter converter) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithPlatformModule(this Splat.Builder.IAppBuilder appBuilder, T module) where T : Splat.Builder.IModule { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithRegistration(this Splat.Builder.IAppBuilder appBuilder, System.Action configureAction) { } + public static ReactiveUI.Binding.Builder.IReactiveUIBindingBuilder WithSetMethodConverter(this Splat.Builder.IAppBuilder appBuilder, ReactiveUI.Binding.ISetMethodBindingConverter converter) { } + } +} +namespace ReactiveUI.Binding.ObservableForProperty +{ + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Diagnostics.DebuggerDisplay("ExpressionChainSink: {_expression}, Links = {_links.Length}, BeforeChange = {_beforeChange}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ExpressionChainSink : System.IObservable> + { + public ExpressionChainSink(TSender? source, System.Linq.Expressions.Expression? expression, System.Linq.Expressions.Expression[] links, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public class INPCObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public INPCObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("ObservableForPropertySink: {_expression}, Sender = {_sender}, SkipInitial = {_skipInitial}, Distinct = {_isDistinct}")] + public sealed class ObservableForPropertySink : System.IObservable> + { + public ObservableForPropertySink(TSender sender, System.Linq.Expressions.Expression expression, System.IObservable> notifications, System.Func readValue, bool skipInitial, bool isDistinct) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + public static class ObservedChangedMixins + { + extension(ReactiveUI.Binding.IObservedChange item) + { + public string GetPropertyName() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue GetValue() { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public TValue? GetValueOrDefault() { } + } + extension(System.IObservable> stream) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable Value() { } + } + } + public sealed class POCOObservableForProperty : ReactiveUI.Binding.ICreatesObservableForProperty + { + public POCOObservableForProperty() { } + public int GetAffinityForObject(System.Type type, string propertyName, bool beforeChanged) { } + public System.IObservable> GetNotificationForProperty(object sender, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChanged, bool suppressWarnings) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public static class ReactiveNotifyPropertyChangedMixins + { + extension(TSender? item) + { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> ObservableForProperty(string propertyName, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + public System.IObservable> ObservableForProperty(System.Linq.Expressions.Expression> property, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")] + public System.IObservable> ObservableForProperty(string propertyName, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool skipInitial) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct) { } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public System.IObservable> SubscribeToExpressionChain(System.Linq.Expressions.Expression? expression, bool beforeChange, bool skipInitial, bool isDistinct, bool suppressWarnings) { } + } + } +} +namespace ReactiveUI.Binding.Observables +{ + [System.Diagnostics.DebuggerDisplay("AppliedChangeObservable: {_observers.Length} observer(s)")] + public sealed class AppliedChangeObservable : System.IObservable + { + public AppliedChangeObservable() { } + public bool HasObservers { get; } + public void OnNext(ReactiveUI.Binding.BindingChange value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("CallbackPropertyObservable: CallbackProperty: {_source}, Distinct = {_distinct}")] + public sealed class CallbackPropertyObservable : System.IObservable + { + public CallbackPropertyObservable(TSource source, System.Func subscribe, System.Func getter, bool distinct) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public static class CombineLatestObservable + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.Func resultSelector) { } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public static System.IObservable Create(System.IObservable source1, System.IObservable source2, System.IObservable source3, System.IObservable source4, System.IObservable source5, System.IObservable source6, System.IObservable source7, System.IObservable source8, System.IObservable source9, System.IObservable source10, System.IObservable source11, System.IObservable source12, System.IObservable source13, System.IObservable source14, System.IObservable source15, System.IObservable source16, System.Func resultSelector) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("DeferredPropertyObservable: DeferredProperty: {_source}")] + public sealed class DeferredPropertyObservable : System.IObservable + { + public DeferredPropertyObservable(TSource source, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("EventObservable: Getter = {_getter}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class EventObservable : System.IObservable + { + public EventObservable(System.Action addHandler, System.Action removeHandler, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("NotifyPropertyChangedObservable: Property = {_observedPropertyName}, Sender = {_sender}, BeforeChanged = {_beforeChanged}")] + public sealed class NotifyPropertyChangedObservable : System.IObservable> + { + public NotifyPropertyChangedObservable(object sender, System.Linq.Expressions.Expression expression, string expectedName, bool beforeChanged) { } + public System.IDisposable Subscribe(System.IObserver> observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static class PluginObservationSource + { + public static System.IObservable Choose(object source, System.Linq.Expressions.Expression expression, string propertyName, bool beforeChange, int generatedAffinity, System.Func getter, System.IObservable generated) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PluginPropertyObservable: Property = {_propertyName}, Source = {_source}, BeforeChange = {_beforeChange}")] + public sealed class PluginPropertyObservable : System.IObservable + { + public PluginPropertyObservable(ReactiveUI.Binding.ICreatesObservableForProperty plugin, object source, System.Linq.Expressions.Expression expression, string propertyName, System.Func getter, bool beforeChange, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyChangingObservable: Property = {_propertyName}, Source = {_source}")] + public sealed class PropertyChangingObservable : System.IObservable + { + public PropertyChangingObservable(System.ComponentModel.INotifyPropertyChanging source, string propertyName, System.Func getter) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("PropertyObservable: Property = {_propertyName}, Source = {_source}, DistinctUntilChanged = {_distinctUntilChanged}")] + public sealed class PropertyObservable : System.IObservable + { + public PropertyObservable(System.ComponentModel.INotifyPropertyChanged source, string propertyName, System.Func getter, bool distinctUntilChanged) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.DebuggerDisplay("UnchangingPropertyObservable: UnchangingProperty: {_value}")] + public sealed class UnchangingPropertyObservable : System.IObservable + { + public UnchangingPropertyObservable(T value) { } + public System.IDisposable Subscribe(System.IObserver observer) { } + } +} diff --git a/src/ReactiveUI.Binding/ReactiveUI.Binding.csproj b/src/ReactiveUI.Binding/ReactiveUI.Binding.csproj new file mode 100644 index 00000000..6b77e6b4 --- /dev/null +++ b/src/ReactiveUI.Binding/ReactiveUI.Binding.csproj @@ -0,0 +1,115 @@ + + + $(BindingCoreRuntimeTargets) + Runtime library for ReactiveUI property observation and binding. Provides ICreatesObservableForProperty, expression chain decomposition, and converter infrastructure. + reactiveui;binding;observableforproperty + 15.0 + 15.0 + + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.SourceGenerator.Tests/GeneratorSnapshot.cs b/src/ReactiveUI.SourceGenerator.Tests/GeneratorSnapshot.cs deleted file mode 100644 index 01d4d0af..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/GeneratorSnapshot.cs +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Collections.Concurrent; -using System.Reflection; -using System.Text; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// Compares a generator run's output with the snapshots stored in the test project. -/// -/// -/// Each generated file is stored as {folder}/{type}.{method}#{hint name}.verified.cs: a //HintName: -/// line, then the generated text. Output that differs from its snapshot, or has none, is written beside it as -/// *.received.cs and fails the test, as does a snapshot the run no longer produces. -/// -/// -/// Set ACCEPT_SNAPSHOTS to 1 or true to write every output over its snapshot and delete snapshots -/// nothing produces. Two tests whose names abbreviate to the same snapshot name fail rather than share snapshots. -/// -/// -internal static class GeneratorSnapshot -{ - /// The environment variable that makes a run write its output over the snapshots. - private const string AcceptVariable = "ACCEPT_SNAPSHOTS"; - - /// The assembly metadata key the test project records its snapshot root under. - private const string DirectoryMetadataKey = "GeneratorSnapshotDirectory"; - - /// The suffix of a stored snapshot. - private const string VerifiedSuffix = ".verified.cs"; - - /// The suffix of the output written beside a snapshot it does not match. - private const string ReceivedSuffix = ".received.cs"; - - /// - /// A generated line carrying the generator's assembly version. It changes with every build of the package, so it - /// is left out of the snapshots. - /// - private const string GeneratedCodeAttributeLine = "[global::System.CodeDom.Compiler.GeneratedCode(\""; - - /// The suffix a test class name ends with, dropped from the snapshot name. - private const string TestClassSuffix = "Tests"; - - /// The suffix every generated hint name ends with, dropped from the snapshot name. - private const string HintSuffix = ".g.cs"; - - /// The encoding snapshots are written in: UTF-8 without a byte order mark, as every file in the repository is. - private static readonly UTF8Encoding SnapshotEncoding = new(encoderShouldEmitUTF8Identifier: false); - - /// - /// The words shortened in a snapshot's method and hint segments, longest first so a longer word is never split by a - /// shorter one. They keep snapshot paths well inside the Windows path limit. - /// - private static readonly (string Word, string Abbreviation)[] Abbreviations = - [ - ("ReactiveUI.SourceGenerators.", string.Empty), - ("CancellationToken", "Ct"), - ("ReactiveCommand", "RxCmd"), - ("ReactiveObject", "RxObj"), - ("ReactiveCollection", "RxColl"), - ("BindableDerivedList", "Bdl"), - ("ObservableCollection", "ObsColl"), - ("ReadOnly", "Ro"), - ("Observable", "Obs"), - ("Properties", "Props"), - ("Property", "Prop"), - ("Reactive", "Rx"), - ("Attribute", "Attr"), - ("Collection", "Coll"), - ("Command", "Cmd"), - ("Generic", "Gen"), - ("Generates", "Gen"), - ("Nullable", "Null"), - ("Parameter", "Param"), - ("Namespace", "Ns"), - ("Multiple", "Multi"), - ("ViewModel", "Vm"), - ("Internal", "Int"), - ("Inheritance", "Inh"), - ("Modifier", "Mod"), - ("Access", "Acc"), - ("Nested", "Nest"), - ("Different", "Diff"), - ("Complex", "Cplx"), - ("Return", "Ret"), - ("Type", "T"), - ("With", "W"), - ("From", "F"), - ("And", string.Empty), - ]; - - /// The directory holding the snapshot folders. - private static readonly string SnapshotRoot = ReadSnapshotRoot(); - - /// Whether this run writes its output over the snapshots. - private static readonly bool Accept = ReadAccept(); - - /// The test that claimed each snapshot prefix, so two tests abbreviating to one name are caught. - private static readonly ConcurrentDictionary PrefixOwners = new(StringComparer.Ordinal); - - /// Asserts that the generated files match the stored snapshots. - /// The driver after the generator has run. - /// The snapshot folder, one per generator. - /// The snapshot name's type segment. - /// The snapshot name's method segment. - /// A task that completes once every file has been compared. - internal static async Task VerifyAsync(GeneratorDriver driver, string folder, string typeName, string methodName) - { - ArgumentNullException.ThrowIfNull(driver); - - var directory = Path.Combine(SnapshotRoot, folder); - _ = Directory.CreateDirectory(directory); - - var prefix = $"{AbbreviateTypeName(typeName)}.{Abbreviate(methodName)}#"; - var test = $"{typeName}.{methodName}"; - var owner = PrefixOwners.GetOrAdd($"{folder}/{prefix}", test); - if (!string.Equals(owner, test, StringComparison.Ordinal)) - { - throw new InvalidOperationException( - $"{test} and {owner} both abbreviate to the snapshot name {folder}/{prefix}; rename one of them or add an abbreviation."); - } - - var produced = new HashSet(StringComparer.Ordinal); - var failures = new List(); - - foreach (var result in driver.GetRunResult().Results) - { - foreach (var source in result.GeneratedSources) - { - var name = prefix + AbbreviateHintName(source.HintName); - _ = produced.Add(name); - - var output = $"//HintName: {source.HintName}\n{Scrub(source.SourceText.ToString())}"; - if (!await StoreAsync(Path.Combine(directory, name), output)) - { - failures.Add($"{folder}/{name}{VerifiedSuffix} does not match the generated output; see {name}{ReceivedSuffix}"); - } - } - } - - foreach (var snapshot in Directory.EnumerateFiles(directory, $"{prefix}*{VerifiedSuffix}")) - { - var fileName = Path.GetFileName(snapshot); - if (produced.Contains(fileName[..^VerifiedSuffix.Length])) - { - continue; - } - - if (Accept) - { - File.Delete(snapshot); - } - else - { - failures.Add($"{folder}/{fileName} is no longer generated"); - } - } - - await Assert.That(failures).IsEmpty(); - } - - /// Settles one generated file against its snapshot, writing the received or accepted output as needed. - /// The snapshot path without its suffix. - /// The generated output, in snapshot form. - /// when the output equals the snapshot or was accepted as it. - private static async Task StoreAsync(string basePath, string output) - { - var verifiedPath = basePath + VerifiedSuffix; - var receivedPath = basePath + ReceivedSuffix; - - // Compared before accepting, so a matching snapshot keeps its bytes rather than being rewritten. A final line - // break is not significant: some stored snapshots end with one and some do not. - if (File.Exists(verifiedPath) - && string.Equals(Normalize(await File.ReadAllTextAsync(verifiedPath)).TrimEnd('\n'), output.TrimEnd('\n'), StringComparison.Ordinal)) - { - File.Delete(receivedPath); - return true; - } - - if (Accept) - { - await File.WriteAllTextAsync(verifiedPath, output, SnapshotEncoding); - File.Delete(receivedPath); - return true; - } - - await File.WriteAllTextAsync(receivedPath, output, SnapshotEncoding); - return false; - } - - /// Reads whether the run accepts its output, from ACCEPT_SNAPSHOTS. - /// when the variable is 1 or true, in any case. - private static bool ReadAccept() - { - var value = Environment.GetEnvironmentVariable(AcceptVariable); - return string.Equals(value, "1", StringComparison.Ordinal) || string.Equals(value, "true", StringComparison.OrdinalIgnoreCase); - } - - /// Reads the snapshot root the test project recorded when it was built. - /// The absolute path of the snapshot root. - /// The test assembly records no snapshot root. - private static string ReadSnapshotRoot() - { - // Recorded at build time: a CI build maps caller file paths to /_/, which does not exist on disk. - foreach (var attribute in typeof(GeneratorSnapshot).Assembly.GetCustomAttributes()) - { - if (attribute.Key == DirectoryMetadataKey && !string.IsNullOrEmpty(attribute.Value)) - { - return attribute.Value; - } - } - - throw new InvalidOperationException($"The test assembly records no '{DirectoryMetadataKey}' assembly metadata."); - } - - /// Shortens a test class name to its capitals, such as RGE for RxGenExtTests. - /// The test class name. - /// The abbreviated name. - /// Each generator's snapshots live in their own folder, so the codes only need to differ within one folder. - private static string AbbreviateTypeName(string typeName) - { - var name = typeName.EndsWith(TestClassSuffix, StringComparison.Ordinal) ? typeName[..^TestClassSuffix.Length] : typeName; - var builder = new StringBuilder(name.Length); - foreach (var character in name) - { - if (char.IsUpper(character) || char.IsDigit(character)) - { - _ = builder.Append(character); - } - } - - return builder.ToString(); - } - - /// Shortens a generated file's hint name: no .g.cs suffix, and the common words abbreviated. - /// The hint name. - /// The abbreviated name. - private static string AbbreviateHintName(string hintName) => - Abbreviate(hintName.EndsWith(HintSuffix, StringComparison.Ordinal) ? hintName[..^HintSuffix.Length] : Path.GetFileNameWithoutExtension(hintName)); - - /// Replaces each common word with its abbreviation. - /// The text to shorten. - /// The shortened text. - private static string Abbreviate(string text) - { - foreach (var (word, abbreviation) in Abbreviations) - { - text = text.Replace(word, abbreviation, StringComparison.Ordinal); - } - - return text; - } - - /// Puts generated text in snapshot form: LF line endings, without the generated-code attribute lines. - /// The generated text. - /// The text as a snapshot stores it. - private static string Scrub(string text) - { - var normalized = Normalize(text); - if (!normalized.Contains(GeneratedCodeAttributeLine, StringComparison.Ordinal)) - { - return normalized; - } - - var builder = new StringBuilder(normalized.Length); - foreach (var line in normalized.Split('\n')) - { - if (!line.Contains(GeneratedCodeAttributeLine, StringComparison.Ordinal)) - { - _ = builder.Append(line).Append('\n'); - } - } - - // Split yields an empty last element after a trailing newline; appending it added one newline too many. - return builder.ToString(0, builder.Length - 1); - } - - /// Normalises line endings so a snapshot compares the same on every checkout. - /// The text to normalise. - /// The text with LF line endings. - private static string Normalize(string text) => text.Replace("\r\n", "\n", StringComparison.Ordinal); -} diff --git a/src/ReactiveUI.SourceGenerator.Tests/ReactiveUI.SourceGenerators.Tests.csproj b/src/ReactiveUI.SourceGenerator.Tests/ReactiveUI.SourceGenerators.Tests.csproj deleted file mode 100644 index eaad9bd3..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/ReactiveUI.SourceGenerators.Tests.csproj +++ /dev/null @@ -1,89 +0,0 @@ - - - - $(TestTfms) - enable - enable - 13.0 - Exe - false - true - $(NoWarn);CA1812;CA1001 - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - global,RoslynSourceGenerator - - - - diff --git a/src/ReactiveUI.SourceGenerator.Tests/TestHelper.cs b/src/ReactiveUI.SourceGenerator.Tests/TestHelper.cs deleted file mode 100644 index c0d1e5c6..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/TestHelper.cs +++ /dev/null @@ -1,400 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Runtime.InteropServices; -using System.Text; -using ReactiveUI.SourceGenerators.WinForms; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// -/// A helper class to facilitate the testing of incremental source generators. -/// It provides utilities to initialize dependencies, run generators, and verify the output. -/// -/// Type of Incremental Generator. -/// -public sealed partial class TestHelper : IDisposable - where T : IIncrementalGenerator, new() -{ - /// The concrete generator type name used for snapshots and support assemblies. - private static readonly string generatorTypeName = new T().GetType().Name; - - /// Gets the verified file path for generator type . - /// - /// A string. - /// - public string VerifiedFilePath() => GetVerifiedFilePath(); - - /// Asynchronously initializes the source generator helper. - /// A task representing the completed initialization operation. - public Task InitializeAsync() => Task.CompletedTask; - - /// Tests a generator expecting it to fail by throwing an . - /// The source code to test. - /// The calling test, which names the snapshots. - /// The calling test's file, whose name is its class name. - /// A task representing the asynchronous assertion operation. - public async Task TestFail(string source, [CallerMemberName] string methodName = "", [CallerFilePath] string filePath = "") => - await Assert.That(() => RunGeneratorAndCheck(source, withPreDiagnosics: false, methodName, filePath)).Throws(); - - /// Tests a generator expecting it to pass successfully. - /// The source code to test. - /// The calling test, which names the snapshots. - /// The calling test's file, whose name is its class name. - /// A task representing the asynchronous verification operation. - public Task TestPass(string source, [CallerMemberName] string methodName = "", [CallerFilePath] string filePath = "") => - RunGeneratorAndCheck(source, withPreDiagnosics: false, methodName, filePath); - - /// Tests a generator expecting it to pass successfully. - /// The source code to test. - /// if set to true [with pre diagnosics]. - /// The calling test, which names the snapshots. - /// The calling test's file, whose name is its class name. - /// A task representing the asynchronous verification operation. - public Task TestPass(string source, bool withPreDiagnosics, [CallerMemberName] string methodName = "", [CallerFilePath] string filePath = "") => - RunGeneratorAndCheck(source, withPreDiagnosics, methodName, filePath); - - /// - public void Dispose() - { - } - - /// Runs the specified source generator, validates the generated code and compares it with its snapshots. - /// The code to be parsed and processed by the generator. - /// if set to true [with pre diagnosics]. - /// The calling test, which names the snapshots. - /// The calling test's file, whose name is its class name. - /// A task that completes once the snapshots have been compared. - /// Thrown if the compilation fails. - public Task RunGeneratorAndCheck( - string code, - bool withPreDiagnosics, - string methodName, - string filePath) - { - var parseOptions = CSharpParseOptions.Default.WithLanguageVersion(LanguageVersion.CSharp13); - var compilation = CreateTestCompilation(code, parseOptions); - - if (withPreDiagnosics) - { - // Validate diagnostics before running the generator. - var prediagnostics = GetDiagnosticsAboveSeverity(compilation.GetDiagnostics(), DiagnosticSeverity.Warning); - - if (prediagnostics.Count > 0) - { - foreach (var diagnostic in prediagnostics) - { - WriteTestOutput($"Diagnostic: {diagnostic.Id} - {diagnostic.GetMessage()}"); - } - - throw new InvalidOperationException("Pre-generator compilation failed due to the above diagnostics."); - } - } - - var generator = new T(); - var driver = CSharpGeneratorDriver.Create(generator).WithUpdatedParseOptions(parseOptions); - var rerunDriver = RunGeneratorAndValidate(code, driver, compilation); - return GeneratorSnapshot.VerifyAsync(rerunDriver, GetVerifiedFilePath(), Path.GetFileNameWithoutExtension(filePath), methodName); - } - - /// Gets the verified file path for generator type . - /// The snapshot directory name. - private static string GetVerifiedFilePath() - { - var name = generatorTypeName; - return name switch - { - nameof(ReactiveGenerator) => "REACTIVE", - nameof(ReactiveCommandGenerator) => "REACTIVECMD", - nameof(RoutedControlHostGenerator) => "ROUTEDHOST", - nameof(ViewModelControlHostGenerator) => "CONTROLHOST", - nameof(BindableDerivedListGenerator) => "DERIVEDLIST", - nameof(ReactiveCollectionGenerator) => "REACTIVECOLL", - nameof(ReactiveObjectGenerator) => "REACTIVEOBJ", - _ => name, - }; - } - - /// Creates an in-memory compilation containing the supplied test code. - /// The test code to compile. - /// The language version settings. - /// The prepared Roslyn compilation. - /// The attributes come from the ReactiveUI.SourceGenerators reference, as they do for a consumer. - private static CSharpCompilation CreateTestCompilation(string code, CSharpParseOptions parseOptions) - { - var syntaxTrees = new List - { - CSharpSyntaxTree.ParseText("global using ReactiveUI.SourceGenerators;", parseOptions, path: "GlobalUsings.g.cs"), - CSharpSyntaxTree.ParseText(code, parseOptions), - }; - - AddWindowsDesktopStubsWhenNeeded(syntaxTrees, parseOptions); - return CSharpCompilation.Create("TestProject", syntaxTrees, TestCompilationReferences.CreateDefault(), new(OutputKind.DynamicallyLinkedLibrary, deterministic: true)); - } - - /// Adds Windows desktop stubs when the operating system does not provide them. - /// The source-tree collection to extend. - /// The language version settings. - private static void AddWindowsDesktopStubsWhenNeeded(List syntaxTrees, CSharpParseOptions parseOptions) - { - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - return; - } - - AddSyntaxTree(syntaxTrees, TestCompilationReferences.WindowsDesktopStubs, parseOptions, "WindowsDesktopStubs.g.cs"); - } - - /// Adds a parsed source tree to a syntax-tree collection. - /// The source-tree collection to extend. - /// The source code to parse. - /// The language version settings. - /// The generated source path. - private static void AddSyntaxTree(List syntaxTrees, string source, CSharpParseOptions parseOptions, string path) => - syntaxTrees.Add(CSharpSyntaxTree.ParseText(source, parseOptions, path: path)); - - /// Runs a generator and validates all resulting diagnostics and source. - /// The original source code. - /// The configured generator driver. - /// The input compilation. - /// The driver after the run. - private static GeneratorDriver RunGeneratorAndValidate(string code, GeneratorDriver driver, Compilation compilation) - { - var rerunDriver = driver.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics); - ThrowIfDiagnosticsExist(GetDiagnosticsAtLeastSeverity(diagnostics, DiagnosticSeverity.Warning), "Diagnostic", "Compilation failed due to the above diagnostics."); - ThrowIfDiagnosticsExist(GetUnexpectedOutputDiagnostics(outputCompilation.GetDiagnostics()), "Output diagnostic", "Output compilation failed due to the above diagnostics."); - ValidateGeneratedCode(code, rerunDriver); - return rerunDriver; - } - - /// Writes diagnostics and throws when a collection is non-empty. - /// The diagnostics to evaluate. - /// The output prefix. - /// The exception message prefix. - private static void ThrowIfDiagnosticsExist(List diagnostics, string prefix, string failureMessage) - { - if (diagnostics.Count == 0) - { - return; - } - - foreach (var diagnostic in diagnostics) - { - WriteTestOutput($"{prefix}: {diagnostic.Id} - {diagnostic.GetMessage()}"); - } - - throw new InvalidOperationException($"{failureMessage}{Environment.NewLine}{CreateDiagnosticMessage(diagnostics)}"); - } - - /// Determines whether a diagnostic is an accepted generated-output diagnostic. - /// The diagnostic to inspect. - /// when the diagnostic is expected. - private static bool IsKnownExpectedOutputDiagnostic(Diagnostic d) => - d.Id is "CS0579" or "CS8864" or "CS0115" or "CS8867" or "CS8866"; - - /// Filters diagnostics more severe than a specified level. - /// The diagnostics to inspect. - /// The exclusive severity threshold. - /// Diagnostics exceeding the threshold. - private static List GetDiagnosticsAboveSeverity(IEnumerable diagnostics, DiagnosticSeverity severity) - { - var result = new List(); - foreach (var diagnostic in diagnostics) - { - if (diagnostic.Severity > severity) - { - result.Add(diagnostic); - } - } - - return result; - } - - /// Filters diagnostics at or above a specified severity level. - /// The diagnostics to inspect. - /// The inclusive severity threshold. - /// Diagnostics meeting the threshold. - private static List GetDiagnosticsAtLeastSeverity(IEnumerable diagnostics, DiagnosticSeverity severity) - { - var result = new List(); - foreach (var diagnostic in diagnostics) - { - if (diagnostic.Severity >= severity) - { - result.Add(diagnostic); - } - } - - return result; - } - - /// Filters error diagnostics that are not expected generator output diagnostics. - /// The diagnostics to inspect. - /// Unexpected error diagnostics. - private static List GetUnexpectedOutputDiagnostics(IEnumerable diagnostics) - { - var result = new List(); - foreach (var diagnostic in diagnostics) - { - if (diagnostic.Severity >= DiagnosticSeverity.Error && !IsKnownExpectedOutputDiagnostic(diagnostic)) - { - result.Add(diagnostic); - } - } - - return result; - } - - /// Formats diagnostics for test-output reporting. - /// The diagnostics to format. - /// A newline-delimited diagnostic message. - private static string CreateDiagnosticMessage(IEnumerable diagnostics) - { - var messages = new List(); - foreach (var diagnostic in diagnostics) - { - messages.Add($"{diagnostic.Id} - {diagnostic.GetMessage()}"); - } - - return string.Join(Environment.NewLine, messages); - } - - [GeneratedRegex(@"\[Reactive\((?:.*?nameof\((\w+)\))+", RegexOptions.Singleline)] - private static partial Regex ReactiveRegex(); - - [GeneratedRegex(@"nameof\((\w+)\)")] - private static partial Regex NameOfRegex(); - - /// Validates that generated code contains expected features based on the source code attributes. - /// The original source code. - /// The generator driver with generated output. - private static void ValidateGeneratedCode(string sourceCode, GeneratorDriver driver) - { - var runResult = driver.GetRunResult(); - var generatedTrees = GetGeneratedSources(runResult); - var allGeneratedCode = GetGeneratedCode(generatedTrees); - - ValidateReactiveCommandOutput(generatedTrees); - ValidateAlsoNotifyOutput(sourceCode, allGeneratedCode); - } - - /// Gets every generated source from a generator run result. - /// The result to inspect. - /// The generated sources from all generators. - private static List GetGeneratedSources(GeneratorDriverRunResult runResult) - { - var generatedSources = new List(); - foreach (var result in runResult.Results) - { - generatedSources.AddRange(result.GeneratedSources); - } - - return generatedSources; - } - - /// Combines generated source text for validation. - /// The sources to combine. - /// The combined generated source code. - private static string GetGeneratedCode(List generatedSources) - { - var generatedCode = new StringBuilder(); - foreach (var generatedSource in generatedSources) - { - _ = generatedCode.AppendLine(generatedSource.SourceText.ToString()); - } - - return generatedCode.ToString(); - } - - /// Ensures the command generator emits its command source. - /// The generated sources to inspect. - private static void ValidateReactiveCommandOutput(List generatedSources) - { - if (typeof(T) != typeof(ReactiveCommandGenerator)) - { - return; - } - - foreach (var generatedSource in generatedSources) - { - if (generatedSource.HintName.EndsWith(".ReactiveCommands.g.cs", StringComparison.Ordinal)) - { - return; - } - } - - WriteTestOutput("=== VALIDATION FAILURE ==="); - WriteTestOutput("ReactiveCommand generator produced no command source output."); - WriteTestOutput("=== GENERATED HINTS ==="); - foreach (var generatedSource in generatedSources) - { - WriteTestOutput(generatedSource.HintName); - } - - WriteTestOutput("=== END ==="); - throw new InvalidOperationException("ReactiveCommand generator produced no command source output."); - } - - /// Ensures reactive attributes produce their requested additional notifications. - /// The original source code. - /// The combined generated code. - private static void ValidateAlsoNotifyOutput(string sourceCode, string allGeneratedCode) - { - foreach (object? matchValue in ReactiveRegex().Matches(sourceCode)) - { - if (matchValue is not Match match) - { - continue; - } - - foreach (object? nameofMatchValue in NameOfRegex().Matches(match.Value)) - { - if (nameofMatchValue is not Match nameofMatch) - { - continue; - } - - ValidatePropertyNotification(nameofMatch.Groups[1].Value, match.Value, allGeneratedCode); - } - } - } - - /// Ensures generated code raises a requested property notification. - /// The requested property name. - /// The source attribute that requested it. - /// The combined generated code. - private static void ValidatePropertyNotification(string propertyToNotify, string sourceAttribute, string allGeneratedCode) - { - if (ContainsPropertyNotification(allGeneratedCode, propertyToNotify)) - { - return; - } - - var errorMessage = $"Generated code does not include AlsoNotify for property '{propertyToNotify}'. " - + $"Expected to find property change notification for '{propertyToNotify}' in the generated code.{Environment.NewLine}" - + $"Source attribute: {sourceAttribute}"; - WriteTestOutput("=== VALIDATION FAILURE ==="); - WriteTestOutput(errorMessage); - WriteTestOutput("=== SOURCE CODE SNIPPET ==="); - WriteTestOutput(sourceAttribute); - WriteTestOutput("=== GENERATED CODE ==="); - WriteTestOutput(allGeneratedCode); - WriteTestOutput("=== END ==="); - throw new InvalidOperationException(errorMessage); - } - - /// Determines whether generated code contains a requested notification. - /// The generated code. - /// The property name. - /// when the notification appears. - private static bool ContainsPropertyNotification(string generatedCode, string propertyName) => - generatedCode.Contains($"this.RaisePropertyChanged(nameof({propertyName}))", StringComparison.Ordinal) - || generatedCode.Contains($"this.RaisePropertyChanged(\"{propertyName}\")", StringComparison.Ordinal) - || generatedCode.Contains($"RaisePropertyChanged(nameof({propertyName}))", StringComparison.Ordinal) - || generatedCode.Contains($"RaisePropertyChanged(\"{propertyName}\")", StringComparison.Ordinal); - - /// Writes a validation message to the current test output. - /// The message to write. - private static void WriteTestOutput(string message) => TestContext.Current?.OutputWriter.WriteLine(message); -} diff --git a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/CodeFixerHelperTests.cs b/src/ReactiveUI.SourceGenerator.Tests/UnitTests/CodeFixerHelperTests.cs deleted file mode 100644 index 73285e85..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/CodeFixerHelperTests.cs +++ /dev/null @@ -1,273 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Collections.Immutable; -using CodeFixerHelpers = ReactiveUI.SourceGenerators.CodeFixers.Helpers; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// Tests the helper implementations used by the code-fix assembly. -public sealed class CodeFixerHelperTests -{ - /// The first test value. - private const int FirstValue = 1; - - /// The second test value. - private const int SecondValue = 2; - - /// The third test value. - private const int ThirdValue = 3; - - /// The fourth test value. - private const int FourthValue = 4; - - /// The fifth test value. - private const int FifthValue = 5; - - /// The number of values that forces the builder to grow. - private const int GrowthCount = 16; - - /// Equivalent hash states compare equally through typed and object equality. - /// A task to monitor the async. - [Test] - public async Task HashCode_WithEquivalentValues_UsesValueEquality() - { - var first = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue, FifthValue); - var second = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue, FifthValue); - object boxedSecond = second; - IEquatable equatable = first; - - await Assert.That(first.Equals(second)).IsTrue(); - await Assert.That(equatable.Equals(second)).IsTrue(); - await Assert.That(first.Equals(boxedSecond)).IsTrue(); - await Assert.That(first.Equals(null)).IsFalse(); - await Assert.That(first.GetHashCode()).IsEqualTo(second.GetHashCode()); - await Assert.That(first.ToHashCode()).IsEqualTo(second.ToHashCode()); - } - - /// Hash states retain value order and include null values consistently. - /// A task to monitor the async. - [Test] - public async Task HashCode_WithDifferentOrderOrNull_TracksTheAddedValues() - { - var ordered = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue); - var reordered = CreateHash(FourthValue, ThirdValue, SecondValue, FirstValue); - var withNull = default(CodeFixerHelpers.HashCode); - var withZero = default(CodeFixerHelpers.HashCode); - - withNull.Add(null); - withZero.Add(0); - - await Assert.That(ordered.Equals(reordered)).IsFalse(); - await Assert.That(ordered.ToHashCode()).IsEqualTo(CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue).ToHashCode()); - await Assert.That(withNull.Equals(withZero)).IsTrue(); - await Assert.That(withNull.ToHashCode()).IsEqualTo(withZero.ToHashCode()); - } - - /// Equatable arrays use ordered element value equality for empty, single, and multiple values. - /// A task to monitor the async. - [Test] - public async Task EquatableArray_WithEmptySingleAndMultipleValues_UsesOrderedValueEquality() - { - var empty = CodeFixerHelpers.EquatableArray.FromImmutableArray(ImmutableArray.Empty); - var single = CodeFixerHelpers.EquatableArray.FromImmutableArray([FirstValue]); - var multiple = CodeFixerHelpers.EquatableArray.FromImmutableArray([FirstValue, SecondValue, ThirdValue]); - var reordered = CodeFixerHelpers.EquatableArray.FromImmutableArray([ThirdValue, SecondValue, FirstValue]); - - await Assert.That(empty.IsEmpty).IsTrue(); - await Assert.That(empty.Equals(CodeFixerHelpers.EquatableArray.FromImmutableArray(ImmutableArray.Empty))).IsTrue(); - await Assert.That(single[0]).IsEqualTo(FirstValue); - await Assert.That(multiple.Equals(reordered)).IsFalse(); - await Assert.That(multiple.ToArray().SequenceEqual([FirstValue, SecondValue, ThirdValue])).IsTrue(); - } - - /// Equatable arrays support object equality, null, conversion, enumeration, and stable hashes for equal values. - /// A task to monitor the async. - [Test] - public async Task EquatableArray_WithEquivalentObject_RoundTripsAndHasEqualHashCode() - { - var source = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue); - var array = CodeFixerHelpers.EquatableArray.FromImmutableArray(source); - CodeFixerHelpers.EquatableArray implicitlyConverted = source; - var defaultArray = default(CodeFixerHelpers.EquatableArray); - object equivalent = CodeFixerHelpers.EquatableArray.FromImmutableArray(source); - IEquatable> equatable = array; - ImmutableArray roundTripped = array; - IEnumerable enumerable = array; - var directEnumerator = array.GetEnumerator(); - var directlyEnumerated = new List(); - while (directEnumerator.MoveNext()) - { - directlyEnumerated.Add(directEnumerator.Current); - } - - var nonGenericEnumerable = (System.Collections.IEnumerable)array; - var nonGenericValues = CollectNonGenericValues(nonGenericEnumerable); - - await Assert.That(array.Equals(equivalent)).IsTrue(); - await Assert.That(array.Equals(null)).IsFalse(); - await Assert.That(equatable.Equals(array)).IsTrue(); - await Assert.That(implicitlyConverted == array).IsTrue(); - await Assert.That(implicitlyConverted != array).IsFalse(); - await Assert.That(defaultArray.GetHashCode()).IsEqualTo(0); - await Assert.That(array.GetHashCode()).IsEqualTo(((CodeFixerHelpers.EquatableArray)equivalent).GetHashCode()); - await Assert.That(roundTripped.SequenceEqual(source)).IsTrue(); - await Assert.That(enumerable.SequenceEqual(source)).IsTrue(); - await Assert.That(directlyEnumerated.SequenceEqual(source)).IsTrue(); - await Assert.That(nonGenericValues.SequenceEqual(source)).IsTrue(); - } - - /// The extension creates the same value as the factory. - /// A task to monitor the async. - [Test] - public async Task EquatableArrayExtension_WithImmutableArray_MatchesFactory() - { - var source = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue); - var fromExtension = CodeFixerHelpers.EquatableArrayExtensions.AsEquatableArray(source); - var fromFactory = CodeFixerHelpers.EquatableArray.FromImmutableArray(source); - - await Assert.That(fromExtension.Equals(fromFactory)).IsTrue(); - } - - /// A builder handles empty, single, growing, range, copy, and enumeration paths. - /// A task to monitor the async. - [Test] - public async Task ImmutableArrayBuilder_WithValuesAndGrowth_PreservesContents() - { - ImmutableArray empty; - ImmutableArray values; - int[] copy; - int count; - int writtenLength; - int[] enumeratedValues; - int[] copiedValues; - int[] nonGenericValues; - bool isReadOnly; - int collectionCount; - ICollection collection; - using (var builder = CodeFixerHelpers.ImmutableArrayBuilder.Rent()) - { - empty = builder.ToImmutable(); - builder.Add(FirstValue); - builder.AddRange([SecondValue, ThirdValue]); - for (var value = FourthValue; value <= GrowthCount; value++) - { - builder.Add(value); - } - - values = builder.ToImmutable(); - copy = builder.ToArray(); - count = builder.Count; - writtenLength = builder.WrittenSpan.Length; - enumeratedValues = [.. builder.AsEnumerable()]; - collection = (ICollection)builder.AsEnumerable(); - collection.Add(GrowthCount + FirstValue); - copiedValues = new int[collection.Count]; - collection.CopyTo(copiedValues, 0); - nonGenericValues = CollectNonGenericValues((System.Collections.IEnumerable)builder.AsEnumerable()); - isReadOnly = collection.IsReadOnly; - collectionCount = collection.Count; - } - - await Assert.That(empty.IsEmpty).IsTrue(); - await Assert.That(count).IsEqualTo(GrowthCount); - await Assert.That(writtenLength).IsEqualTo(GrowthCount); - await Assert.That(values.SequenceEqual(Enumerable.Range(FirstValue, GrowthCount))).IsTrue(); - await Assert.That(copy.SequenceEqual(values)).IsTrue(); - await Assert.That(enumeratedValues.SequenceEqual(values)).IsTrue(); - await Assert.That(copiedValues.SequenceEqual(Enumerable.Range(FirstValue, GrowthCount + FirstValue))).IsTrue(); - await Assert.That(nonGenericValues.SequenceEqual(copiedValues)).IsTrue(); - await Assert.That(isReadOnly).IsTrue(); - await Assert.That(collectionCount).IsEqualTo(GrowthCount + FirstValue); - await Assert.That(collection.Clear).Throws(); - await Assert.That(() => collection.Contains(FirstValue)).Throws(); - await Assert.That(() => collection.Remove(FirstValue)).Throws(); - } - - /// A character builder returns its written text and supports interface disposal. - /// A task to monitor the async. - [Test] - public async Task ImmutableArrayBuilder_WithCharacters_FormatsAndDisposesThroughInterface() - { - const string expected = "coverage"; - string actual; - IDisposable disposable; - var builder = CodeFixerHelpers.ImmutableArrayBuilder.Rent(); - builder.AddRange(expected.AsSpan()); - actual = builder.ToString(); - disposable = (IDisposable)builder.AsEnumerable(); - disposable.Dispose(); - disposable.Dispose(); - builder.Dispose(); - - await Assert.That(actual).IsEqualTo(expected); - } - - /// Disposed builders and the unsupported collection operations report their intended failures. - /// A task to monitor the async. - [Test] - public async Task ImmutableArrayBuilder_AfterDisposeAndUnsupportedCollectionCalls_ReportsErrors() - { - await Assert.That(DisposeBuilderTwice()).IsTrue(); - await Assert.That(AccessDisposedBuilder).Throws(); - await Assert.That(UnsupportedCollectionOperation).Throws(); - } - - /// Creates a hash from the provided values. - /// The values to add. - /// The resulting hash state. - private static CodeFixerHelpers.HashCode CreateHash(params int[] values) - { - var hash = default(CodeFixerHelpers.HashCode); - foreach (var value in values) - { - hash.Add(value); - } - - return hash; - } - - /// Copies integer values from a non-generic enumerable without LINQ. - /// The source values. - /// The copied integer values. - private static int[] CollectNonGenericValues(System.Collections.IEnumerable source) - { - List values = []; - foreach (var value in source) - { - if (value is int integer) - { - values.Add(integer); - } - } - - return [.. values]; - } - - /// Accesses a disposed builder. - private static void AccessDisposedBuilder() - { - var builder = CodeFixerHelpers.ImmutableArrayBuilder.Rent(); - builder.Dispose(); - _ = builder.Count; - } - - /// Disposes a builder twice. - /// after both dispose calls complete. - private static bool DisposeBuilderTwice() - { - var builder = CodeFixerHelpers.ImmutableArrayBuilder.Rent(); - builder.Dispose(); - builder.Dispose(); - return true; - } - - /// Invokes an unsupported operation exposed by a builder enumeration. - private static void UnsupportedCollectionOperation() - { - using var builder = CodeFixerHelpers.ImmutableArrayBuilder.Rent(); - ICollection collection = (ICollection)builder.AsEnumerable(); - _ = collection.Contains(FirstValue); - } -} diff --git a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/EquatableArrayTests.cs b/src/ReactiveUI.SourceGenerator.Tests/UnitTests/EquatableArrayTests.cs deleted file mode 100644 index 3daf06d1..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/EquatableArrayTests.cs +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators.Helpers; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// Unit tests for . -public sealed class EquatableArrayTests -{ - /// The first element index. - private const int FirstIndex = 0; - - /// The second element index. - private const int SecondIndex = 1; - - /// The third element index. - private const int ThirdIndex = 2; - - /// The expected number of elements in a two-element array. - private const int TwoElements = 2; - - /// The expected number of elements in a three-element array. - private const int ThreeElements = 3; - - /// The first value used by the tests. - private const int FirstValue = 1; - - /// The second value used by the tests. - private const int SecondValue = 2; - - /// The third value used by the tests. - private const int ThirdValue = 3; - - /// The value used to make an array unequal. - private const int DifferentValue = 4; - - /// The fifth value used by the tests. - private const int FifthValue = 5; - - /// The sixth value used by the tests. - private const int SixthValue = 6; - - /// The seventh value used by the tests. - private const int SeventhValue = 7; - - /// The eighth value used by the tests. - private const int EighthValue = 8; - - /// The ninth value used by the tests. - private const int NinthValue = 9; - - /// The tenth value used by the tests. - private const int TenthValue = 10; - - /// The twentieth value used by the tests. - private const int TwentiethValue = 20; - - /// The thirtieth value used by the tests. - private const int ThirtiethValue = 30; - - /// Two arrays with identical elements are equal. - /// A task to monitor the async. - [Test] - public async Task WhenSameElementsThenEqual() - { - var a = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var b = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - - await Assert.That(a == b).IsTrue(); - await Assert.That(a.Equals(b)).IsTrue(); - await Assert.That(a != b).IsFalse(); - } - - /// Two arrays with different elements are not equal. - /// A task to monitor the async. - [Test] - public async Task WhenDifferentElementsThenNotEqual() - { - var a = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var b = ImmutableArray.Create(FirstValue, SecondValue, DifferentValue).AsEquatableArray(); - - await Assert.That(a == b).IsFalse(); - await Assert.That(a != b).IsTrue(); - } - - /// Arrays with the same elements in different order are not equal. - /// A task to monitor the async. - [Test] - public async Task WhenDifferentOrderThenNotEqual() - { - var a = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var b = ImmutableArray.Create(ThirdValue, SecondValue, FirstValue).AsEquatableArray(); - - await Assert.That(a == b).IsFalse(); - } - - /// An empty array equals another empty array. - /// A task to monitor the async. - [Test] - public async Task WhenBothEmptyThenEqual() - { - var a = ImmutableArray.Empty.AsEquatableArray(); - var b = ImmutableArray.Empty.AsEquatableArray(); - - await Assert.That(a == b).IsTrue(); - await Assert.That(a.IsEmpty).IsTrue(); - } - - /// An empty array is not equal to a non-empty array. - /// A task to monitor the async. - [Test] - public async Task WhenOneEmptyThenNotEqual() - { - var a = ImmutableArray.Empty.AsEquatableArray(); - var b = ImmutableArray.Create(FirstValue).AsEquatableArray(); - - await Assert.That(a == b).IsFalse(); - } - - /// The indexer returns the element at the given position. - /// A task to monitor the async. - [Test] - public async Task WhenIndexedThenReturnsCorrectElement() - { - var arr = ImmutableArray.Create(TenthValue, TwentiethValue, ThirtiethValue).AsEquatableArray(); - - await Assert.That(arr[FirstIndex]).IsEqualTo(TenthValue); - await Assert.That(arr[SecondIndex]).IsEqualTo(TwentiethValue); - await Assert.That(arr[ThirdIndex]).IsEqualTo(ThirtiethValue); - } - - /// Enumeration yields all elements in order. - /// A task to monitor the async. - [Test] - public async Task WhenEnumeratedThenYieldsAllElements() - { - var expected = new[] { FirstValue, SecondValue, ThirdValue }; - var arr = ImmutableArray.Create(expected).AsEquatableArray(); - var actual = new List(arr); - - await Assert.That(actual.Count).IsEqualTo(ThreeElements); - await Assert.That(actual[FirstIndex]).IsEqualTo(FirstValue); - await Assert.That(actual[SecondIndex]).IsEqualTo(SecondValue); - await Assert.That(actual[ThirdIndex]).IsEqualTo(ThirdValue); - } - - /// Implicit conversion from ImmutableArray preserves elements. - /// A task to monitor the async. - [Test] - public async Task WhenImplicitlyConvertedFromImmutableArrayThenPreservesElements() - { - EquatableArray equatable = ImmutableArray.Create(FifthValue, SixthValue, SeventhValue); - - await Assert.That(equatable[FirstIndex]).IsEqualTo(FifthValue); - await Assert.That(equatable[SecondIndex]).IsEqualTo(SixthValue); - await Assert.That(equatable[ThirdIndex]).IsEqualTo(SeventhValue); - } - - /// Implicit conversion to ImmutableArray preserves elements. - /// A task to monitor the async. - [Test] - public async Task WhenImplicitlyConvertedToImmutableArrayThenPreservesElements() - { - ImmutableArray immutable = ImmutableArray.Create(EighthValue, NinthValue).AsEquatableArray(); - - await Assert.That(immutable.Length).IsEqualTo(TwoElements); - await Assert.That(immutable[FirstIndex]).IsEqualTo(EighthValue); - await Assert.That(immutable[SecondIndex]).IsEqualTo(NinthValue); - } - - /// ToArray returns a mutable copy with the same elements. - /// A task to monitor the async. - [Test] - public async Task WhenToArrayCalledThenReturnsMutableCopy() - { - var arr = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var copy = arr.ToArray(); - - await Assert.That(copy.Length).IsEqualTo(ThreeElements); - await Assert.That(copy[FirstIndex]).IsEqualTo(FirstValue); - await Assert.That(copy[ThirdIndex]).IsEqualTo(ThirdValue); - } - - /// AsSpan returns a span over the elements. - /// A task to monitor the async. - [Test] - public async Task WhenAsSpanCalledThenSpanCoversElements() - { - var arr = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var span = arr.AsSpan(); - var length = span.Length; - var middle = span[SecondIndex]; - - await Assert.That(length).IsEqualTo(ThreeElements); - await Assert.That(middle).IsEqualTo(SecondValue); - } - - /// GetHashCode returns the same value for equal arrays. - /// A task to monitor the async. - [Test] - public async Task WhenEqualArraysThenSameHashCode() - { - var a = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - var b = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue).AsEquatableArray(); - - await Assert.That(a.GetHashCode()).IsEqualTo(b.GetHashCode()); - } - - /// Equals(object) returns true when passed an equal EquatableArray. - /// A task to monitor the async. - [Test] - public async Task WhenEqualsObjectCalledWithEqualArrayThenReturnsTrue() - { - var a = ImmutableArray.Create(FirstValue, SecondValue).AsEquatableArray(); - object b = ImmutableArray.Create(FirstValue, SecondValue).AsEquatableArray(); - - await Assert.That(a.Equals(b)).IsTrue(); - } - - /// Equals(object) returns false when passed null. - /// A task to monitor the async. - [Test] - public async Task WhenEqualsObjectCalledWithNullThenReturnsFalse() - { - var a = ImmutableArray.Create(FirstValue).AsEquatableArray(); - - await Assert.That(a.Equals(null)).IsFalse(); - } - - /// Default arrays and unequal boxed arrays cover the empty backing-store paths. - /// A task to monitor the async. - [Test] - public async Task DefaultAndUnequalBoxedArraysUseValueSemantics() - { - var empty = default(EquatableArray); - var populated = ImmutableArray.Create(FirstValue).AsEquatableArray(); - object unequal = ImmutableArray.Create(SecondValue).AsEquatableArray(); - - await Assert.That(empty.Length).IsEqualTo(0); - await Assert.That(empty.Count).IsEqualTo(0); - await Assert.That(empty.GetHashCode()).IsEqualTo(0); - await Assert.That(empty.Equals(populated)).IsFalse(); - await Assert.That(populated.Equals(unequal)).IsFalse(); - } - - /// AsImmutableArray round-trips back to ImmutableArray. - /// A task to monitor the async. - [Test] - public async Task WhenAsImmutableArrayCalledThenRoundTrips() - { - var source = ImmutableArray.Create("x", "y", "z"); - var equatable = source.AsEquatableArray(); - var roundTripped = equatable.AsImmutableArray(); - - await Assert.That(roundTripped.SequenceEqual(source)).IsTrue(); - } - - /// FromImmutableArray static factory produces an equal instance to the extension method. - /// A task to monitor the async. - [Test] - public async Task WhenCreatedViaFactoryThenEqualsExtensionMethod() - { - var immutable = ImmutableArray.Create(FirstValue, SecondValue, ThirdValue); - var viaExtension = immutable.AsEquatableArray(); - var viaFactory = EquatableArray.FromImmutableArray(immutable); - - await Assert.That(viaExtension == viaFactory).IsTrue(); - } - - /// IEnumerable<T> explicit interface yields elements correctly. - /// A task to monitor the async. - [Test] - public async Task WhenEnumeratedAsIEnumerableThenYieldsCorrectly() - { - IEnumerable arr = ImmutableArray.Create(SeventhValue, EighthValue, NinthValue).AsEquatableArray(); - var list = new List(arr); - - await Assert.That(list.Count).IsEqualTo(ThreeElements); - await Assert.That(list[FirstIndex]).IsEqualTo(SeventhValue); - await Assert.That(list[SecondIndex]).IsEqualTo(EighthValue); - await Assert.That(list[ThirdIndex]).IsEqualTo(NinthValue); - } -} diff --git a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/ImmutableArrayBuilderTests.cs b/src/ReactiveUI.SourceGenerator.Tests/UnitTests/ImmutableArrayBuilderTests.cs deleted file mode 100644 index 0640e6f6..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/ImmutableArrayBuilderTests.cs +++ /dev/null @@ -1,316 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators.Helpers; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// Unit tests for . -public sealed class ImmutableArrayBuilderTests -{ - /// The expected answer value. - private const int Answer = 42; - - /// The first item index. - private const int FirstIndex = 0; - - /// The second item index. - private const int SecondIndex = 1; - - /// The count for two items. - private const int TwoItems = 2; - - /// The count for three items. - private const int ThreeItems = 3; - - /// The count for four items. - private const int FourItems = 4; - - /// The count for five items. - private const int FiveItems = 5; - - /// The first WrittenSpan test value. - private const int Seven = 7; - - /// The second WrittenSpan test value. - private const int Eight = 8; - - /// The first ordered test value. - private const int Ten = 10; - - /// The second ordered test value. - private const int Twenty = 20; - - /// The third ordered test value. - private const int Thirty = 30; - - /// The final index in a hundred item collection. - private const int NinetyNine = 99; - - /// The collection growth count. - private const int OneHundred = 100; - - /// The second enumerable test value. - private const int TwoHundred = 200; - - /// A freshly rented builder starts with Count == 0. - /// A task to monitor the async. - [Test] - public async Task WhenRentedThenCountIsZero() - { - int count; - using (var builder = ImmutableArrayBuilder.Rent()) - { - count = builder.Count; - } - - await Assert.That(count).IsEqualTo(0); - } - - /// Adding a single item increments Count to 1. - /// A task to monitor the async. - [Test] - public async Task WhenItemAddedThenCountIncrements() - { - int count; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(Answer); - count = builder.Count; - } - - await Assert.That(count).IsEqualTo(1); - } - - /// Multiple adds are reflected in Count. - /// A task to monitor the async. - [Test] - public async Task WhenMultipleItemsAddedThenCountMatchesAdded() - { - int count; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(1); - builder.Add(TwoItems); - builder.Add(ThreeItems); - count = builder.Count; - } - - await Assert.That(count).IsEqualTo(ThreeItems); - } - - /// ToImmutable returns an array containing all added items in order. - /// A task to monitor the async. - [Test] - public async Task WhenToImmutableCalledThenContainsAddedItems() - { - ImmutableArray result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(Ten); - builder.Add(Twenty); - builder.Add(Thirty); - result = builder.ToImmutable(); - } - - await Assert.That(result.Length).IsEqualTo(ThreeItems); - await Assert.That(result[FirstIndex]).IsEqualTo(Ten); - await Assert.That(result[SecondIndex]).IsEqualTo(Twenty); - await Assert.That(result[TwoItems]).IsEqualTo(Thirty); - } - - /// ToArray returns a mutable array with the same elements. - /// A task to monitor the async. - [Test] - public async Task WhenToArrayCalledThenReturnsMutableArray() - { - string[] result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add("a"); - builder.Add("b"); - result = builder.ToArray(); - } - - await Assert.That(result.Length).IsEqualTo(TwoItems); - await Assert.That(result[FirstIndex]).IsEqualTo("a"); - await Assert.That(result[SecondIndex]).IsEqualTo("b"); - } - - /// AddRange appends all items from the span. - /// A task to monitor the async. - [Test] - public async Task WhenAddRangeCalledThenAllItemsAppended() - { - int count; - ImmutableArray result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - ReadOnlySpan items = [1, TwoItems, ThreeItems, FourItems, FiveItems]; - builder.AddRange(items); - count = builder.Count; - result = builder.ToImmutable(); - } - - await Assert.That(count).IsEqualTo(FiveItems); - await Assert.That(result[FourItems]).IsEqualTo(FiveItems); - } - - /// WrittenSpan reflects the items added so far. - /// A task to monitor the async. - [Test] - public async Task WhenWrittenSpanAccessedThenReflectsCurrentItems() - { - int length; - int first; - int second; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(Seven); - builder.Add(Eight); - var span = builder.WrittenSpan; - length = span.Length; - first = span[FirstIndex]; - second = span[SecondIndex]; - } - - await Assert.That(length).IsEqualTo(TwoItems); - await Assert.That(first).IsEqualTo(Seven); - await Assert.That(second).IsEqualTo(Eight); - } - - /// AsEnumerable returns an IEnumerable containing all added items. - /// A task to monitor the async. - [Test] - public async Task WhenAsEnumerableCalledThenYieldsAllItems() - { - List list; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(OneHundred); - builder.Add(TwoHundred); - list = [.. builder.AsEnumerable()]; - } - - await Assert.That(list.Count).IsEqualTo(TwoItems); - await Assert.That(list[FirstIndex]).IsEqualTo(OneHundred); - await Assert.That(list[SecondIndex]).IsEqualTo(TwoHundred); - } - - /// Generic and non-generic enumerators traverse the writer iterator directly. - /// A task to monitor the async. - [Test] - public async Task WhenEnumeratorsUsedDirectlyThenTheyTraverseEveryItem() - { - var genericItems = new int[TwoItems]; - var genericIndex = 0; - var nonGenericCount = 0; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add(Seven); - builder.Add(Eight); - var enumerable = builder.AsEnumerable(); - foreach (var item in enumerable) - { - genericItems[genericIndex] = item; - genericIndex++; - } - - foreach (var item in (System.Collections.IEnumerable)enumerable) - { - if (item is int) - { - nonGenericCount++; - } - } - } - - await Assert.That(genericItems).IsEquivalentTo([Seven, Eight]); - await Assert.That(nonGenericCount).IsEqualTo(TwoItems); - } - - /// Builder can hold more than the initial capacity (pool growth). - /// A task to monitor the async. - [Test] - public async Task WhenManyItemsAddedThenBuilderGrowsCorrectly() - { - int count; - ImmutableArray result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - for (var i = 0; i < OneHundred; i++) - { - builder.Add(i); - } - - count = builder.Count; - result = builder.ToImmutable(); - } - - await Assert.That(count).IsEqualTo(OneHundred); - await Assert.That(result[NinetyNine]).IsEqualTo(NinetyNine); - } - - /// ToImmutable on an empty builder returns an empty ImmutableArray. - /// A task to monitor the async. - [Test] - public async Task WhenEmptyThenToImmutableReturnsEmpty() - { - ImmutableArray result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - result = builder.ToImmutable(); - } - - await Assert.That(result.IsEmpty).IsTrue(); - } - - /// ToString returns the WrittenSpan string representation without throwing. - /// A task to monitor the async. - [Test] - public async Task WhenToStringCalledThenDoesNotThrow() - { - string result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - builder.Add('H'); - builder.Add('i'); - result = builder.ToString(); - } - - await Assert.That(result).IsNotNull(); - } - - /// Dispose can be called multiple times without throwing. - /// A task to monitor the async. - [Test] - public async Task WhenDisposedTwiceThenDoesNotThrow() - { - var builder = ImmutableArrayBuilder.Rent(); - builder.Add(1); - var completed = false; - builder.Dispose(); - builder.Dispose(); - completed = true; - await Assert.That(completed).IsTrue(); - } - - /// AddRange followed by Add correctly appends items in order. - /// A task to monitor the async. - [Test] - public async Task WhenAddRangeThenAddThenOrderPreserved() - { - ImmutableArray result; - using (var builder = ImmutableArrayBuilder.Rent()) - { - ReadOnlySpan range = [1, TwoItems, ThreeItems]; - builder.AddRange(range); - builder.Add(FourItems); - result = builder.ToImmutable(); - } - - await Assert.That(result.Length).IsEqualTo(FourItems); - await Assert.That(result[ThreeItems]).IsEqualTo(FourItems); - } -} diff --git a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/RoslynHashCodeTests.cs b/src/ReactiveUI.SourceGenerator.Tests/UnitTests/RoslynHashCodeTests.cs deleted file mode 100644 index 95a03ad5..00000000 --- a/src/ReactiveUI.SourceGenerator.Tests/UnitTests/RoslynHashCodeTests.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -extern alias RoslynSourceGenerator; - -using RoslynHashCode = RoslynSourceGenerator::System.HashCode; - -namespace ReactiveUI.SourceGenerator.Tests; - -/// Tests the Roslyn-targeted System.HashCode polyfill. -public sealed class RoslynHashCodeTests -{ - /// The first test value. - private const int FirstValue = 1; - - /// The second test value. - private const int SecondValue = 2; - - /// The third test value. - private const int ThirdValue = 3; - - /// The fourth test value. - private const int FourthValue = 4; - - /// The fifth test value. - private const int FifthValue = 5; - - /// The sixth test value. - private const int SixthValue = 6; - - /// The seventh test value. - private const int SeventhValue = 7; - - /// The eighth test value. - private const int EighthValue = 8; - - /// Equivalent sequences produce value-equal hash states. - /// A task to monitor the async. - [Test] - public async Task EquivalentSequences_AreEqualAndProduceEqualHashes() - { - var first = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue, FifthValue, SixthValue, SeventhValue, EighthValue); - var second = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue, FifthValue, SixthValue, SeventhValue, EighthValue); - object boxedSecond = second; - - await Assert.That(first.Equals(second)).IsTrue(); - await Assert.That(first.Equals(boxedSecond)).IsTrue(); - await Assert.That(first.Equals(null)).IsFalse(); - await Assert.That(first.GetHashCode()).IsEqualTo(second.GetHashCode()); - await Assert.That(first.ToHashCode()).IsEqualTo(second.ToHashCode()); - } - - /// Queue sizes, null values, and differing states are handled. - /// A task to monitor the async. - [Test] - public async Task DifferentSequences_ExerciseEveryQueuePosition() - { - var empty = CreateHash(); - var one = CreateHash(FirstValue); - var two = CreateHash(FirstValue, SecondValue); - var three = CreateHash(FirstValue, SecondValue, ThirdValue); - var four = CreateHash(FirstValue, SecondValue, ThirdValue, FourthValue); - var withNull = default(RoslynHashCode); - var withZero = default(RoslynHashCode); - - withNull.Add(null); - withZero.Add(0); - - await Assert.That(empty.ToHashCode()).IsEqualTo(empty.GetHashCode()); - await Assert.That(one.ToHashCode()).IsEqualTo(one.GetHashCode()); - await Assert.That(two.ToHashCode()).IsEqualTo(two.GetHashCode()); - await Assert.That(three.ToHashCode()).IsEqualTo(three.GetHashCode()); - await Assert.That(four.ToHashCode()).IsEqualTo(four.GetHashCode()); - await Assert.That(withNull.Equals(withZero)).IsTrue(); - await Assert.That(withNull.ToHashCode()).IsEqualTo(withZero.ToHashCode()); - await Assert.That(four.Equals(CreateHash(FourthValue, ThirdValue, SecondValue, FirstValue))).IsFalse(); - await Assert.That(four.Equals("not a hash state")).IsFalse(); - } - - /// Creates a Roslyn hash state from an ordered sequence. - /// Values to add. - /// The populated hash state. - private static RoslynHashCode CreateHash(params int[] values) - { - var hash = default(RoslynHashCode); - - foreach (var value in values) - { - hash.Add(value); - } - - return hash; - } -} diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/AnalyzerReleases.Shipped.md b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/AnalyzerReleases.Shipped.md index ba84b6ab..a46b1b47 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/AnalyzerReleases.Shipped.md +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/AnalyzerReleases.Shipped.md @@ -17,63 +17,6 @@ Rule ID | Category | Severity | Notes --------|----------|----------|------- RXUISG0002 | ReactiveUI.SourceGenerators.CodeFixers.ReactiveCommandAnalyzer | Error | A `[ReactiveCommand]` method takes more than one parameter besides a CancellationToken RXUISG0008 | ReactiveUI.SourceGenerators.CodeFixers.ReactiveCommandAnalyzer | Error | A `[ReactiveCommand]` method is async void +RXUISG0020 | ReactiveUI.SourceGenerators.CodeFixers.ReactiveAttributeMisuseAnalyzer | Warning | `[Reactive]` is on a member or type that is not partial RXUISG0021 | ReactiveUI.SourceGenerators.CodeFixers.ReactiveCommandAnalyzer | Warning | A `[ReactiveCommand]` OutputScheduler or BackgroundScheduler does not resolve to a scheduler RXUISG0022 | ReactiveUI.SourceGenerators.CodeFixers.ControlHostAnalyzer | Info | A WinForms host follows its properties without ReactiveUI.Binding 8.4.0's ObservedProperty - - -## Rules -Shipped in ReactiveUI.SourceGenerators - -- RXUISG0001 - Unsupported C# Language Version -This rule checks if the project is using an unsupported C# language version. The supported versions are C# 12.0 and above. If the project is using an unsupported version, the rule will raise an error. - -- RXUISG0002 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has a Invalid ReactiveCommand method signature. - -- RXUISG0003 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has a Invalid ReactiveCommand.CanExecute member name. - -- RXUISG0004 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Multiple ReactiveCommand.CanExecute member name matches. - -- RXUISG0005 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has No valid ReactiveCommand.CanExecute member match. - -- RXUISG0006 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Invalid field or property targeted attribute type. - -- RXUISG0007 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Invalid field or property targeted attribute expression. - -- RXUISG0008 - AsyncVoidReturningReactiveCommandMethodAnalyzer -This rule checks if the `ReactiveCommand` has Async void returning method annotated with ReactiveCommand. - -- RXUISG0009 - ReactiveGenerator -This rule checks if the `Reactive` has Name collision for generated property. - -- RXUISG0010 - ReactiveGenerator -This rule checks if the `Reactive` has Invalid property targeted attribute type. - -- RXUISG0011 - ReactiveGenerator -This rule checks if the `Reactive` has Invalid property targeted attribute expression. - -- RXUISG0012 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid property targeted attribute type. - -- RXUISG0013 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid property targeted attribute expression. - -- RXUISG0014 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid generated property declaration. - -- RXUISG0015 - ReactiveGenerator -This rule checks if the `Reactive` attribute is being used correctly. If the `Reactive` has Invalid generated property declaration. - -- RXUISG0016 - PropertyToReactiveFieldCodeFixProvider -This rule checks if there are any Properties to change to Reactive Field, change to [Reactive] private type _fieldName;. - -- RXUISG0017 - ObservableAsPropertyFromObservableGenerator -This rule checks if the `ObservableAsProperty` has Invalid generated property declaration. - -- RXUISG0020 - ReactiveUI.SourceGenerators.CodeFixers.ReactiveAttributeMisuseAnalyzer -This rule warns when `[Reactive]` is used on non-partial property/type. diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/FieldSyntaxExtensions.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/FieldSyntaxExtensions.cs index cc790a79..7be623e2 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/FieldSyntaxExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/FieldSyntaxExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ISymbolExtensions.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ISymbolExtensions.cs index 8508fe77..6f624bd7 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ISymbolExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ISymbolExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ITypeSymbolExtensions.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ITypeSymbolExtensions.cs index 2dd198f6..ade0643b 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ITypeSymbolExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Extensions/ITypeSymbolExtensions.cs @@ -1,10 +1,10 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; +using System.Text; using Microsoft.CodeAnalysis; -using ReactiveUI.SourceGenerators.CodeFixers.Helpers; namespace ReactiveUI.SourceGenerators.CodeFixers.Extensions; @@ -72,51 +72,48 @@ internal bool HasOrInheritsAttributeWithFullyQualifiedMetadataName(string name) /// Whether the type symbol has a full name equal to . internal bool HasFullyQualifiedMetadataName(string name) { - using var builder = ImmutableArrayBuilder.Rent(); + var builder = new StringBuilder(); AppendFullyQualifiedMetadataName(typeSymbol, builder); - return builder.WrittenSpan.StartsWith(name.AsSpan()); + return builder.ToString().StartsWith(name, StringComparison.Ordinal); } } /// Appends a symbol's fully qualified metadata name to a target builder. /// The symbol whose metadata name will be appended. /// The target builder. - private static void AppendFullyQualifiedMetadataName(ITypeSymbol symbol, ImmutableArrayBuilder builder) + private static void AppendFullyQualifiedMetadataName(ITypeSymbol symbol, StringBuilder builder) { - static void BuildFrom(ISymbol? current, ImmutableArrayBuilder target) + static void BuildFrom(ISymbol? current, StringBuilder target) { switch (current) { case INamespaceSymbol { ContainingNamespace.IsGlobalNamespace: false }: { BuildFrom(current.ContainingNamespace, target); - target.Add('.'); - target.AddRange(current.MetadataName.AsSpan()); + _ = target.Append('.').Append(current.MetadataName); break; } case INamespaceSymbol { IsGlobalNamespace: false }: case ITypeSymbol { ContainingSymbol: INamespaceSymbol namespaceSymbol } when namespaceSymbol.IsGlobalNamespace: { - target.AddRange(current.MetadataName.AsSpan()); + _ = target.Append(current.MetadataName); break; } case ITypeSymbol { ContainingSymbol: INamespaceSymbol namespaceSymbol }: { BuildFrom(namespaceSymbol, target); - target.Add('.'); - target.AddRange(current.MetadataName.AsSpan()); + _ = target.Append('.').Append(current.MetadataName); break; } case ITypeSymbol { ContainingSymbol: ITypeSymbol typeSymbol }: { BuildFrom(typeSymbol, target); - target.Add('+'); - target.AddRange(current.MetadataName.AsSpan()); + _ = target.Append('+').Append(current.MetadataName); break; } } diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArrayExtensions.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArrayExtensions.cs deleted file mode 100644 index 2ab197f7..00000000 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArrayExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections.Immutable; - -namespace ReactiveUI.SourceGenerators.CodeFixers.Helpers; - -/// Extensions for . -internal static class EquatableArrayExtensions -{ - /// Extension methods for instances. - /// The immutable-array element type. - /// The immutable array to extend. - extension(ImmutableArray array) - where T : IEquatable - { - /// Creates an from the current immutable array. - /// An instance. - internal EquatableArray AsEquatableArray() => new(array); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArray{T}.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArray{T}.cs deleted file mode 100644 index 576089d4..00000000 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/EquatableArray{T}.cs +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace ReactiveUI.SourceGenerators.CodeFixers.Helpers; - -/// An immutable, equatable array. This is equivalent to but with value equality support. -/// The type of values in the array. -internal readonly struct EquatableArray : IEquatable>, IEnumerable - where T : IEquatable -{ - /// The underlying array. - private readonly T[]? _array; - - /// Initializes a new instance of the struct. - /// The immutable array to wrap. - internal EquatableArray(ImmutableArray array) => _array = Unsafe.As, T[]?>(ref array); - - /// Gets a value indicating whether the current array is empty. - internal bool IsEmpty - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => AsImmutableArray().IsEmpty; - } - - /// Gets a reference to an item at a specified position within the array. - /// The index of the item to retrieve a reference to. - /// A reference to an item at a specified position within the array. - internal ref readonly T this[int index] - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => ref AsImmutableArray().ItemRef(index); - } - - /// Implicitly converts an to . - /// An instance from a given . - public static implicit operator EquatableArray(ImmutableArray array) => FromImmutableArray(array); - - /// Implicitly converts an to . - /// An instance from a given . - public static implicit operator ImmutableArray(in EquatableArray array) => array.AsImmutableArray(); - - /// Checks whether two values are the same. - /// The first value. - /// The second value. - /// Whether and are equal. - public static bool operator ==(in EquatableArray left, in EquatableArray right) => left.Equals(right); - - /// Checks whether two values are not the same. - /// The first value. - /// The second value. - /// Whether and are not equal. - public static bool operator !=(in EquatableArray left, in EquatableArray right) => !left.Equals(right); - - /// Equalses the specified object. - /// The object. - /// A bool. - public override bool Equals([NotNullWhen(true)] object? obj) => obj is EquatableArray array && Equals(array); - - /// Gets the hash code. - /// A hash code for the current array. - public override int GetHashCode() - { - if (_array is not T[] array) - { - return 0; - } - - HashCode hashCode = default; - - foreach (var item in array) - { - hashCode.Add(item); - } - - return hashCode.ToHashCode(); - } - - /// Creates an instance from a given . - /// The input instance. - /// An instance from a given . - internal static EquatableArray FromImmutableArray(ImmutableArray array) => new(array); - - /// Equalses the specified array. - /// The array. - /// A bool. - internal bool Equals(EquatableArray other) => AsSpan().SequenceEqual(other.AsSpan()); - - bool IEquatable>.Equals(EquatableArray other) => Equals(other); - - /// Gets an instance from the current . - /// The from the current . - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ImmutableArray AsImmutableArray() => Unsafe.As>(ref Unsafe.AsRef(in _array)); - - /// Returns a wrapping the current items. - /// A wrapping the current items. - internal ReadOnlySpan AsSpan() => AsImmutableArray().AsSpan(); - - /// Copies the contents of this instance to a mutable array. - /// The newly instantiated array. - internal T[] ToArray() => [.. AsImmutableArray()]; - - /// Gets an value to traverse items in the current array. - /// An value to traverse items in the current array. - internal ImmutableArray.Enumerator GetEnumerator() => AsImmutableArray().GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)AsImmutableArray()).GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)AsImmutableArray()).GetEnumerator(); -} diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/HashCode.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/HashCode.cs deleted file mode 100644 index bcd8e5a6..00000000 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/HashCode.cs +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Runtime.CompilerServices; -using System.Security.Cryptography; - -namespace ReactiveUI.SourceGenerators.CodeFixers.Helpers; - -/// Provides a .NET Standard-compatible incremental hash-code implementation. -internal struct HashCode : IEquatable -{ - /// The number of values processed in a complete hash block. - private const uint ValuesPerBlock = 4U; - - /// The queue position following the second entry. - private const uint ThirdQueuePosition = 2U; - - /// The number of bits in a byte. - private const int BitsPerByte = 8; - - /// The first xxHash prime. - private const uint Prime1 = 2_654_435_761U; - - /// The second xxHash prime. - private const uint Prime2 = 2_246_822_519U; - - /// The third xxHash prime. - private const uint Prime3 = 3_266_489_917U; - - /// The fourth xxHash prime. - private const uint Prime4 = 668_265_263U; - - /// The fifth xxHash prime. - private const uint Prime5 = 374_761_393U; - - /// The rotation used by . - private const int RoundRotation = 13; - - /// The rotation used by . - private const int QueueRotation = 17; - - /// The first rotation used while mixing state. - private const int FirstStateRotation = 1; - - /// The second rotation used while mixing state. - private const int SecondStateRotation = 7; - - /// The third rotation used while mixing state. - private const int ThirdStateRotation = 12; - - /// The fourth rotation used while mixing state. - private const int FourthStateRotation = 18; - - /// The number of bytes used to create the random seed. - private const int SeedByteCount = 4; - - /// The process-wide random seed. - private static readonly uint Seed = GenerateGlobalSeed(); - - /// The first accumulated hash value. - private uint _v1; - - /// The second accumulated hash value. - private uint _v2; - - /// The third accumulated hash value. - private uint _v3; - - /// The fourth accumulated hash value. - private uint _v4; - - /// The first queued value. - private uint _queue1; - - /// The second queued value. - private uint _queue2; - - /// The third queued value. - private uint _queue3; - - /// The number of values added to the hash. - private uint _length; - - /// - public override readonly bool Equals(object? obj) => obj is HashCode other && Equals(other); - - /// - public override readonly int GetHashCode() => ToHashCode(); - - /// Adds a value to the current hash. - /// The type of the value to add. - /// The value to add. - internal void Add(T value) => Add(value?.GetHashCode() ?? 0); - - /// Gets the resulting hash code from the current instance. - /// The resulting hash code. - internal readonly int ToHashCode() - { - var position = _length % ValuesPerBlock; - var hash = _length < ValuesPerBlock ? MixEmptyState() : MixState(_v1, _v2, _v3, _v4); - hash += _length * ValuesPerBlock; - - if (position != 0U) - { - hash = QueueRound(hash, _queue1); - if (position > 1U) - { - hash = QueueRound(hash, _queue2); - if (position > ThirdQueuePosition) - { - hash = QueueRound(hash, _queue3); - } - } - } - - return (int)MixFinal(hash); - } - - /// Determines whether this hash state equals another hash state. - /// The hash state to compare. - /// when both hash states are equal. - internal readonly bool Equals(HashCode other) => - _v1 == other._v1 && _v2 == other._v2 && _v3 == other._v3 && _v4 == other._v4 - && _queue1 == other._queue1 && _queue2 == other._queue2 && _queue3 == other._queue3 - && _length == other._length; - - /// Rotates a value left by a number of bits. - /// The value to rotate. - /// The number of bits to rotate by. - /// The rotated value. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint RotateLeft(uint value, int offset) => (value << offset) | (value >> ((sizeof(uint) * BitsPerByte) - offset)); - - /// Creates the process-wide random seed. - /// A random seed. - private static uint GenerateGlobalSeed() - { - var bytes = new byte[SeedByteCount]; - using var generator = RandomNumberGenerator.Create(); - generator.GetBytes(bytes); - return BitConverter.ToUInt32(bytes, 0); - } - - /// Initializes a full hash block. - /// The first initialized value. - /// The second initialized value. - /// The third initialized value. - /// The fourth initialized value. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void Initialize(out uint v1, out uint v2, out uint v3, out uint v4) - { - v1 = Seed + Prime1 + Prime2; - v2 = Seed + Prime2; - v3 = Seed; - v4 = Seed - Prime1; - } - - /// Mixes a value into a hash accumulator. - /// The current hash. - /// The value to mix. - /// The mixed hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint Round(uint hash, uint input) => RotateLeft(hash + (input * Prime2), RoundRotation) * Prime1; - - /// Mixes a queued value into a hash accumulator. - /// The current hash. - /// The queued value to mix. - /// The mixed hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint QueueRound(uint hash, uint queuedValue) => RotateLeft(hash + (queuedValue * Prime3), QueueRotation) * Prime4; - - /// Mixes a complete hash state. - /// The first state value. - /// The second state value. - /// The third state value. - /// The fourth state value. - /// The mixed hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixState(uint v1, uint v2, uint v3, uint v4) => - RotateLeft(v1, FirstStateRotation) + RotateLeft(v2, SecondStateRotation) - + RotateLeft(v3, ThirdStateRotation) + RotateLeft(v4, FourthStateRotation); - - /// Creates the initial hash state for an empty sequence. - /// The initial hash state. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixEmptyState() => Seed + Prime5; - - /// Applies the final avalanche to a hash. - /// The hash to finalize. - /// The finalized hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixFinal(uint hash) - { - hash ^= hash >> 15; - hash *= Prime2; - hash ^= hash >> RoundRotation; - hash *= Prime3; - hash ^= hash >> 16; - return hash; - } - - /// Adds an integer value to the current hash. - /// The value to add. - private void Add(int value) - { - var previousLength = _length; - _length++; - switch (previousLength % ValuesPerBlock) - { - case 0U: - { - _queue1 = (uint)value; - return; - } - - case 1U: - { - _queue2 = (uint)value; - return; - } - - case ThirdQueuePosition: - { - _queue3 = (uint)value; - return; - } - - default: - { - if (previousLength == ValuesPerBlock - 1U) - { - Initialize(out _v1, out _v2, out _v3, out _v4); - } - - _v1 = Round(_v1, _queue1); - _v2 = Round(_v2, _queue2); - _v3 = Round(_v3, _queue3); - _v4 = Round(_v4, (uint)value); - return; - } - } - } - - /// - bool IEquatable.Equals(HashCode other) => Equals(other); -} diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/ImmutableArrayBuilder{T}.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/ImmutableArrayBuilder{T}.cs deleted file mode 100644 index 9579eb4f..00000000 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Core/Helpers/ImmutableArrayBuilder{T}.cs +++ /dev/null @@ -1,235 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Buffers; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace ReactiveUI.SourceGenerators.CodeFixers.Helpers; - -/// A helper type to build sequences of values with pooled buffers. -/// The type of items to create sequences for. -internal ref struct ImmutableArrayBuilder -{ - /// The rented instance to use. - private Writer? _writer; - - /// Initializes a new instance of the struct. - /// The target data writer to use. - private ImmutableArrayBuilder(Writer writer) => _writer = writer; - - /// Gets the data written to the underlying buffer so far, as a . - [UnscopedRef] - internal readonly ReadOnlySpan WrittenSpan - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => _writer!.WrittenSpan; - } - - /// Gets the count. - /// - /// The count. - /// - internal readonly int Count - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => _writer!.Count; - } - - /// - public override readonly string ToString() => _writer!.WrittenSpan.ToString(); - - /// Creates a value with a pooled underlying data writer. - /// A instance to write data to. - internal static ImmutableArrayBuilder Rent() => new(new Writer()); - - /// Adds an item to the end of the builder. - /// The item to add. - internal readonly void Add(T item) => _writer!.Add(item); - - /// Adds the specified items to the end of the array. - /// The items to add at the end of the array. - internal readonly void AddRange(scoped in ReadOnlySpan items) => _writer!.AddRange(items); - - /// Creates an immutable array from the values in the builder. - /// An immutable array containing the builder's values. - internal readonly ImmutableArray ToImmutable() - { - var array = _writer!.WrittenSpan.ToArray(); - - return Unsafe.As>(ref array); - } - - /// Creates an array from the values in the builder. - /// An array containing the builder's values. - internal readonly T[] ToArray() => _writer!.WrittenSpan.ToArray(); - - /// Gets an instance for the current builder. - /// An instance for the current builder. - /// - /// The builder should not be mutated while an enumerator is in use. - /// - internal readonly IEnumerable AsEnumerable() => _writer!; - - /// Returns the pooled buffer to its owner. - internal void Dispose() - { - var writer = _writer; - - _writer = null; - - writer?.Dispose(); - } - - /// A class handling the actual buffer writing. - private sealed class Writer : ICollection, IDisposable - { - /// The initial buffer capacity for character builders. - private const int CharacterBufferCapacity = 1_024; - - /// The initial buffer capacity for non-character builders. - private const int DefaultBufferCapacity = 8; - - /// The underlying array. - private T?[]? _array; - - /// Initializes a new instance of the class. Creates a new instance with the specified parameters. - internal Writer() - { - _array = ArrayPool.Shared.Rent(typeof(T) == typeof(char) ? CharacterBufferCapacity : DefaultBufferCapacity); - Count = 0; - } - - /// Gets or sets gets the number of values in the buffer. - internal int Count - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get; set; - } - - /// Gets a span over the values in the buffer. - internal ReadOnlySpan WrittenSpan - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => new(_array!, 0, Count); - } - - /// Gets a value indicating whether this collection is read-only. - bool ICollection.IsReadOnly => true; - - /// Adds an item to the buffer. - /// The item to add. - internal void Add(T item) - { - EnsureCapacity(1); - - _array![Count] = item; - Count++; - } - - /// Adds a range of items to the buffer. - /// The items to add. - internal void AddRange(in ReadOnlySpan items) - { - EnsureCapacity(items.Length); - - items.CopyTo(_array.AsSpan(Count)!); - - Count += items.Length; - } - - /// Returns the pooled buffer. - internal void Dispose() - { - var array = _array; - - _array = null; - - if (array is null) - { - return; - } - - ArrayPool.Shared.Return(array, clearArray: typeof(T) != typeof(char)); - } - - /// Clears this collection. - void ICollection.Clear() => throw new NotSupportedException(); - - /// Determines whether this collection contains an item. - /// The item to locate. - /// when the item is in the collection. - bool ICollection.Contains(T item) => throw new NotSupportedException(); - - /// Copies the collection to an array. - /// The destination array. - /// The destination index at which copying begins. - void ICollection.CopyTo(T[] array, int arrayIndex) => Array.Copy(_array!, 0, array, arrayIndex, Count); - - /// - IEnumerator IEnumerable.GetEnumerator() - { - var array = _array!; - var length = Count; - - for (var i = 0; i < length; i++) - { - yield return array[i]!; - } - } - - /// Gets a non-generic enumerator for this collection. - /// A non-generic enumerator for this collection. - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)this).GetEnumerator(); - - /// Removes an item from this collection. - /// The item to remove. - /// when the item was removed. - bool ICollection.Remove(T item) => throw new NotSupportedException(); - - /// Gets the number of items in this collection. - int ICollection.Count => Count; - - /// Adds an item through the collection interface. - /// The item to add. - void ICollection.Add(T item) => Add(item); - - /// Disposes this collection through the disposable interface. - void IDisposable.Dispose() => Dispose(); - - /// Ensures that has enough free space to contain a given number of new items. - /// The minimum number of items to ensure space for in . - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void EnsureCapacity(int requestedSize) - { - if (requestedSize <= _array!.Length - Count) - { - return; - } - - ResizeBuffer(requestedSize); - } - - /// Resizes to ensure it can fit the specified number of new items. - /// The minimum number of items to ensure space for in . - [MethodImpl(MethodImplOptions.NoInlining)] - private void ResizeBuffer(int sizeHint) - { - var minimumSize = Count + sizeHint; - - var oldArray = _array!; - var newArray = ArrayPool.Shared.Rent(minimumSize); - - Array.Copy(oldArray, newArray, Count); - - _array = newArray; - - ArrayPool.Shared.Return(oldArray, clearArray: typeof(T) != typeof(char)); - } - } -} diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ControlHostAnalyzer.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ControlHostAnalyzer.cs index 7adeaf18..7e72ffae 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ControlHostAnalyzer.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ControlHostAnalyzer.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -22,6 +22,7 @@ public sealed class ControlHostAnalyzer : DiagnosticAnalyzer /// Registers the host analysis for compilations without ObservedProperty. /// The analysis context. + /// is null. public override void Initialize(AnalysisContext context) { if (context is null) @@ -48,16 +49,18 @@ private static void AnalyzeType(in SymbolAnalysisContext context) { foreach (var attribute in context.Symbol.GetAttributes()) { - if (attribute.AttributeClass?.ToDisplayString() is "ReactiveUI.SourceGenerators.WinForms.RoutedControlHostAttribute" - or "ReactiveUI.SourceGenerators.WinForms.ViewModelControlHostAttribute") + if (attribute.AttributeClass?.ToDisplayString() is not ("ReactiveUI.SourceGenerators.WinForms.RoutedControlHostAttribute" + or "ReactiveUI.SourceGenerators.WinForms.ViewModelControlHostAttribute")) { - context.ReportDiagnostic(Diagnostic.Create( - ControlHostWithoutObservedPropertyRule, - context.Symbol.Locations[0], - context.Symbol.Name, - ViewApiRules.ObservedPropertyMinimumBindingVersion)); - return; + continue; } + + context.ReportDiagnostic(Diagnostic.Create( + ControlHostWithoutObservedPropertyRule, + context.Symbol.Locations[0], + context.Symbol.Name, + ViewApiRules.ObservedPropertyMinimumBindingVersion)); + return; } } } diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldAnalyzer.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldAnalyzer.cs index 34a62e5b..2587bf01 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldAnalyzer.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldAnalyzer.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -27,6 +27,7 @@ public sealed class PropertyToReactiveFieldAnalyzer : DiagnosticAnalyzer /// Initializes this analyzer. /// The analysis context. + /// is null. public override void Initialize(AnalysisContext context) { if (context is null) diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldCodeFixProvider.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldCodeFixProvider.cs index 49fbffe2..47307026 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldCodeFixProvider.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/PropertyToReactiveFieldCodeFixProvider.cs @@ -1,10 +1,11 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Runtime.CompilerServices; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -138,6 +139,7 @@ private static FieldDeclarationSyntax ConvertToField(PropertyDeclarationSyntax p /// Makes the [ReactiveUI.SourceGenerators.Reactive] attribute list. /// The attribute list. + [MethodImpl(MethodImplOptions.AggressiveInlining)] private static AttributeListSyntax ReactiveAttributeList() => AttributeList(SingletonSeparatedList(Attribute(IdentifierName("ReactiveUI.SourceGenerators.Reactive")))); diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseAnalyzer.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseAnalyzer.cs index df85cd3e..17a79681 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseAnalyzer.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseAnalyzer.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -23,14 +23,8 @@ public sealed class ReactiveAttributeMisuseAnalyzer : DiagnosticAnalyzer /// Called once at session start to register actions in the analysis context. /// The analysis context. - /// context. public override void Initialize(AnalysisContext context) { - if (context is null) - { - throw new ArgumentNullException(nameof(context)); - } - context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); context.EnableConcurrentExecution(); context.RegisterSyntaxNodeAction(static nodeContext => AnalyzeProperty(in nodeContext), SyntaxKind.PropertyDeclaration); diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseCodeFixProvider.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseCodeFixProvider.cs index 778223da..b9e10945 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseCodeFixProvider.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveAttributeMisuseCodeFixProvider.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -77,6 +77,7 @@ private static async Task MakePartialAsync(Document document, Property /// The declaration type. /// The declaration to update. /// The declaration with a partial modifier. + /// Thrown if the declaration is neither a type nor a property. private static T AddPartialModifier(T declaration) where T : MemberDeclarationSyntax { diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveCommandAnalyzer.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveCommandAnalyzer.cs index 0c2b3551..5ecf78c7 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveCommandAnalyzer.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/CodeFixers/ReactiveCommandAnalyzer.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -33,11 +33,6 @@ public sealed class ReactiveCommandAnalyzer : DiagnosticAnalyzer /// The analysis context. public override void Initialize(AnalysisContext context) { - if (context is null) - { - throw new ArgumentNullException(nameof(context)); - } - context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); context.EnableConcurrentExecution(); context.RegisterSyntaxNodeAction(static nodeContext => AnalyzeMethod(in nodeContext), SyntaxKind.MethodDeclaration); diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/DiagnosticDescriptors.cs b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/DiagnosticDescriptors.cs index 60918337..570641f4 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/DiagnosticDescriptors.cs +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/Diagnostics/DiagnosticDescriptors.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj index 4447fb54..77e48480 100644 --- a/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj +++ b/src/ReactiveUI.SourceGenerators.Analyzers.CodeFixes/ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj @@ -1,42 +1,42 @@ - $(RoslynTfm) - enable - latest - true + netstandard2.0 true true - true false true true true - $(NoWarn);RS1038;RS2007;NU5128 - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI + + $(NoWarn);RS1038 + Analyzers and code fixes for ReactiveUI.SourceGenerators attributes. + + - including -warnaserror builds - are not broken by the code fixes. --> - - - + + + - + + - + - + - + + - + diff --git a/src/ReactiveUI.SourceGenerators.Execute.Maui/ReactiveUI.SourceGenerators.Execute.Maui.csproj b/src/ReactiveUI.SourceGenerators.Execute.Maui/ReactiveUI.SourceGenerators.Execute.Maui.csproj deleted file mode 100644 index 4db6c4bf..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Maui/ReactiveUI.SourceGenerators.Execute.Maui.csproj +++ /dev/null @@ -1,38 +0,0 @@ - - - - $(MauiTfms) - true - enable - enable - false - latest - true - - $(NoWarn);SST1449 - - 12.2 - 15.0 - 21.0 - 10.0.17763.0 - 10.0.17763.0 - 6.5 - - - - - - - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Execute.Maui/TestViewModel.cs b/src/ReactiveUI.SourceGenerators.Execute.Maui/TestViewModel.cs deleted file mode 100644 index f1cf7f8e..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Maui/TestViewModel.cs +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using System.Reactive; -using System.Reactive.Linq; -using System.Runtime.Serialization; -using System.Text.Json.Serialization; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides a MAUI sample that exercises generated reactive members and commands. -[ExcludeFromCodeCoverage] -[DataContract] -public partial class TestViewModel : ReactiveObject -{ - /// Represents the argument supplied to the observable command. - private const int ObservableCommandArgument = 100; - - /// Represents the argument supplied to the point-producing command. - private const int PointCommandArgument = 200; - - /// Represents the coordinate used by the point-producing sample command. - private const int PointCoordinate = 100; - - /// Represents the offset applied by the observable sample command. - private const double ObservableCommandOffset = 10.0D; - - /// Represents the delay before the cancellation subscription is disposed. - private const int CancellationObservationDelayMilliseconds = 1_000; - - /// Represents the duration of the cancellable sample command. - private const int CancellableCommandDelayMilliseconds = 2_000; - - /// Backs . - /// - /// [ObservableAsProperty] moved to ReactiveUI.Binding, so the helper is written by hand with ReactiveUI's - /// ToProperty. On ReactiveUI.Binding, mark a partial property [ObservableAsProperty] instead. - /// - private ObservableAsPropertyHelper? _test2PropertyHelper; - - /// Stores the reactive property sample value. - [JsonInclude] - [Reactive] - [DataMember] - private int _test1Property; - - /// Gets the initialized MAUI command sample. - public static TestViewModel Instance { get; } = CreateInitializedInstance(); - - /// Gets an observable that enables the first sample command. - public IObservable CanExecuteTest1 => Observable.Return(_test1Property >= 0); - - /// Gets the latest value the observable command produced. - [JsonInclude] - [DataMember] - public double Test2Property => _test2PropertyHelper?.Value ?? default; - - /// Writes a message when the first generated command executes. - [ReactiveCommand(CanExecute = nameof(CanExecuteTest1))] - [property: JsonInclude] - private static void Test1() => Console.Out.WriteLine("Test1"); - - /// Returns the default point from the second generated command. - /// The default point value. - [ReactiveCommand] - private static Point Test2() => default; - - /// Returns a completed task from the third generated command. - /// A task that completes immediately. - [ReactiveCommand] - private static Task Test3Async() => Task.CompletedTask; - - /// Returns a point asynchronously from the fourth generated command. - /// A task that produces the configured point. - [ReactiveCommand] - private static Task Test4Async() => Task.FromResult(new Point(PointCoordinate, PointCoordinate)); - - /// Converts a command string argument into an integer result. - /// The value to convert. - /// The converted integer value. - [ReactiveCommand] - private static int Test5StringToInt(string str) => int.Parse(str); - - /// Writes the command argument to the console. - /// The value to write. - [ReactiveCommand] - private static void Test6ArgOnly(string str) => Console.Out.WriteLine($">>> {str}"); - - /// Returns a unit value through an observable command. - /// An observable that returns a unit value. - [ReactiveCommand] - private static IObservable Test7Observable() => Observable.Return(Unit.Default); - - /// Returns an offset command value through an observable. - /// The input value to offset. - /// An observable that returns the offset value. - [ReactiveCommand] - private static IObservable Test8Observable(int i) => Observable.Return(i + ObservableCommandOffset); - - /// Delays until cancellation is requested by the generated command. - /// The token that cancels the delay. - /// A task that represents the cancellable delay. - [ReactiveCommand] - private static Task Test9Async(CancellationToken ct) => Task.Delay(CancellableCommandDelayMilliseconds, ct); - - /// Returns a point based on the command argument. - /// The width and height of the point. - /// The cancellation token accepted by the command. - /// A task that returns the requested point. - [ReactiveCommand] - private static Task Test10Async(int size, CancellationToken ct) => Task.FromResult(new Point(size, size)); - - /// Creates and initializes the singleton after its constructor has completed. - /// The initialized command sample. - private static TestViewModel CreateInitializedInstance() - { - var instance = new TestViewModel(); - instance.InitializeCommandCoverage(); - return instance; - } - - /// Schedules asynchronous disposal of the cancellable command subscription. - /// The command subscription to dispose after the observation delay. - private static void ScheduleCancellation(IDisposable? subscription) - { - if (subscription is null) - { - return; - } - - _ = DisposeAfterDelayAsync(subscription); - } - - /// Disposes a subscription after allowing the command to run briefly. - /// The subscription to dispose. - /// A task that represents the delayed disposal. - private static async Task DisposeAfterDelayAsync(IDisposable subscription) - { - await Task.Delay(CancellationObservationDelayMilliseconds).ConfigureAwait(false); - subscription.Dispose(); - } - - /// Exercises every command shape generated for the MAUI sample. - private void InitializeCommandCoverage() - { - WriteGeneratedCommands(); - ExecuteInitialCommands(); - InitializeObservableProperty(); - ExecuteRemainingCommands(); - } - - /// Writes the generated commands so their creation is visible in the sample output. - private void WriteGeneratedCommands() - { - Console.Out.WriteLine(Test1Command); - Console.Out.WriteLine(Test2Command); - Console.Out.WriteLine(Test3Command); - Console.Out.WriteLine(Test4Command); - Console.Out.WriteLine(Test5StringToIntCommand); - Console.Out.WriteLine(Test6ArgOnlyCommand); - Console.Out.WriteLine(Test7ObservableCommand); - Console.Out.WriteLine(Test8ObservableCommand); - Console.Out.WriteLine(Test9Command); - Console.Out.WriteLine(Test10Command); - } - - /// Executes the generated commands that do not require cancellation. - private void ExecuteInitialCommands() - { - _ = Test1Command?.Execute().Subscribe(); - _ = Test2Command?.Execute().Subscribe(static result => Console.Out.WriteLine(result)); - _ = Test3Command?.Execute().Subscribe(); - _ = Test4Command?.Execute().Subscribe(static result => Console.Out.WriteLine(result)); - _ = Test5StringToIntCommand?.Execute("100").Subscribe(Console.Out.WriteLine); - _ = Test6ArgOnlyCommand?.Execute("Hello World").Subscribe(); - _ = Test7ObservableCommand?.Execute().Subscribe(); - } - - /// Initializes and exercises the observable-as-property sample. - private void InitializeObservableProperty() - { - _test2PropertyHelper = Test8ObservableCommand!.ToProperty(this, static viewModel => viewModel.Test2Property); - _ = Test8ObservableCommand.Execute(ObservableCommandArgument).Subscribe(Console.Out.WriteLine); - Console.Out.WriteLine($"Test2Property Value: {Test2Property}"); - } - - /// Executes the cancellable and argument-taking generated commands. - private void ExecuteRemainingCommands() - { - _ = Test9Command?.ThrownExceptions.Subscribe(Console.Out.WriteLine); - ScheduleCancellation(Test9Command?.Execute().Subscribe()); - _ = Test10Command?.Execute(PointCommandArgument).Subscribe(static result => Console.Out.WriteLine(result)); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested1/Class1.cs b/src/ReactiveUI.SourceGenerators.Execute.Nested1/Class1.cs deleted file mode 100644 index 317cf911..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested1/Class1.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Execute.Nested1; - -/// Provides the first nested reactive-property sample. -[ExcludeFromCodeCoverage] -public partial class Class1 : ReactiveObject -{ - /// Stores the first generated property value. - [Reactive] - private string? _property1; -} diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested1/ReactiveUI.SourceGenerators.Execute.Nested1.csproj b/src/ReactiveUI.SourceGenerators.Execute.Nested1/ReactiveUI.SourceGenerators.Execute.Nested1.csproj deleted file mode 100644 index ae99e92d..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested1/ReactiveUI.SourceGenerators.Execute.Nested1.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net8.0 - enable - enable - false - 13.0 - true - - - - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested2/Class1.cs b/src/ReactiveUI.SourceGenerators.Execute.Nested2/Class1.cs deleted file mode 100644 index 8209cd1f..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested2/Class1.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Execute.Nested2; - -/// Provides the second nested reactive-property sample. -[ExcludeFromCodeCoverage] -public partial class Class1 : ReactiveObject -{ - /// Stores the second generated property value. - [Reactive] - private string? _property1; -} diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested2/ReactiveUI.SourceGenerators.Execute.Nested2.csproj b/src/ReactiveUI.SourceGenerators.Execute.Nested2/ReactiveUI.SourceGenerators.Execute.Nested2.csproj deleted file mode 100644 index 6bf4cc8d..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested2/ReactiveUI.SourceGenerators.Execute.Nested2.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - net8.0 - enable - enable - false - 13.0 - true - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested3/Class1.cs b/src/ReactiveUI.SourceGenerators.Execute.Nested3/Class1.cs deleted file mode 100644 index 81d185bf..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested3/Class1.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Execute.Nested3; - -/// Provides the third nested reactive-command sample. -[ExcludeFromCodeCoverage] -public partial class Class1 : ReactiveObject -{ - /// Stores the third generated property value. - [Reactive] - private string? _property1; - - /// Initializes a new instance of the class. - public Class1() - { - _ = SetPropertyCommand.Execute(new Nested1.Class1 { Property1 = "Initial Value" }).Subscribe(new CommandObserver()); - } - - /// Copies the input object to the corresponding second nested object. - /// The object to copy. - /// The copied object, or when the input is null. - [ReactiveCommand] - private static SGReactiveUI.SourceGenerators.Execute.Nested2.Class1? SetProperty(Nested1.Class1? class1) => class1 is null ? null : new() { Property1 = class1.Property1 }; - - /// Observes results emitted by the generated command. - private sealed class CommandObserver : IObserver - { - /// Handles successful command completion. - public void OnCompleted() - { - } - - /// Propagates an error emitted by the generated command. - /// The error to propagate. - public void OnError(Exception error) => throw error; - - /// Handles an object emitted by the generated command. - /// The emitted object. - public void OnNext(SGReactiveUI.SourceGenerators.Execute.Nested2.Class1? value) - { - } - } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested3/Nested4/Class1.cs b/src/ReactiveUI.SourceGenerators.Execute.Nested3/Nested4/Class1.cs deleted file mode 100644 index 0d588d82..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested3/Nested4/Class1.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Execute.Nested4; - -/// Provides the fourth nested reactive-property sample. -public partial class Class1 : ReactiveObject -{ - /// Stores the fourth generated property value. - [Reactive] - private string? _property1; -} diff --git a/src/ReactiveUI.SourceGenerators.Execute.Nested3/ReactiveUI.SourceGenerators.Execute.Nested3.csproj b/src/ReactiveUI.SourceGenerators.Execute.Nested3/ReactiveUI.SourceGenerators.Execute.Nested3.csproj deleted file mode 100644 index dcb7ea04..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute.Nested3/ReactiveUI.SourceGenerators.Execute.Nested3.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - net8.0 - enable - enable - false - 13.0 - true - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Execute/Program.cs b/src/ReactiveUI.SourceGenerators.Execute/Program.cs deleted file mode 100644 index 17caea0c..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using ReactiveUI; -using Splat; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides the application entry point. -[ExcludeFromCodeCoverage] -public static class Program -{ - /// Defines the entry point of the application. - [System.STAThread] - public static void Main() - { - // ReactiveUI.Binding's view locator registers every IViewFor view at compile time. Without it, register the - // views with Splat yourself. - AppLocator.CurrentMutable.Register>(static () => new TestViewWinForms()); - AppLocator.CurrentMutable.Register>>(static () => new TestViewWpf2()); - Application.Run(new TestViewWinForms()); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/ReactiveUI.SourceGenerators.Execute.csproj b/src/ReactiveUI.SourceGenerators.Execute/ReactiveUI.SourceGenerators.Execute.csproj deleted file mode 100644 index 7efd48bf..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/ReactiveUI.SourceGenerators.Execute.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - Exe - net10.0-windows - enable - true - true - enable - false - preview - - $(NoWarn);CA1812;SST1449 - true - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI - - - - - - - - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.Initialization.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.Initialization.cs deleted file mode 100644 index 554e7b47..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.Initialization.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Reactive.Linq; -using DynamicData; -using ReactiveUI.Reactive; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Contains initialization and sample execution helpers for . -public partial class TestViewModel -{ - /// Copies the input nested object to the corresponding output nested object. - /// The nested object to copy. - /// The copied nested object, or when the input is null. - [ReactiveCommand] - private static Execute.Nested2.Class1? SetProperty(Execute.Nested1.Class1? class1) => - class1 is null ? null : new() { Property1 = class1.Property1 }; - - /// Creates the helper that projects the test command output. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateTest2PropertyHelper() => - Test8ObservableCommand!.ToProperty(this, x => x.Test2Property, initialValue: Test2InitialValue); - - /// Creates the helper that projects the activated reactive property. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateTest11PropertyHelper() => - this.WhenAnyValue(x => x.Test12Property).ToProperty(this, x => x.Test11Property, initialValue: Test11InitialValue); - - /// Creates the helper that projects the protected observable property. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateObservableAsPropertyTest3PropertyHelper() => - this.WhenAnyValue(x => x.Test13Property).ToProperty(this, x => x.ObservableAsPropertyTest3Property); - - /// Creates the helper that projects the partial observable property. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateObservableAsPropertyFromPropertyHelper() => - _fromPartialTestSubject.ToProperty(this, x => x.ObservableAsPropertyFromProperty, initialValue: FromPropertyInitialValue); - - /// Creates the helper that projects the active PLC identifier. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreatePlcActiveHelper() => - this.WhenAnyValue(x => x.PartialRequiredPropertyTest).ToProperty(this, nameof(PLCActive), initialValue: "Not Connected"); - - /// Creates the helper that projects the PLC status message. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreatePlcStatusHelper() => - this.WhenAnyValue(x => x.PLCActive).Select(static x => x ?? string.Empty).ToProperty(this, nameof(PLCStatus), initialValue: string.Empty); - - /// Creates the helper that projects the PLC port. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreatePlcPortHelper() => - this.WhenAnyValue(x => x.Test1Property).ToProperty(this, nameof(PLCPort), initialValue: PlcInitialPort); - - /// Creates the helper that projects the PLC instance. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreatePlcInstanceHelper() => - this.WhenAnyValue(x => x.PlcInstanceCore).ToProperty(this, nameof(InstanceOfPLC), initialValue: new()); - - /// Creates the helper that follows the non-null reference type observable. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateReferenceTypeHelper() => - ReferenceTypeObservable.ToProperty(this, nameof(ReferenceTypeObservableProperty), initialValue: new()); - - /// Creates the helper that follows the nullable reference type observable. - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateNullableReferenceTypeHelper() => - NullableReferenceTypeObservable.ToProperty(this, nameof(NullableReferenceTypeObservableProperty)); - - /// Creates the helper that follows . - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateObservableAsPropertyTest2PropertyHelper() => - ObservableAsPropertyTest2.ToProperty(this, nameof(ObservableAsPropertyTest2Property), initialValue: ObservableAsPropertyInitialValue); - - /// Creates the helper that follows . - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateMyReadOnlyPropertyHelper() => - ObservableAsPropertyTest().ToProperty(this, nameof(MyReadOnlyProperty), initialValue: NegativeInitialReadOnlyValue); - - /// Creates the helper that follows . - /// The initialized observable property helper. - private ObservableAsPropertyHelper CreateMyReadOnlyNonNullPropertyHelper() => - ObservableAsPropertyTestNonNull().ToProperty(this, nameof(MyReadOnlyNonNullProperty), initialValue: NegativeNonNullReadOnlyValue); - - /// Registers the lifecycle activation subscriptions. - private void RegisterActivation() => - this.WhenActivated(disposables => - { - Console.Out.WriteLine("Activated"); - _test11PropertyHelper.Dispose(); - _test11PropertyHelper = CreateTest11PropertyHelper(); - disposables(_test11PropertyHelper); - disposables(GetDataCommand.Do(static _ => Console.Out.WriteLine("GetDataCommand Executed")).Subscribe()); - disposables(GetDataCommand.Execute().Subscribe()); - }); - - /// Initializes observable property values before sample commands execute. - private void InitializeObservableProperties() - { - Console.Out.WriteLine("MyReadOnlyProperty before init"); - Console.Out.WriteLine(MyReadOnlyProperty); - Console.Out.WriteLine("MyReadOnlyNonNullProperty before init"); - Console.Out.WriteLine(MyReadOnlyNonNullProperty); - Console.Out.WriteLine(ObservableAsPropertyTest2Property); - Console.Out.WriteLine(ReferenceTypeObservableProperty); - Console.Out.WriteLine(NullableReferenceTypeObservableProperty); - } - - /// Exercises the initial generated command set. - private void ExerciseInitialCommands() - { - Console.Out.WriteLine(Test1Command); - Console.Out.WriteLine(Test2Command); - Console.Out.WriteLine(Test3Command); - Console.Out.WriteLine(Test4Command); - Console.Out.WriteLine(Test5StringToIntCommand); - Console.Out.WriteLine(Test6ArgOnlyCommand); - Console.Out.WriteLine(Test7ObservableCommand); - Console.Out.WriteLine(Test8ObservableCommand); - Console.Out.WriteLine(Test9Command); - Console.Out.WriteLine(Test10Command); - Test1Command?.Execute().Subscribe(); - Test2Command?.Execute().Subscribe(static r => Console.Out.WriteLine(r)); - Test3Command?.Execute().Subscribe(); - Test4Command?.Execute().Subscribe(static r => Console.Out.WriteLine(r)); - Test5StringToIntCommand?.Execute("100").Subscribe(Console.Out.WriteLine); - Test6ArgOnlyCommand?.Execute("Hello World").Subscribe(); - Test7ObservableCommand?.Execute().Subscribe(); - Console.Out.WriteLine($"Test2Property default Value: {Test2Property}"); - Test8ObservableCommand?.Execute(CommandArgumentValue).Subscribe(static d => Console.Out.WriteLine(d)); - Console.Out.WriteLine($"Test2Property Value: {Test2Property}"); - Console.Out.WriteLine(ObservableAsPropertyTest2Property); - } - - /// Exercises the nullable and non-null observable property samples. - private void ExerciseReadOnlyProperties() - { - Console.Out.WriteLine("MyReadOnlyProperty After Init"); - _testSubject.OnNext(NegativeUpdatedReadOnlyValue); - Console.Out.WriteLine(MyReadOnlyProperty); - _testSubject.OnNext(FirstObservedDoubleValue); - Console.Out.WriteLine(MyReadOnlyProperty); - _testSubject.OnNext(null); - Console.Out.WriteLine(MyReadOnlyProperty); - Console.Out.WriteLine("MyReadOnlyNonNullProperty After Init"); - _testNonNullSubject.OnNext(NegativeUpdatedReadOnlyValue); - Console.Out.WriteLine(MyReadOnlyNonNullProperty); - _testNonNullSubject.OnNext(SecondObservedDoubleValue); - Console.Out.WriteLine(MyReadOnlyNonNullProperty); - _testNonNullSubject.OnNext(default); - Console.Out.WriteLine(Test13Property); - Console.Out.WriteLine(MyReadOnlyNonNullProperty); - } - - /// Exercises the remaining commands and observable property updates. - private void ExerciseRemainingCommands() - { - Test9Command?.ThrownExceptions.Subscribe(Console.Out.WriteLine); - var cancel = Test9Command?.Execute().Subscribe(); - cancel?.Dispose(); - Test10Command?.Execute(CommandResultValue).Subscribe(static r => Console.Out.WriteLine(r)); - TestPrivateCanExecuteCommand?.Execute().Subscribe(); - Console.Out.WriteLine($"Observable unset, value should be 10, value is : {ObservableAsPropertyFromProperty}"); - _fromPartialTestSubject.OnNext(ObservableUpdatedValue); - Console.Out.WriteLine($"Observable updated, value should be 11, value is : {ObservableAsPropertyFromProperty}"); - _ = Console.ReadLine(); - } - - /// Registers the subscription that maintains the visible people collection. - private void RegisterPeopleSubscription() => - _ = this.WhenAnyValue(vm => vm.People) - .Subscribe(people => people - .AsObservableChangeSet() - .AutoRefresh(x => x.Deleted) - .Filter(static x => !x.Deleted) - .Bind(out _visiblePeople) - .Subscribe()); -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.cs deleted file mode 100644 index 566a4f06..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel.cs +++ /dev/null @@ -1,482 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Collections.ObjectModel; -using System.Diagnostics.CodeAnalysis; -using System.Reactive; -using System.Reactive.Concurrency; -using System.Reactive.Linq; -using System.Reactive.Subjects; -using System.Runtime.Serialization; -using System.Text.Json.Serialization; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides a comprehensive source-generator execution sample. -/// -/// -/// -/// -[DataContract] -public partial class TestViewModel : ReactiveObject, IActivatableViewModel, IDisposable -{ - /// Represents the initial nullable read-only value. - private const double NegativeInitialReadOnlyValue = -1.0D; - - /// Represents the initial non-null read-only value. - private const double NegativeNonNullReadOnlyValue = -5.0D; - - /// Represents the updated read-only value. - private const double NegativeUpdatedReadOnlyValue = -2.0D; - - /// Represents the first observed double value. - private const double FirstObservedDoubleValue = 10.0D; - - /// Represents the second observed double value. - private const double SecondObservedDoubleValue = 11.0D; - - /// Represents the initial observable-as-property value. - private const int ObservableAsPropertyInitialValue = 11_223_344; - - /// Represents the argument passed to the sample command. - private const int CommandArgumentValue = 100; - - /// Represents the expected sample command result. - private const int CommandResultValue = 200; - - /// Represents the value published after the observable updates. - private const int ObservableUpdatedValue = 11; - - /// Represents the default observable value. - private const int DefaultObservableValue = 9; - - /// Represents the offset applied by the observable command. - private const double ObservableCommandOffset = 10.0D; - - /// Represents the cancellation delay in milliseconds. - private const int CancellationDelayMilliseconds = 2_000; - - /// Represents the initial value of . - private const double Test2InitialValue = 1.1D; - - /// Represents the initial value of and . - private const double Test11InitialValue = 11.1D; - - /// Represents the initial value of . - private const int PlcInitialPort = 9000; - - /// Represents the initial value of . - private const int FromPropertyInitialValue = 10; - - /// Provides the observable used to control the private command. - private readonly IObservable _observable = Observable.Return(true); - - /// Publishes nullable values for the observable-as-property example. - private readonly Subject _testSubject = new(); - - /// Publishes non-null values for the observable-as-property example. - private readonly Subject _testNonNullSubject = new(); - - /// Publishes values for the partial observable-as-property example. - private readonly Subject _fromPartialTestSubject = new(); - - /// Provides the scheduler used by generated reactive commands. - private readonly IScheduler _scheduler = RxSchedulers.MainThreadScheduler; - - // [ObservableAsProperty] moved to ReactiveUI.Binding. The read-only properties below are backed by - // ObservableAsPropertyHelper fields written by hand with ReactiveUI's ToProperty. On ReactiveUI.Binding, mark a - // partial property [ObservableAsProperty] and assign the generated _nameHelper field with ToProperty instead. - /// Backs . - private readonly ObservableAsPropertyHelper _test2PropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _observableAsPropertyTest3PropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _observableAsPropertyTest2PropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _observableAsPropertyFromPropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _plcActiveHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _plcStatusHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _plcPortHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _plcInstanceHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _referenceTypeObservablePropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _nullableReferenceTypeObservablePropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _myReadOnlyPropertyHelper; - - /// Backs . - private readonly ObservableAsPropertyHelper _myReadOnlyNonNullPropertyHelper; - - /// Backs ; replaced each time the view model activates. - private ObservableAsPropertyHelper _test11PropertyHelper; - - /// Stores the value follows. - [Reactive] - private double _test13Property = Test11InitialValue; - - /// Stores the value used by the reactive test property. - [property: Test(AParameter = "Test Input")] - [Reactive] - private double? _test12Property = 12.1D; - - /// Stores the protected reactive test property value. - [Reactive(SetModifier = AccessModifier.Protected)] - [property: JsonInclude] - [DataMember] - private int _test1Property; - - /// Tracks whether the instance has disposed its resources. - private bool _disposedValue; - - /// Stores the mutable string test value. - [Reactive] - private string _myStringProperty = "test"; - - /// Stores the nullable reactive name. - [property: JsonInclude] - [DataMember] - [Reactive(Inheritance = InheritanceModifier.Virtual, SetModifier = AccessModifier.Protected)] - private string? _name; - - /// Stores the required reactive value. - [Reactive(nameof(MyDoubleProperty), nameof(MyStringProperty), SetModifier = AccessModifier.Init, UseRequired = true)] - private string _mustBeSet; - - /// Stores the people included in the derived list example. - [Reactive] - private IEnumerable _people = [new Person()]; - - /// Stores the nullable double reactive value. - [Reactive] - private double? _myDoubleProperty; - - /// Stores the non-null double reactive value. - [Reactive] - private double _myDoubleNonNullProperty; - - /// Stores the PLC instance used by the reactive property example. - [Reactive] - private PLCInstance _plcInstanceCore = new(); - - /// Stores the derived observable collection of visible people. - [BindableDerivedList] - private ReadOnlyObservableCollection? _visiblePeople; - - /// Initializes a new instance of the class. - [SetsRequiredMembers] - public TestViewModel() - { - _ = new InternalTestViewModel { PublicRequiredPartialPropertyTest = true }; - MustBeSet = "Test"; - _test11PropertyHelper = CreateTest11PropertyHelper(); - _test2PropertyHelper = CreateTest2PropertyHelper(); - _observableAsPropertyTest3PropertyHelper = CreateObservableAsPropertyTest3PropertyHelper(); - _observableAsPropertyFromPropertyHelper = CreateObservableAsPropertyFromPropertyHelper(); - _plcActiveHelper = CreatePlcActiveHelper(); - _plcStatusHelper = CreatePlcStatusHelper(); - _plcPortHelper = CreatePlcPortHelper(); - _plcInstanceHelper = CreatePlcInstanceHelper(); - ReferenceTypeObservable = Observable.Return(new object()); - NullableReferenceTypeObservable = Observable.Return(null); - _referenceTypeObservablePropertyHelper = CreateReferenceTypeHelper(); - _nullableReferenceTypeObservablePropertyHelper = CreateNullableReferenceTypeHelper(); - _observableAsPropertyTest2PropertyHelper = CreateObservableAsPropertyTest2PropertyHelper(); - _myReadOnlyPropertyHelper = CreateMyReadOnlyPropertyHelper(); - _myReadOnlyNonNullPropertyHelper = CreateMyReadOnlyNonNullPropertyHelper(); - RegisterActivation(); - InitializeObservableProperties(); - ExerciseInitialCommands(); - ExerciseReadOnlyProperties(); - ExerciseRemainingCommands(); - RegisterPeopleSubscription(); - } - - /// Gets the instance. - /// - /// The instance. - /// - public static TestViewModel Instance { get; } = new(); - - /// Gets the test class oaph vm. - /// - /// The test class oaph vm. - /// - public TestClassOAPH_VM TestClassOAPH_VM { get; } = new(); - - /// - /// Gets or sets the partial property test. - /// - /// - /// The partial property test. - /// - [Reactive] - [field: JsonInclude] - [JsonPropertyName("test")] - public partial string? PartialPropertyTest { get; set; } - - /// - /// Gets or sets the partial property test. - /// - /// - /// The partial property test. - /// - [Reactive(UseRequired = true)] - public required partial string? PartialRequiredPropertyTest { get; set; } - - /// Gets the internal test property. Should not prompt to replace with INPC Reactive Property. - /// - /// The test property. - /// - [JsonInclude] - public string? TestInternalSetProperty { get; internal set; } = "Test"; - - /// Gets the test private set property. Should not prompt to replace with INPC Reactive Property. - /// - /// The test private set property. - /// - [JsonInclude] - public string? TestPrivateSetProperty { get; private set; } = "Test"; - - /// Gets or sets the test automatic property. - /// - /// The test automatic property. - /// - [JsonInclude] - public string? TestAutoProperty { get; set; } = "Test, should prompt to replace with INPC Reactive Property"; - - /// Gets the test read only property. - /// - /// The test read only property. - /// - public string? TestReadOnlyProperty { get; } = "Test, should not prompt to replace with INPC Reactive Property"; - - /// Gets or sets the reactive command test property. Should not prompt to replace with INPC Reactive Property. - /// - /// The reactive command test property. - /// - public ReactiveCommand? ReactiveCommandTestProperty { get; set; } - - /// Gets or sets the reactive property test property. Should not prompt to replace with INPC Reactive Property. - /// - /// The reactive property test property. - /// - public ReactiveProperty? ReactivePropertyTestProperty { get; set; } - - /// Gets the can execute test1. - /// - /// The can execute test1. - /// - public IObservable CanExecuteTest1 => ObservableAsPropertyTest2.Select(static x => x > 0); - - /// Gets the observable as property test2. - /// - /// The observable as property test2. - /// - public IObservable ObservableAsPropertyTest2 => Observable.Return(DefaultObservableValue); - - /// Gets the latest value produced. - [Test(AParameter = "Test Input")] - public int ObservableAsPropertyTest2Property => _observableAsPropertyTest2PropertyHelper.Value; - - /// Gets the latest value produced. - [JsonInclude] - public double? Test2Property => _test2PropertyHelper.Value; - - /// Gets the latest , following it while the view model is active. - public double? Test11Property => _test11PropertyHelper.Value; - - /// Gets the latest . - public double ObservableAsPropertyTest3Property => _observableAsPropertyTest3PropertyHelper.Value; - - /// Gets the latest value produced. - public double? MyReadOnlyProperty => _myReadOnlyPropertyHelper.Value; - - /// Gets the latest value produced. - public double MyReadOnlyNonNullProperty => _myReadOnlyNonNullPropertyHelper.Value; - - /// Gets the current active PLC identifier or name. - public string? PLCActive => _plcActiveHelper.Value; - - /// Gets the current PLC status message, initialized with an empty string. - public string PLCStatus => _plcStatusHelper.Value; - - /// Gets the TCP port number used to communicate with the PLC. - public int PLCPort => _plcPortHelper.Value; - - /// Gets the current instance of the PLC (Programmable Logic Controller) used by the application. - public PLCInstance InstanceOfPLC => _plcInstanceHelper.Value; - - /// Gets the Activator which will be used by the View when Activation/Deactivation occurs. - public ViewModelActivator Activator { get; } = new(); - - /// Gets the observable as property from property. - /// - /// The observable as property from property. - /// - public int ObservableAsPropertyFromProperty => _observableAsPropertyFromPropertyHelper.Value; - - /// - /// Gets or sets the value for internal use within the partial class or assembly. - /// - [Reactive] - internal partial int InternalPartialPropertyTest { get; set; } - - /// Gets the latest value produced. - private object ReferenceTypeObservableProperty => _referenceTypeObservablePropertyHelper.Value; - - /// Gets the latest value produced. - private object? NullableReferenceTypeObservableProperty => _nullableReferenceTypeObservablePropertyHelper.Value; - - /// Gets the observable used for the non-null reference type example. - private IObservable ReferenceTypeObservable { get; } - - /// Gets the observable used for the nullable reference type example. - private IObservable NullableReferenceTypeObservable { get; } - - /// Gets observables as property test. - /// - /// Observable of double. - /// - public IObservable ObservableAsPropertyTest() => _testSubject; - - /// Observables as property test non null. - /// Observable of double. - public IObservable ObservableAsPropertyTestNonNull() => _testNonNullSubject; - - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - public void Dispose() - { - // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method - Dispose(disposing: true); - GC.SuppressFinalize(this); - } - - /// Releases unmanaged and - optionally - managed resources. - /// true to release both managed and unmanaged resources; false to release only unmanaged resources. - protected virtual void Dispose(bool disposing) - { - if (_disposedValue) - { - return; - } - - if (disposing) - { - _testSubject.Dispose(); - _testNonNullSubject.Dispose(); - _fromPartialTestSubject.Dispose(); - _test2PropertyHelper.Dispose(); - _test11PropertyHelper.Dispose(); - _observableAsPropertyTest2PropertyHelper.Dispose(); - _observableAsPropertyTest3PropertyHelper.Dispose(); - _observableAsPropertyFromPropertyHelper.Dispose(); - _plcActiveHelper.Dispose(); - _plcStatusHelper.Dispose(); - _plcPortHelper.Dispose(); - _plcInstanceHelper.Dispose(); - _referenceTypeObservablePropertyHelper.Dispose(); - _nullableReferenceTypeObservablePropertyHelper.Dispose(); - _myReadOnlyPropertyHelper.Dispose(); - _myReadOnlyNonNullPropertyHelper.Dispose(); - } - - _disposedValue = true; - } - - /// Associates a sample result with this view-model instance. - /// The type of the sample result. - /// The result to return. - /// The supplied result. - private T UseInstance(T value) - { - GC.KeepAlive(this); - return value; - } - - /// Writes a sample command message while retaining the owning view model. - /// The message to write. - private void WriteSampleMessage(string message) - { - GC.KeepAlive(this); - Console.Out.WriteLine(message); - } - - /// Test1s this instance. - [ReactiveCommand(CanExecute = nameof(CanExecuteTest1))] - [property: JsonInclude] - [property: Test(AParameter = "Test Input")] - private void Test1() => WriteSampleMessage("Test1 Command Executed"); - - /// Test3s the asynchronous. - /// A representing the asynchronous operation. - [ReactiveCommand] - private Task Test3Async() => UseInstance(Task.Delay(0)); - - /// Test4s the asynchronous. - /// A representing the asynchronous operation. - [ReactiveCommand] - private Task Test4Async() => UseInstance(Task.FromResult(new Point(CommandArgumentValue, CommandArgumentValue))); - - /// Test5s the string to int. - /// The string. - /// int. - [ReactiveCommand] - private int Test5StringToInt(string str) => UseInstance(int.Parse(str)); - - /// Test6s the argument only. - /// The string. - [ReactiveCommand] - private void Test6ArgOnly(string str) => WriteSampleMessage($">>> {str}"); - - /// Test7s the observable. - /// An Observable of Unit. - [ReactiveCommand] - private IObservable Test7Observable() => UseInstance(Observable.Return(Unit.Default)); - - /// Test8s the observable. - /// The i. - /// An Observable of int. - [ReactiveCommand(AccessModifier = PropertyAccessModifier.Internal)] - private IObservable Test8Observable(int i) => UseInstance(Observable.Return(i + ObservableCommandOffset)); - - /// Executes the cancellable reactive command sample. - /// The cancellation token for the command. - /// A task that completes when the command finishes. - [ReactiveCommand] - private Task Test9Async(CancellationToken ct) => UseInstance(Task.Delay(CancellationDelayMilliseconds, ct)); - - /// Executes the parameterized cancellable reactive command sample. - /// The size of the generated point. - /// The cancellation token for the command. - /// A task that produces the generated point. - [ReactiveCommand] - private Task Test10Async(int size, CancellationToken ct) => UseInstance(Task.FromResult(new Point(size, size))); - - /// Executes the command with a private observable can-execute source. - [ReactiveCommand(CanExecute = nameof(_observable), OutputScheduler = nameof(_scheduler))] - private void TestPrivateCanExecute() => WriteSampleMessage("TestPrivateCanExecute"); - - /// Retrieves the empty data sequence used by the reactive command sample. - /// The cancellation token for the command. - /// A task that produces an empty data sequence. - [ReactiveCommand] - private Task GetData(CancellationToken ct) => - UseInstance(Task.FromResult(Array.Empty())); -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel{partTwo}.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewModel{partTwo}.cs deleted file mode 100644 index 9f2cbd67..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewModel{partTwo}.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics.CodeAnalysis; -using ReactiveUI.SourceGenerators; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides a secondary partial view-model command sample. -/// -[ExcludeFromCodeCoverage] -public partial class TestViewModel -{ - /// Returns the secondary generated command value. - /// The generated point. - [ReactiveCommand] - private static Point Test2() => default; -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewWinForms.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewWinForms.cs deleted file mode 100644 index 926aebf6..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewWinForms.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.ComponentModel; -using ReactiveUI; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides the Windows Forms test view. -/// -public partial class TestViewWinForms : Form, IViewFor -{ - /// Initializes a new instance of the class. - public TestViewWinForms() - { - InitializeComponent(); - ViewModel = TestViewModel.Instance; - _ = ViewModel.Activator.Activate(); - } - - /// - [Browsable(false)] - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public TestViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (TestViewModel?)value; } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf.cs deleted file mode 100644 index 0347099a..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Windows; -using ReactiveUI; -using Splat; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides the WPF test view. -public class TestViewWpf : Window, IViewFor -{ - /// Initializes a new instance of the class. - public TestViewWpf() - { - AppLocator.CurrentMutable.RegisterLazySingleton>(static () => new TestViewWpf()); - ViewModel = TestViewModel.Instance; - } - - /// Gets or sets the test property. - /// - /// The test property. - /// - public int TestProperty { get; set; } - - /// - public TestViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (TestViewModel?)value; } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf2.cs b/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf2.cs deleted file mode 100644 index 38133723..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestViewWpf2.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Windows; -using ReactiveUI; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides the generic WPF test view. -/// -public class TestViewWpf2 : Window, IViewFor> -{ - /// Initializes a new instance of the class. - public TestViewWpf2() => ViewModel = new(); - - /// - public TestViewModel2? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (TestViewModel2?)value; } -} diff --git a/src/ReactiveUI.SourceGenerators.Execute/TestWinFormsRCHost.cs b/src/ReactiveUI.SourceGenerators.Execute/TestWinFormsRCHost.cs deleted file mode 100644 index 421327a5..00000000 --- a/src/ReactiveUI.SourceGenerators.Execute/TestWinFormsRCHost.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators.WinForms; - -namespace SGReactiveUI.SourceGenerators.Test; - -/// Provides the routed Windows Forms host generation sample. -[RoutedControlHost(nameof(UserControl))] -public partial class TestWinFormsRCHost -{ - /// Gets a value indicating whether the routed host sample is available. - internal static bool IsSampleAvailable => true; -} diff --git a/src/ReactiveUI.SourceGenerators.Package.slnf b/src/ReactiveUI.SourceGenerators.Package.slnf new file mode 100644 index 00000000..535155aa --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Package.slnf @@ -0,0 +1,12 @@ +{ + "solution": { + "path": "ReactiveUI.SourceGenerators.slnx", + "projects": [ + "ReactiveUI.SourceGenerators\\ReactiveUI.SourceGenerators.csproj", + "ReactiveUI.SourceGenerators.Roslyn480\\ReactiveUI.SourceGenerators.Roslyn480.csproj", + "ReactiveUI.SourceGenerators.Roslyn4140\\ReactiveUI.SourceGenerators.Roslyn4140.csproj", + "ReactiveUI.SourceGenerators.Roslyn5000\\ReactiveUI.SourceGenerators.Roslyn5000.csproj", + "ReactiveUI.SourceGenerators.Analyzers.CodeFixes\\ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj" + ] + } +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/AnalyzerReleases.Shipped.md b/src/ReactiveUI.SourceGenerators.Roslyn/AnalyzerReleases.Shipped.md index a887dfd5..82a97121 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/AnalyzerReleases.Shipped.md +++ b/src/ReactiveUI.SourceGenerators.Roslyn/AnalyzerReleases.Shipped.md @@ -46,63 +46,3 @@ Rule ID | New Category | New Severity | Old Category | Old Severity | Notes --------|--------------|--------------|--------------|--------------|------- RXUISG0012 | ReactiveUI.SourceGenerators | Error | ReactiveUI.SourceGenerators.ObservableAsPropertyGenerator | Error | Reports an unresolved attribute forwarded by any generator RXUISG0013 | ReactiveUI.SourceGenerators | Error | ReactiveUI.SourceGenerators.ObservableAsPropertyGenerator | Error | Reports an invalid attribute expression forwarded by any generator - -## Rules -Shipped in ReactiveUI.SourceGenerators - -- RXUISG0001 - Unsupported C# Language Version -This rule checks if the project is using an unsupported C# language version. The supported versions are C# 12.0 and above. If the project is using an unsupported version, the rule will raise an error. - -- RXUISG0002 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has a Invalid ReactiveCommand method signature. - -- RXUISG0003 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has a Invalid ReactiveCommand.CanExecute member name. - -- RXUISG0004 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Multiple ReactiveCommand.CanExecute member name matches. - -- RXUISG0005 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has No valid ReactiveCommand.CanExecute member match. - -- RXUISG0006 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Invalid field or property targeted attribute type. - -- RXUISG0007 - ReactiveCommandGenerator -This rule checks if the `ReactiveCommand` has Invalid field or property targeted attribute expression. - -- RXUISG0008 - AsyncVoidReturningReactiveCommandMethodAnalyzer -This rule checks if the `ReactiveCommand` has Async void returning method annotated with ReactiveCommand. - -- RXUISG0009 - ReactiveGenerator -This rule checks if the `Reactive` has Name collision for generated property. - -- RXUISG0010 - ReactiveGenerator -This rule checks if the `Reactive` has Invalid property targeted attribute type. - -- RXUISG0011 - ReactiveGenerator -This rule checks if the `Reactive` has Invalid property targeted attribute expression. - -- RXUISG0012 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid property targeted attribute type. - -- RXUISG0013 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid property targeted attribute expression. - -- RXUISG0014 - ObservableAsPropertyGenerator -This rule checks if the `ObservableAsProperty` has Invalid generated property declaration. - -- RXUISG0015 - ReactiveGenerator -This rule checks if the `Reactive` attribute is being used correctly. If the `Reactive` has Invalid generated property declaration. - -- RXUISG0016 - PropertyToReactiveFieldCodeFixProvider -This rule checks if there are any Properties to change to Reactive Field, change to [Reactive] private type _fieldName;. - -- RXUISG0017 - ObservableAsPropertyFromObservableGenerator -This rule checks if the `ObservableAsProperty` has Invalid generated property declaration. - -- RXUISG0018 - ObservableAsPropertyFromObservableGenerator/ReactiveGenerator -This rule checks if the `ObservableAsProperty` or `Reactive` has Invalid class inheritance, must inherit from `ReactiveObject`. - -- RXUISG0019 - BindableDerivedListGenerator -- This rule checks if the `BindableDerivedList` has Invalid property inheritance type. diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/AttributeDefinitions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/AttributeDefinitions.cs index 8e02d253..8a77cc7d 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/AttributeDefinitions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/AttributeDefinitions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Helpers; @@ -23,6 +23,12 @@ internal static class AttributeDefinitions /// The metadata name of [Reactive]. public const string ReactiveAttributeType = "ReactiveUI.SourceGenerators.ReactiveAttribute"; + /// The metadata name of [IViewFor("...")]. + public const string IViewForAttributeType = "ReactiveUI.SourceGenerators.IViewForAttribute"; + + /// The metadata name of [IViewFor<T>]. + public const string IViewForGenericAttributeType = "ReactiveUI.SourceGenerators.IViewForAttribute`1"; + /// The metadata name of [ViewModelControlHost]. public const string ViewModelControlHostAttributeType = "ReactiveUI.SourceGenerators.WinForms.ViewModelControlHostAttribute"; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.Execute.cs deleted file mode 100644 index 957fab21..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.Execute.cs +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections.Immutable; -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.BindableDerivedList.Models; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; -using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; - -namespace ReactiveUI.SourceGenerators; - -/// Implements BindableDerivedList source generation. -public sealed partial class BindableDerivedListGenerator -{ - /// Gets the generator type name used in generated-code metadata. - internal static readonly string GeneratorName = typeof(BindableDerivedListGenerator).FullName!; - - /// Gets the generator assembly version used in generated-code metadata. - internal static readonly string GeneratorVersion = typeof(BindableDerivedListGenerator).Assembly.GetName().Version.ToString(); - - /// Represents the internal accessibility option. - private const int InternalAccessModifier = 2; - - /// Represents the private accessibility option. - private const int PrivateAccessModifier = 3; - - /// Represents the protected-internal accessibility option. - private const int ProtectedInternalAccessModifier = 4; - - /// Represents the private-protected accessibility option. - private const int PrivateProtectedAccessModifier = 5; - - /// The GeneratedCode attribute stamped on the generated properties, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); - - /// Creates metadata for a BindableDerivedList-annotated field. - /// The attribute syntax context for the field. - /// The cancellation token for the generator operation. - /// The field metadata and diagnostics, or when not applicable. - private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) - { - using var builder = ImmutableArrayBuilder.Rent(); - var symbol = context.TargetSymbol; - - var attributeData = context.Attributes[0]; - - if (symbol is not IFieldSymbol fieldSymbol) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - if (!fieldSymbol.Type.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("System.Collections.ObjectModel.ReadOnlyObservableCollection")) - { - builder.Add( - ReadOnlyObservableCollectionTypeRequiredError, - fieldSymbol, - fieldSymbol.ContainingType, - fieldSymbol.Name); - return new(default, builder.ToImmutable()); - } - - token.ThrowIfCancellationRequested(); - - return CreateResult(context, fieldSymbol, attributeData, builder, token); - } - - /// Creates metadata for a validated BindableDerivedList field. - /// The attribute syntax context for the field. - /// The validated field symbol. - /// The BindableDerivedList attribute data. - /// The diagnostics collected while processing the field. - /// The cancellation token for the generator operation. - /// The field metadata and diagnostics. - private static Result CreateResult( - in GeneratorAttributeSyntaxContext context, - IFieldSymbol fieldSymbol, - AttributeData attributeData, - ImmutableArrayBuilder builder, - CancellationToken token) - { - var typeNameWithNullabilityAnnotations = fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(); - - var fieldName = fieldSymbol.Name; - var propertyName = fieldSymbol.GetGeneratedPropertyName(); - - if (fieldName == propertyName) - { - builder.Add( - ReactivePropertyNameCollisionError, - fieldSymbol, - fieldSymbol.ContainingType, - fieldSymbol.Name); - return new(default, builder.ToImmutable()); - } - - token.ThrowIfCancellationRequested(); - - var accessModifier = GetAccessModifier(attributeData); - - token.ThrowIfCancellationRequested(); - - var (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor) = - GetNullabilityInfo(fieldSymbol, context.SemanticModel); - - token.ThrowIfCancellationRequested(); - var fieldDeclaration = (FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!; - - context.GetForwardedAttributes( - builder, - fieldSymbol, - fieldDeclaration.AttributeLists, - token, - out var forwardedAttributesString); - - token.ThrowIfCancellationRequested(); - - // Get the containing type info - var targetInfo = TargetInfo.From(fieldSymbol.ContainingType); - - token.ThrowIfCancellationRequested(); - - return new( - new( - targetInfo, - typeNameWithNullabilityAnnotations, - fieldName, - propertyName, - isReferenceTypeOrUnconstraindTypeParameter, - includeMemberNotNullOnSetAccessor, - forwardedAttributesString, - accessModifier), - builder.ToImmutable()); - } - - /// Gets the generated accessibility text from the attribute configuration. - /// The BindableDerivedList attribute data. - /// The generated accessibility text. - private static string GetAccessModifier(AttributeData attributeData) => - attributeData.GetNamedArgument("AccessModifier") switch - { - 1 => "protected", - InternalAccessModifier => "internal", - PrivateAccessModifier => "private", - ProtectedInternalAccessModifier => "protected internal", - PrivateProtectedAccessModifier => "private protected", - _ => "public", - }; - - /// Gets nullability metadata for a generated BindableDerivedList property. - /// The source field symbol. - /// The semantic model for the source field. - /// The reference-type and member-not-null metadata. - private static (bool IsReferenceType, bool IncludeMemberNotNull) GetNullabilityInfo( - IFieldSymbol fieldSymbol, - SemanticModel semanticModel) - { - fieldSymbol.GetNullabilityInfo( - semanticModel, - out var isReferenceTypeOrUnconstraindTypeParameter, - out var includeMemberNotNullOnSetAccessor); - return (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor); - } - - /// Generates the partial declaration holding one type's bindable derived list properties. - /// The properties the type declares, all sharing one . - /// The file's text. - private static string GenerateSource(EquatableArray properties) - { - var target = properties[0].TargetInfo; - var writer = SourceWriter.Rent() - .AutoGenerated() - .Using("System.Collections.ObjectModel") - .Using("ReactiveUI") - .BlankLine() - .DisableWarningsEnableNullable() - .BlankLine(); - - var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); - - // The GeneratedCode attribute has always been stamped once, ahead of the first property. - _ = writer.OpenPartialType(target).Line(GeneratedCodeAttribute); - for (var i = 0; i < properties.Count; i++) - { - WriteProperty(writer, properties[i]); - } - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes one read-only property exposing a bindable derived list field. - /// The writer, at the level of the type's members. - /// The property. - private static void WriteProperty(SourceWriter writer, BindableDerivedListInfo propertyInfo) - { - _ = writer.InheritDoc(propertyInfo.FieldName).ExcludeFromCodeCoverage(); - foreach (var attribute in propertyInfo.ForwardedAttributes.AsImmutableArray()) - { - _ = writer.Line(attribute); - } - - _ = writer.Append(propertyInfo.AccessModifier).Append(' ') - .Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ') - .Append(propertyInfo.PropertyName).Append(" => ").Append(propertyInfo.FieldName).EndStatement(); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.cs index ce248944..6eabd2fb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/BindableDerivedListGenerator.cs @@ -1,18 +1,45 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.BindableDerivedList.Models; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; +using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; namespace ReactiveUI.SourceGenerators; /// A source generator for generating BindableDerivedList properties. [Generator(LanguageNames.CSharp)] -public sealed partial class BindableDerivedListGenerator : IIncrementalGenerator +public sealed class BindableDerivedListGenerator : IIncrementalGenerator { + /// Gets the generator type name used in generated-code metadata. + internal static readonly string GeneratorName = typeof(BindableDerivedListGenerator).FullName!; + + /// Gets the generator assembly version used in generated-code metadata. + internal static readonly string GeneratorVersion = typeof(BindableDerivedListGenerator).Assembly.GetName().Version.ToString(); + + /// Represents the internal accessibility option. + private const int InternalAccessModifier = 2; + + /// Represents the private accessibility option. + private const int PrivateAccessModifier = 3; + + /// Represents the protected-internal accessibility option. + private const int ProtectedInternalAccessModifier = 4; + + /// Represents the private-protected accessibility option. + private const int PrivateProtectedAccessModifier = 5; + + /// The GeneratedCode attribute stamped on the generated properties, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -45,4 +72,179 @@ public void Initialize(IncrementalGeneratorInitializationContext context) context.RegisterSourceOutput(types, static (context, properties) => context.AddSource($"{properties[0].TargetInfo.FileHintName}.BindableDerivedList.g.cs", GenerateSource(properties))); } + + /// Creates metadata for a BindableDerivedList-annotated field. + /// The attribute syntax context for the field. + /// The cancellation token for the generator operation. + /// The field metadata and diagnostics, or when not applicable. + private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + using var builder = ArrayBuilder.Rent(); + var symbol = context.TargetSymbol; + + var attributeData = context.Attributes[0]; + + if (symbol is not IFieldSymbol fieldSymbol) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + if (!fieldSymbol.Type.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("System.Collections.ObjectModel.ReadOnlyObservableCollection")) + { + builder.Add( + ReadOnlyObservableCollectionTypeRequiredError, + fieldSymbol, + fieldSymbol.ContainingType, + fieldSymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + token.ThrowIfCancellationRequested(); + + return CreateResult(context, fieldSymbol, attributeData, builder, token); + } + + /// Creates metadata for a validated BindableDerivedList field. + /// The attribute syntax context for the field. + /// The validated field symbol. + /// The BindableDerivedList attribute data. + /// The diagnostics collected while processing the field. + /// The cancellation token for the generator operation. + /// The field metadata and diagnostics. + private static Result CreateResult( + in GeneratorAttributeSyntaxContext context, + IFieldSymbol fieldSymbol, + AttributeData attributeData, + ArrayBuilder builder, + CancellationToken token) + { + var typeNameWithNullabilityAnnotations = fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(); + + var fieldName = fieldSymbol.Name; + var propertyName = fieldSymbol.GetGeneratedPropertyName(); + + if (fieldName == propertyName) + { + builder.Add( + ReactivePropertyNameCollisionError, + fieldSymbol, + fieldSymbol.ContainingType, + fieldSymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + token.ThrowIfCancellationRequested(); + + var accessModifier = GetAccessModifier(attributeData); + + token.ThrowIfCancellationRequested(); + + var (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor) = + GetNullabilityInfo(fieldSymbol, context.SemanticModel); + + token.ThrowIfCancellationRequested(); + var fieldDeclaration = (FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!; + + context.GetForwardedAttributes( + builder, + fieldSymbol, + fieldDeclaration.AttributeLists, + token, + out var forwardedAttributesString); + + token.ThrowIfCancellationRequested(); + + // Get the containing type info + var targetInfo = TargetInfo.From(fieldSymbol.ContainingType); + + token.ThrowIfCancellationRequested(); + + return new( + new( + targetInfo, + typeNameWithNullabilityAnnotations, + fieldName, + propertyName, + isReferenceTypeOrUnconstraindTypeParameter, + includeMemberNotNullOnSetAccessor, + forwardedAttributesString, + accessModifier), + builder.ToEquatableArray()); + } + + /// Gets the generated accessibility text from the attribute configuration. + /// The BindableDerivedList attribute data. + /// The generated accessibility text. + private static string GetAccessModifier(AttributeData attributeData) => + attributeData.GetNamedArgument("AccessModifier") switch + { + 1 => "protected", + InternalAccessModifier => "internal", + PrivateAccessModifier => "private", + ProtectedInternalAccessModifier => "protected internal", + PrivateProtectedAccessModifier => "private protected", + _ => "public", + }; + + /// Gets nullability metadata for a generated BindableDerivedList property. + /// The source field symbol. + /// The semantic model for the source field. + /// The reference-type and member-not-null metadata. + private static (bool IsReferenceType, bool IncludeMemberNotNull) GetNullabilityInfo( + IFieldSymbol fieldSymbol, + SemanticModel semanticModel) + { + fieldSymbol.GetNullabilityInfo( + semanticModel, + out var isReferenceTypeOrUnconstraindTypeParameter, + out var includeMemberNotNullOnSetAccessor); + return (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor); + } + + /// Generates the partial declaration holding one type's bindable derived list properties. + /// The properties the type declares, all sharing one . + /// The file's text. + private static string GenerateSource(EquatableArray properties) + { + var target = properties[0].TargetInfo; + var writer = SourceWriter.Rent() + .AutoGenerated() + .Using("System.Collections.ObjectModel") + .Using("ReactiveUI") + .BlankLine() + .DisableWarningsEnableNullable() + .BlankLine(); + + var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); + + // The GeneratedCode attribute has always been stamped once, ahead of the first property. + _ = writer.OpenPartialType(target).Line(GeneratedCodeAttribute); + for (var i = 0; i < properties.Length; i++) + { + WriteProperty(writer, properties[i]); + } + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes one read-only property exposing a bindable derived list field. + /// The writer, at the level of the type's members. + /// The property. + private static void WriteProperty(SourceWriter writer, BindableDerivedListInfo propertyInfo) + { + _ = writer.InheritDoc(propertyInfo.FieldName).ExcludeFromCodeCoverage(); + foreach (var attribute in propertyInfo.ForwardedAttributes.AsSpan()) + { + _ = writer.Line(attribute); + } + + _ = writer.Append(propertyInfo.AccessModifier).Append(' ') + .Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ') + .Append(propertyInfo.PropertyName).Append(" => ").Append(propertyInfo.FieldName).EndStatement(); + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/Models/BindableDerivedListInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/Models/BindableDerivedListInfo.cs index 15e49dca..4abd5786 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/Models/BindableDerivedListInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/BindableDerivedList/Models/BindableDerivedListInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators.Helpers; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/ControlHostExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/ControlHostExtensions.cs index 060a7bfc..6c2a0735 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/ControlHostExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/ControlHostExtensions.cs @@ -1,7 +1,8 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System.Runtime.CompilerServices; using ReactiveUI.SourceGenerators.Models; namespace ReactiveUI.SourceGenerators.CodeGeneration; @@ -51,24 +52,66 @@ internal SourceWriter AppendRoutedViewModel(ReactiveUiIntegration integration) = .Append(", static router => router.CurrentViewModel, static router => router.CurrentViewModel))") : writer.Append("new PropertyObservable(this, nameof(Router), () => Router?.CurrentViewModel)"); - /// Writes ObservedProperty.Create for a host property, with static lambdas that do not allocate. - /// The integration naming the flavour ObservedProperty is written from. - /// The observed property's name. - /// The writer, after the call. - private SourceWriter AppendObservedPropertyCreate(ReactiveUiIntegration integration, string property) => - writer.Append(integration.ObservedProperty).Append(".Create(this, static x => x.").Append(property) - .Append(", static x => x.").Append(property).Append(')'); - } + /// Writes the nested observable that follows one of the host's own properties. + /// + /// Each change of the property switches to the observable the selector returns, as WhenAnyObservable does; + /// a value is followed by selecting a ReturnObservable of it, as WhenAnyValue does. + /// + internal void WritePropertyObservable() => + _ = writer.Lines(""" + private sealed class PropertyObservable(INotifyPropertyChanged source, string propertyName, Func?> select) : IObservable + { + public IDisposable Subscribe(IObserver observer) => new Subscription(source, propertyName, select, observer); + + private sealed class Subscription : IDisposable + { + private readonly INotifyPropertyChanged _source; + private readonly string _propertyName; + private readonly Func?> _select; + private readonly IObserver _observer; + private readonly SubscriptionSlot _inner = new(); + + public Subscription(INotifyPropertyChanged source, string propertyName, Func?> select, IObserver observer) + { + _source = source; + _propertyName = propertyName; + _select = select; + _observer = observer; + _source.PropertyChanged += OnPropertyChanged; + Switch(); + } + + public void Dispose() + { + _source.PropertyChanged -= OnPropertyChanged; + _inner.Dispose(); + } + + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e) + { + if (string.IsNullOrEmpty(e.PropertyName) || e.PropertyName == _propertyName) + { + Switch(); + } + } + + private void Switch() + { + var inner = _select(); + _inner.Set(inner is null ? EmptyDisposable.Instance : inner.Subscribe(new ValueObserver(_observer.OnNext, _observer.OnError))); + } + } + } + """); - /// Writes the host's change events and its IReactiveObject implementation. - /// The writer, at the level of the host's members. - /// - /// ReactiveUI raises the classic events of a hand-written IReactiveObject only once it has called - /// SubscribePropertyChangedEvents and SubscribePropertyChangingEvents, so the first handler added - /// makes that call, as ReactiveObject does. - /// - internal static void WritePropertyChangeEvents(SourceWriter writer) => - _ = writer.Lines(""" + /// Writes the host's change events and its IReactiveObject implementation. + /// + /// ReactiveUI raises the classic events of a hand-written IReactiveObject only once it has called + /// SubscribePropertyChangedEvents and SubscribePropertyChangingEvents, so the first handler added + /// makes that call, as ReactiveObject does. + /// + internal void WritePropertyChangeEvents() => + _ = writer.Lines(""" private bool _propertyChangingEventsSubscribed; private bool _propertyChangedEventsSubscribed; @@ -115,56 +158,13 @@ public event PropertyChangedEventHandler? PropertyChanged void IReactiveObject.RaisePropertyChanged(PropertyChangedEventArgs args) => PropertyChangedHandler?.Invoke(this, args); """); - /// Writes the nested observable that follows one of the host's own properties. - /// The writer, at the level of the host's members. - /// - /// Each change of the property switches to the observable the selector returns, as WhenAnyObservable does; - /// a value is followed by selecting a ReturnObservable of it, as WhenAnyValue does. - /// - internal static void WritePropertyObservable(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class PropertyObservable(INotifyPropertyChanged source, string propertyName, Func?> select) : IObservable - { - public IDisposable Subscribe(IObserver observer) => new Subscription(source, propertyName, select, observer); - - private sealed class Subscription : IDisposable - { - private readonly INotifyPropertyChanged _source; - private readonly string _propertyName; - private readonly Func?> _select; - private readonly IObserver _observer; - private readonly SubscriptionSlot _inner = new(); - - public Subscription(INotifyPropertyChanged source, string propertyName, Func?> select, IObserver observer) - { - _source = source; - _propertyName = propertyName; - _select = select; - _observer = observer; - _source.PropertyChanged += OnPropertyChanged; - Switch(); - } - - public void Dispose() - { - _source.PropertyChanged -= OnPropertyChanged; - _inner.Dispose(); - } - - private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e) - { - if (string.IsNullOrEmpty(e.PropertyName) || e.PropertyName == _propertyName) - { - Switch(); - } - } - - private void Switch() - { - var inner = _select(); - _inner.Set(inner is null ? EmptyDisposable.Instance : inner.Subscribe(new ValueObserver(_observer.OnNext, _observer.OnError))); - } - } - } - """); + /// Writes ObservedProperty.Create for a host property, with static lambdas that do not allocate. + /// The integration naming the flavour ObservedProperty is written from. + /// The observed property's name. + /// The writer, after the call. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private SourceWriter AppendObservedPropertyCreate(ReactiveUiIntegration integration, string property) => + writer.Append(integration.ObservedProperty).Append(".Create(this, static x => x.").Append(property) + .Append(", static x => x.").Append(property).Append(')'); + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriterExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriterExtensions.cs index 4c635c93..85826df8 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriterExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriterExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Runtime.CompilerServices; @@ -141,10 +141,15 @@ internal SourceWriter CloseBlocks(int count) internal SourceWriter ExcludeFromCodeCoverage() => writer.Line(ExcludeFromCodeCoverageAttribute); } - /// Builds the GeneratedCode attribute line a generator stamps on its members. - /// The generator's full type name. - /// The generator assembly's version. - /// The attribute, built once per generator rather than once per member. - internal static string GeneratedCodeAttribute(string generatorName, string generatorVersion) => - $"[global::System.CodeDom.Compiler.GeneratedCode(\"{generatorName}\", \"{generatorVersion}\")]"; + /// Extension members for string. + /// + extension(string generatorName) + { + + /// Builds the GeneratedCode attribute line a generator stamps on its members. + /// The generator assembly's version. + /// The attribute, built once per generator rather than once per member. + internal string GeneratedCodeAttribute(string generatorVersion) => + $"[global::System.CodeDom.Compiler.GeneratedCode(\"{generatorName}\", \"{generatorVersion}\")]"; + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/AttributeDataExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/AttributeDataExtensions.cs index 59e09cc9..2e404059 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/AttributeDataExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/AttributeDataExtensions.cs @@ -1,10 +1,9 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; using System.Collections.Generic; -using System.Collections.Immutable; using System.Globalization; using System.Linq; using System.Threading; @@ -123,16 +122,16 @@ internal void GatherForwardedAttributesFromClass( SemanticModel semanticModel, ClassDeclarationSyntax classDeclaration, CancellationToken token, - out ImmutableArray classAttributesInfo) + out EquatableArray classAttributesInfo) { - using var classAttributesInfoBuilder = ImmutableArrayBuilder.Rent(); + using var classAttributesInfoBuilder = ArrayBuilder.Rent(); static void GatherForwardedAttributes( AttributeData attributeData, SemanticModel semanticModel, ClassDeclarationSyntax classDeclaration, CancellationToken token, - ImmutableArrayBuilder classAttributesInfo) + ArrayBuilder classAttributesInfo) { // Gather explicit forwarded attributes info foreach (var attributeList in classDeclaration.AttributeLists) @@ -167,7 +166,7 @@ static void GatherForwardedAttributes( // If the method is not a partial definition/implementation, just gather attributes from the method with no modifications GatherForwardedAttributes(attributeData, semanticModel, classDeclaration, token, classAttributesInfoBuilder); - classAttributesInfo = classAttributesInfoBuilder.ToImmutable(); + classAttributesInfo = classAttributesInfoBuilder.ToEquatableArray(); } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/CompilationExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/CompilationExtensions.cs index 85ee805b..5d6545ac 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/CompilationExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/CompilationExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ContextExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ContextExtensions.cs index aa408cd6..708947fd 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ContextExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ContextExtensions.cs @@ -1,8 +1,9 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; +using System.Runtime.CompilerServices; using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -47,16 +48,16 @@ internal ReactiveUiIntegration GetReactiveUiIntegration() => /// The cancellation token. /// The generated attribute source text. internal void GetForwardedAttributes( - ImmutableArrayBuilder builder, + ArrayBuilder builder, ISymbol symbol, in SyntaxList attributeListSyntaxes, CancellationToken token, - out ImmutableArray forwardedAttributes) + out EquatableArray forwardedAttributes) { - using var attributes = ImmutableArrayBuilder.Rent(); + using var attributes = ArrayBuilder.Rent(); AddAutomaticForwardedAttributes(symbol, attributes, token); AddExplicitForwardedAttributes(context, builder, symbol, attributeListSyntaxes, attributes, token); - forwardedAttributes = ConvertToSourceAttributes(attributes.ToImmutable()); + forwardedAttributes = ConvertToSourceAttributes(attributes.WrittenSpan); } } @@ -66,6 +67,7 @@ internal void GetForwardedAttributes( { /// Gets a provider for the ReactiveUI API integration used by the compilation. /// A provider that produces the ReactiveUI integration details. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal IncrementalValueProvider ReactiveUiIntegration() => context.CompilationProvider.Select(static (compilation, token) => { @@ -80,7 +82,7 @@ internal IncrementalValueProvider ReactiveUiIntegration() /// The cancellation token. private static void AddAutomaticForwardedAttributes( ISymbol symbol, - ImmutableArrayBuilder attributes, + ArrayBuilder attributes, CancellationToken token) { var symbolAttributes = symbol.GetAttributes(); @@ -185,10 +187,10 @@ private static bool HasMetadataName(INamedTypeSymbol? attributeClass, string met /// The cancellation token. private static void AddExplicitForwardedAttributes( in GeneratorAttributeSyntaxContext context, - ImmutableArrayBuilder diagnostics, + ArrayBuilder diagnostics, ISymbol symbol, in SyntaxList attributeLists, - ImmutableArrayBuilder attributes, + ArrayBuilder attributes, CancellationToken token) { foreach (var attributeList in attributeLists) @@ -222,10 +224,10 @@ private static bool IsPropertyOrFieldTarget(AttributeListSyntax attributeList) = /// The cancellation token. private static void AddExplicitForwardedAttribute( in GeneratorAttributeSyntaxContext context, - ImmutableArrayBuilder diagnostics, + ArrayBuilder diagnostics, ISymbol symbol, AttributeSyntax attribute, - ImmutableArrayBuilder attributes, + ArrayBuilder attributes, CancellationToken token) { if (!context.SemanticModel.GetSymbolInfo(attribute, token).TryGetAttributeTypeSymbol(out var attributeType)) @@ -251,15 +253,15 @@ private static void AddExplicitForwardedAttribute( /// Converts forwarded attribute metadata to generated source text. /// The attributes to convert. /// The generated source text. - private static ImmutableArray ConvertToSourceAttributes(ImmutableArray attributes) + private static EquatableArray ConvertToSourceAttributes(ReadOnlySpan attributes) { - using var sourceAttributes = ImmutableArrayBuilder.Rent(); + using var sourceAttributes = ArrayBuilder.Rent(); foreach (var attribute in attributes) { sourceAttributes.Add(attribute.ToString()); } - return sourceAttributes.ToImmutable(); + return sourceAttributes.ToEquatableArray(); } /// Determines whether a ReactiveUI command exposes the primitive void type. diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/DiagnosticsExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/DiagnosticsExtensions.cs index ed7d9404..547a7430 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/DiagnosticsExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/DiagnosticsExtensions.cs @@ -1,7 +1,8 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using ReactiveUI.SourceGenerators.Helpers; using ReactiveUI.SourceGenerators.Models; @@ -13,18 +14,20 @@ internal static class DiagnosticsExtensions { /// Provides extension members for a diagnostic builder. /// The diagnostic builder to extend. - extension(ImmutableArrayBuilder diagnostics) + extension(ArrayBuilder diagnostics) { /// Adds a diagnostic associated with a symbol to this builder. /// The input for the diagnostic to create. /// The source to attach the diagnostic to. /// The optional arguments for the formatted message to include. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void Add(DiagnosticDescriptor descriptor, ISymbol symbol, params object[] args) => diagnostics.Add(DiagnosticInfo.Create(descriptor, symbol, args)); /// Adds a diagnostic associated with a syntax node to this builder. /// The input for the diagnostic to create. /// The source to attach the diagnostic to. /// The optional arguments for the formatted message to include. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void Add(DiagnosticDescriptor descriptor, SyntaxNode node, params object[] args) => diagnostics.Add(DiagnosticInfo.Create(descriptor, node, args)); } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/FieldSyntaxExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/FieldSyntaxExtensions.cs index dd164dca..c13575b4 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/FieldSyntaxExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/FieldSyntaxExtensions.cs @@ -1,8 +1,9 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Globalization; +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Helpers; @@ -53,6 +54,7 @@ internal string GetGeneratedPropertyName() /// The semantic model for the current run. /// Whether the property type supports nullability. /// Whether MemberNotNullAttribute should be used on the setter. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void GetNullabilityInfo( SemanticModel semanticModel, out bool isReferenceTypeOrUnconstraindTypeParameter, @@ -61,6 +63,7 @@ internal void GetNullabilityInfo( /// Validates the containing type for a given field being annotated. /// Whether the containing type is valid. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal bool IsTargetTypeValid() => IsTargetTypeValid(fieldSymbol.ContainingType); } @@ -70,6 +73,7 @@ internal void GetNullabilityInfo( { /// Validates the containing type for a given method being annotated. /// Whether the containing type is valid. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal bool IsTargetTypeValid() => IsTargetTypeValid(methodSymbol.ContainingType); } @@ -91,6 +95,7 @@ internal string GetGeneratedFieldName() /// The semantic model for the current run. /// Whether the property type supports nullability. /// Whether MemberNotNullAttribute should be used on the setter. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void GetNullabilityInfo( SemanticModel semanticModel, out bool isReferenceTypeOrUnconstraindTypeParameter, @@ -99,6 +104,7 @@ internal void GetNullabilityInfo( /// Validates the containing type for a given property being annotated. /// Whether the containing type is valid. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal bool IsTargetTypeValid() => IsTargetTypeValid(propertySymbol.ContainingType); } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/INamedTypeSymbolExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/INamedTypeSymbolExtensions.cs index 257257b0..ad2db09a 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/INamedTypeSymbolExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/INamedTypeSymbolExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -19,49 +19,50 @@ internal static class INamedTypeSymbolExtensions /// A sequence of all member symbols. internal IEnumerable GetAllMembers() { - for (var currentSymbol = symbol; currentSymbol is { SpecialType: not SpecialType.System_Object }; currentSymbol = currentSymbol.BaseType) - { - foreach (var memberSymbol in currentSymbol.GetMembers()) + for (var currentSymbol = symbol; currentSymbol is { SpecialType: not SpecialType.System_Object }; currentSymbol = currentSymbol.BaseType) { - yield return memberSymbol; + foreach (var memberSymbol in currentSymbol.GetMembers()) + { + yield return memberSymbol; + } } } - } /// Gets all member symbols with a given name from this instance, including inherited ones. /// The name of the members to look for. /// A sequence of all matching member symbols. internal IEnumerable GetAllMembers(string name) { - for (var currentSymbol = symbol; currentSymbol is { SpecialType: not SpecialType.System_Object }; currentSymbol = currentSymbol.BaseType) - { - foreach (var memberSymbol in currentSymbol.GetMembers(name)) + for (var currentSymbol = symbol; currentSymbol is { SpecialType: not SpecialType.System_Object }; currentSymbol = currentSymbol.BaseType) { - yield return memberSymbol; + foreach (var memberSymbol in currentSymbol.GetMembers(name)) + { + yield return memberSymbol; + } } } - } /// Returns a string representation of this type, such as "class", "struct", or "interface". /// A string representing the type kind. + /// Thrown if the type is not an interface, struct or class. internal string GetTypeString() { - if (symbol.TypeKind == TypeKind.Interface) - { - return "interface"; - } + if (symbol.TypeKind == TypeKind.Interface) + { + return "interface"; + } - if (symbol.TypeKind == TypeKind.Struct) - { - return symbol.IsRecord ? "record struct" : "struct"; - } + if (symbol.TypeKind == TypeKind.Struct) + { + return symbol.IsRecord ? "record struct" : "struct"; + } - if (symbol.TypeKind == TypeKind.Class) - { - return symbol.IsRecord ? "record" : "class"; - } + if (symbol.TypeKind == TypeKind.Class) + { + return symbol.IsRecord ? "record" : "class"; + } - throw new InvalidOperationException("Unknown type kind."); + throw new InvalidOperationException("Unknown type kind."); } } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ISymbolExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ISymbolExtensions.cs index bee27920..b810d227 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ISymbolExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ISymbolExtensions.cs @@ -1,9 +1,10 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; namespace ReactiveUI.SourceGenerators.Extensions; @@ -21,11 +22,13 @@ internal static class ISymbolExtensions { /// Gets the fully qualified name for this symbol. /// The fully qualified name for this symbol. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal string GetFullyQualifiedName() => symbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); /// Gets the fully qualified name for this symbol, including nullability annotations. /// The fully qualified name for this symbol. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal string GetFullyQualifiedNameWithNullabilityAnnotations() => symbol.ToDisplayString(FullyQualifiedWithNullabilityFormat); @@ -61,11 +64,13 @@ internal bool TryGetAttributeWithType( { foreach (var attribute in symbol.GetAttributes()) { - if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, typeSymbol)) + if (!SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, typeSymbol)) { - attributeData = attribute; - return true; + continue; } + + attributeData = attribute; + return true; } attributeData = null; @@ -82,11 +87,13 @@ internal bool TryGetAttributeWithFullyQualifiedMetadataName( { foreach (var attribute in symbol.GetAttributes()) { - if (attribute.AttributeClass?.HasFullyQualifiedMetadataName(name) == true) + if (attribute.AttributeClass?.HasFullyQualifiedMetadataName(name) != true) { - attributeData = attribute; - return true; + continue; } + + attributeData = attribute; + return true; } attributeData = null; @@ -137,6 +144,7 @@ internal bool CanBeAccessedFrom(IAssemblySymbol assembly) /// Gets the string representation of the accessibility level of this symbol. /// The accessibility string for this symbol. + /// Thrown if the accessibility is not recognized. internal string GetAccessibilityString() => symbol.DeclaredAccessibility switch { Accessibility.Public => "public", diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ITypeSymbolExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ITypeSymbolExtensions.cs index ec1544d1..4046541f 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ITypeSymbolExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/ITypeSymbolExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -124,7 +124,7 @@ internal bool HasFullyQualifiedMetadataName(string name) /// Whether the metadata name contains . internal bool ContainsFullyQualifiedMetadataName(string name) { - using var builder = ImmutableArrayBuilder.Rent(); + using var builder = ArrayBuilder.Rent(); AppendFullyQualifiedMetadataName(typeSymbol, builder); @@ -135,7 +135,7 @@ internal bool ContainsFullyQualifiedMetadataName(string name) /// The fully qualified metadata name for the type symbol. internal string GetFullyQualifiedMetadataName() { - using var builder = ImmutableArrayBuilder.Rent(); + using var builder = ArrayBuilder.Rent(); AppendFullyQualifiedMetadataName(typeSymbol, builder); @@ -326,10 +326,10 @@ private static bool MatchCharacter(char character, string name, ref int position /// Appends the fully qualified metadata name for a given symbol to a target builder. /// The input instance. - /// The target instance. - private static void AppendFullyQualifiedMetadataName(ITypeSymbol symbol, ImmutableArrayBuilder builder) + /// The target instance. + private static void AppendFullyQualifiedMetadataName(ITypeSymbol symbol, ArrayBuilder builder) { - static void BuildFrom(ISymbol? current, ImmutableArrayBuilder target) + static void BuildFrom(ISymbol? current, ArrayBuilder target) { if (current is INamespaceSymbol namespaceSymbol) { diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/IncrementalPipelineExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/IncrementalPipelineExtensions.cs index a0fbf750..deb03027 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/IncrementalPipelineExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/IncrementalPipelineExtensions.cs @@ -1,10 +1,11 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using ReactiveUI.SourceGenerators.Helpers; using ReactiveUI.SourceGenerators.Models; @@ -26,15 +27,16 @@ internal static class IncrementalPipelineExtensions /// Reports each result's diagnostics as their own output, apart from the sources. /// The result's value type. /// The extraction results. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void RegisterDiagnostics(IncrementalValuesProvider> results) where T : IEquatable? => context.RegisterSourceOutput( results.Where(static result => !result.Errors.IsEmpty).Select(static (result, _) => result.Errors), static (context, errors) => { - foreach (var error in errors.AsImmutableArray()) + for (var i = 0; i < errors.Length; i++) { - context.ReportDiagnostic(error.ToDiagnostic()); + context.ReportDiagnostic(errors[i].ToDiagnostic()); } }); } @@ -48,25 +50,26 @@ internal void RegisterDiagnostics(IncrementalValuesProvider> result /// Groups the models by the type they belong to, one value-equatable array per type. /// Reads a model's type. /// One array per type, in the order the types were first seen. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal IncrementalValuesProvider> GroupByTarget(Func target) => models.Collect().SelectMany((all, _) => Group(all, target)); } /// Groups models by their type's hint name, which is unique within a compilation. /// The model type. - /// Every model. + /// Every model; Roslyn's Collect returns it as an . /// Reads a model's type. /// One array per type, in first-seen order. - private static ImmutableArray> Group(ImmutableArray all, Func target) + private static EquatableArray[] Group(ImmutableArray all, Func target) where T : IEquatable { if (all.IsEmpty) { - return ImmutableArray>.Empty; + return []; } var indexByType = new Dictionary(StringComparer.Ordinal); - var groups = new List.Builder>(); + var groups = new List>(); foreach (var model in all) { var hintName = target(model).FileHintName; @@ -74,18 +77,18 @@ private static ImmutableArray> Group(ImmutableArray all, { index = groups.Count; indexByType.Add(hintName, index); - groups.Add(ImmutableArray.CreateBuilder()); + groups.Add([]); } groups[index].Add(model); } - var result = ImmutableArray.CreateBuilder>(groups.Count); - foreach (var group in groups) + var result = new EquatableArray[groups.Count]; + for (var i = 0; i < result.Length; i++) { - result.Add(group.ToImmutable()); + result[i] = new(groups[i].ToArray()); } - return result.MoveToImmutable(); + return result; } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SymbolInfoExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SymbolInfoExtensions.cs index e69c30fc..42b5a649 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SymbolInfoExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SymbolInfoExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Diagnostics.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxNodeExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxNodeExtensions.cs index ecab7a50..87a22076 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxNodeExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxNodeExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxTokenExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxTokenExtensions.cs index 332b254a..d8a8e23c 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxTokenExtensions.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Extensions/SyntaxTokenExtensions.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilderExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilderExtensions.cs new file mode 100644 index 00000000..e060bafd --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilderExtensions.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.SourceGenerators.Helpers; + +/// Extensions for . +internal static class ArrayBuilderExtensions +{ + /// Provides extension members for a builder of equatable items. + /// The type of items. + /// The builder to extend. + extension(ArrayBuilder builder) + where T : IEquatable + { + /// Creates a value-equatable array from the written items. + /// The items, ready to store in a pipeline model. + internal EquatableArray ToEquatableArray() => new(builder.ToArray()); + } +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilder{T}.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilder{T}.cs new file mode 100644 index 00000000..3234acf4 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ArrayBuilder{T}.cs @@ -0,0 +1,212 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Buffers; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.SourceGenerators.Helpers; + +/// A helper type to build sequences of values with pooled buffers. +/// The type of items to create sequences for. +internal ref struct ArrayBuilder +{ + /// The rented instance to use. + private Writer? _writer; + + /// Initializes a new instance of the struct. + /// The target data writer to use. + private ArrayBuilder(Writer writer) => _writer = writer; + + /// Gets the data written to the underlying buffer so far, as a . + [UnscopedRef] + internal readonly ReadOnlySpan WrittenSpan + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _writer!.WrittenSpan; + } + + /// Gets the count. + /// + /// The count. + /// + internal readonly int Count + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _writer!.Count; + } + + /// + public override readonly string ToString() => _writer!.WrittenSpan.ToString(); + + /// Creates a value with a pooled underlying data writer. + /// A instance to write data to. + internal static ArrayBuilder Rent() => new(new Writer()); + + /// Adds an item to the builder. + /// The item to add. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal readonly void Add(T item) => _writer!.Add(item); + + /// Adds the specified items to the end of the array. + /// The items to add at the end of the array. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal readonly void AddRange(scoped in ReadOnlySpan items) => _writer!.AddRange(items); + + /// Creates an array from the written items. + /// An array containing the written items. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal readonly T[] ToArray() => _writer!.WrittenSpan.ToArray(); + + /// Gets an instance for the current builder. + /// An instance for the current builder. + /// + /// The builder should not be mutated while an enumerator is in use. + /// + internal readonly IEnumerable AsEnumerable() => _writer!; + + /// Returns the pooled buffer to its array pool. + internal void Dispose() + { + var writer = _writer; + + _writer = null; + + writer?.Dispose(); + } + + /// A class handling the actual buffer writing. + private sealed class Writer : ICollection, IDisposable + { + /// The default number of pooled items to rent. + private const int DefaultCapacity = 8; + + /// The initial capacity used for character buffers. + private const int CharacterCapacity = 1024; + + /// The underlying array. + private T?[]? _array; + + /// Initializes a new instance of the class. Creates a new instance with the specified parameters. + public Writer() + { + _array = ArrayPool.Shared.Rent(typeof(T) == typeof(char) ? CharacterCapacity : DefaultCapacity); + Count = 0; + } + + /// + public int Count + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; private set; + } + + /// Gets the written items as a read-only span. + public ReadOnlySpan WrittenSpan + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new(_array!, 0, Count); + } + + /// + bool ICollection.IsReadOnly => true; + + /// Adds an item to the writer. + /// The item to add. + public void Add(T item) + { + EnsureCapacity(1); + + _array![Count] = item; + Count++; + } + + /// Adds a range of items to the writer. + /// The items to add. + public void AddRange(in ReadOnlySpan items) + { + EnsureCapacity(items.Length); + + items.CopyTo(_array.AsSpan(Count)!); + + Count += items.Length; + } + + /// + public void Dispose() + { + var array = _array; + + _array = null; + + if (array is null) + { + return; + } + + ArrayPool.Shared.Return(array, clearArray: typeof(T) != typeof(char)); + } + + /// + void ICollection.Clear() => throw new NotSupportedException(); + + /// + bool ICollection.Contains(T item) => throw new NotSupportedException(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + void ICollection.CopyTo(T[] array, int arrayIndex) => Array.Copy(_array!, 0, array, arrayIndex, Count); + + /// + IEnumerator IEnumerable.GetEnumerator() + { + var array = _array!; + + for (var i = 0; i < Count; i++) + { + yield return array[i]!; + } + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)this).GetEnumerator(); + + /// + bool ICollection.Remove(T item) => throw new NotSupportedException(); + + /// Ensures that has enough free space to contain a given number of new items. + /// The minimum number of items to ensure space for in . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void EnsureCapacity(int requestedSize) + { + if (requestedSize <= _array!.Length - Count) + { + return; + } + + ResizeBuffer(requestedSize); + } + + /// Resizes to ensure it can fit the specified number of new items. + /// The minimum number of items to ensure space for in . + [MethodImpl(MethodImplOptions.NoInlining)] + private void ResizeBuffer(int sizeHint) + { + var minimumSize = Count + sizeHint; + + var oldArray = _array!; + var newArray = ArrayPool.Shared.Rent(minimumSize); + + Array.Copy(oldArray, newArray, Count); + + _array = newArray; + + ArrayPool.Shared.Return(oldArray, clearArray: typeof(T) != typeof(char)); + } + } +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/AttributeInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/AttributeInfo.cs index 705bf20f..b00aba57 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/AttributeInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/AttributeInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Generic; @@ -31,8 +31,8 @@ internal static AttributeInfo Create(AttributeData attributeData) { var typeName = attributeData.AttributeClass!.GetFullyQualifiedName(); - using var constructorArguments = ImmutableArrayBuilder.Rent(); - using var namedArguments = ImmutableArrayBuilder<(string, TypedConstantInfo)>.Rent(); + using var constructorArguments = ArrayBuilder.Rent(); + using var namedArguments = ArrayBuilder<(string, TypedConstantInfo)>.Rent(); // Get the constructor arguments foreach (var typedConstant in attributeData.ConstructorArguments) @@ -48,8 +48,8 @@ internal static AttributeInfo Create(AttributeData attributeData) return new( typeName, - constructorArguments.ToImmutable(), - namedArguments.ToImmutable()); + constructorArguments.ToEquatableArray(), + namedArguments.ToEquatableArray()); } /// Creates a new instance from a given syntax node. @@ -68,8 +68,8 @@ internal static bool TryCreate( { var typeName = typeSymbol.GetFullyQualifiedName(); - using var constructorArguments = ImmutableArrayBuilder.Rent(); - using var namedArguments = ImmutableArrayBuilder<(string, TypedConstantInfo)>.Rent(); + using var constructorArguments = ArrayBuilder.Rent(); + using var namedArguments = ArrayBuilder<(string, TypedConstantInfo)>.Rent(); foreach (var argument in arguments) { @@ -101,8 +101,8 @@ internal static bool TryCreate( info = new( typeName, - constructorArguments.ToImmutable(), - namedArguments.ToImmutable()); + constructorArguments.ToEquatableArray(), + namedArguments.ToEquatableArray()); return true; } @@ -111,20 +111,20 @@ internal static bool TryCreate( /// The instance representing the current value. internal AttributeSyntax GetSyntax() { - using var arguments = ImmutableArrayBuilder.Rent(); + using var arguments = ArrayBuilder.Rent(); - foreach (var constructorArgument in ConstructorArgumentInfo.AsImmutableArray()) + foreach (var constructorArgument in ConstructorArgumentInfo.AsSpan()) { arguments.Add(AttributeArgument(constructorArgument.GetSyntax())); } - foreach (var namedArgument in NamedArgumentInfo.AsImmutableArray()) + foreach (var namedArgument in NamedArgumentInfo.AsSpan()) { arguments.Add( AttributeArgument(namedArgument.Value.GetSyntax()) .WithNameEquals(NameEquals(IdentifierName(namedArgument.Name)))); } - return Attribute(IdentifierName(TypeName), AttributeArgumentList(SeparatedList(arguments.ToImmutable()))); + return Attribute(IdentifierName(TypeName), AttributeArgumentList(SeparatedList(arguments.ToArray()))); } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArrayExtensions.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArrayExtensions.cs deleted file mode 100644 index ec20f12d..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArrayExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections.Immutable; - -namespace ReactiveUI.SourceGenerators.Helpers; - -/// Extensions for . -internal static class EquatableArrayExtensions -{ - /// Provides extension members for an immutable array. - /// The type of items in the array. - /// The immutable array to extend. - extension(ImmutableArray array) - where T : IEquatable - { - /// Creates an instance from this array. - /// An instance. - internal EquatableArray AsEquatableArray() => new(array); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArray{T}.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArray{T}.cs deleted file mode 100644 index b3befb5a..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/EquatableArray{T}.cs +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace ReactiveUI.SourceGenerators.Helpers; - -/// An immutable, equatable array. This is equivalent to but with value equality support. -/// The type of values in the array. -internal readonly struct EquatableArray : IEquatable>, IEnumerable - where T : IEquatable -{ - /// The underlying array. - private readonly T[]? _array; - - /// Initializes a new instance of the struct. - /// The immutable array to wrap. - internal EquatableArray(ImmutableArray array) => _array = Unsafe.As, T[]?>(ref array); - - /// Gets a value indicating whether the current array is empty. - internal bool IsEmpty - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => AsImmutableArray().IsEmpty; - } - - /// Gets the number of values in the array. - internal int Length - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => _array?.Length ?? 0; - } - - /// Gets the number of values in the array. - internal int Count - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => Length; - } - - /// Gets a reference to an item at a specified position within the array. - /// The index of the item to retrieve a reference to. - /// A reference to an item at a specified position within the array. - internal ref readonly T this[int index] - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => ref AsImmutableArray().ItemRef(index); - } - - /// Implicitly converts an to . - /// An instance from a given . - public static implicit operator EquatableArray(ImmutableArray array) => FromImmutableArray(array); - - /// Implicitly converts an to . - /// An instance from a given . - public static implicit operator ImmutableArray(in EquatableArray array) => array.AsImmutableArray(); - - /// Checks whether two values are the same. - /// The first value. - /// The second value. - /// Whether and are equal. - public static bool operator ==(in EquatableArray left, in EquatableArray right) => left.Equals(right); - - /// Checks whether two values are not the same. - /// The first value. - /// The second value. - /// Whether and are not equal. - public static bool operator !=(in EquatableArray left, in EquatableArray right) => !left.Equals(right); - - /// Equalses the specified object. - /// The object. - /// A bool. - public override bool Equals([NotNullWhen(true)] object? obj) => obj is EquatableArray array && Equals(array); - - /// Gets the hash code. - /// and int. - public override int GetHashCode() - { - if (_array is not T[] array) - { - return 0; - } - - HashCode hashCode = default; - - foreach (var item in array) - { - hashCode.Add(item); - } - - return hashCode.ToHashCode(); - } - - /// Creates an instance from a given . - /// The input instance. - /// An instance from a given . - internal static EquatableArray FromImmutableArray(ImmutableArray array) => new(array); - - /// Equalses the specified array. - /// The array. - /// A bool. - internal bool Equals(EquatableArray other) => AsSpan().SequenceEqual(other.AsSpan()); - - bool IEquatable>.Equals(EquatableArray other) => Equals(other); - - /// Gets an instance from the current . - /// The from the current . - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ImmutableArray AsImmutableArray() => Unsafe.As>(ref Unsafe.AsRef(in _array)); - - /// Creates an from the current array. - /// The immutable array represented by the current value. - internal ImmutableArray ToImmutableArray() => AsImmutableArray(); - - /// Returns a wrapping the current items. - /// A wrapping the current items. - internal ReadOnlySpan AsSpan() => AsImmutableArray().AsSpan(); - - /// Copies the contents of this instance to a mutable array. - /// The newly instantiated array. - internal T[] ToArray() => [.. AsImmutableArray()]; - - /// Gets an value to traverse items in the current array. - /// An value to traverse items in the current array. - internal ImmutableArray.Enumerator GetEnumerator() => AsImmutableArray().GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)AsImmutableArray()).GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)AsImmutableArray()).GetEnumerator(); -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/HashCode.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/HashCode.cs deleted file mode 100644 index 94c27ef8..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/HashCode.cs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Runtime.CompilerServices; -using System.Security.Cryptography; - -namespace System; - -/// A polyfill type that mirrors some methods from on .NET 6. -internal struct HashCode : IEquatable -{ - /// The number of values held in the state. - private const uint ValuesPerState = 4; - - /// The position of the first queued value. - private const uint FirstQueuePosition = 0; - - /// The position of the second queued value. - private const uint SecondQueuePosition = 1; - - /// The position of the third queued value. - private const uint ThirdQueuePosition = 2; - - /// The bit-width of the hash value. - private const int HashWidthInBits = 32; - - /// The first prime used by the xxHash algorithm. - private const uint Prime1 = 2_654_435_761U; - - /// The second prime used by the xxHash algorithm. - private const uint Prime2 = 2_246_822_519U; - - /// The third prime used by the xxHash algorithm. - private const uint Prime3 = 3_266_489_917U; - - /// The fourth prime used by the xxHash algorithm. - private const uint Prime4 = 668_265_263U; - - /// The fifth prime used by the xxHash algorithm. - private const uint Prime5 = 374_761_393U; - - /// The rotation offset for a round. - private const int RoundRotationOffset = 13; - - /// The rotation offset for a queued value. - private const int QueueRoundRotationOffset = 17; - - /// The rotation offset for the first state value. - private const int FirstStateRotationOffset = 1; - - /// The rotation offset for the second state value. - private const int SecondStateRotationOffset = 7; - - /// The rotation offset for the third state value. - private const int ThirdStateRotationOffset = 12; - - /// The rotation offset for the fourth state value. - private const int FourthStateRotationOffset = 18; - - /// The process-specific hash seed. - private static readonly uint seed = GenerateGlobalSeed(); - - /// The first state value. - private uint _v1; - - /// The second state value. - private uint _v2; - - /// The third state value. - private uint _v3; - - /// The fourth state value. - private uint _v4; - - /// The first queued value. - private uint _queue1; - - /// The second queued value. - private uint _queue2; - - /// The third queued value. - private uint _queue3; - - /// The number of values added to the hash. - private uint _length; - - /// - public readonly bool Equals(HashCode other) => - _v1 == other._v1 - && _v2 == other._v2 - && _v3 == other._v3 - && _v4 == other._v4 - && _queue1 == other._queue1 - && _queue2 == other._queue2 - && _queue3 == other._queue3 - && _length == other._length; - - /// - public override readonly bool Equals(object? obj) => obj is HashCode other && Equals(other); - - /// - public override readonly int GetHashCode() => ToHashCode(); - - /// Adds a single value to the current hash. - /// The type of the value to add into the hash code. - /// The value to add into the hash code. - internal void Add(T value) => Add(value?.GetHashCode() ?? 0); - - /// Gets the resulting hashcode from the current instance. - /// The resulting hashcode from the current instance. - internal readonly int ToHashCode() - { - var length = _length; - var position = length % ValuesPerState; - var hash = length < ValuesPerState ? MixEmptyState() : MixState(_v1, _v2, _v3, _v4); - - hash += length * ValuesPerState; - - if (position != 0) - { - hash = QueueRound(hash, _queue1); - - if (position > 1) - { - hash = QueueRound(hash, _queue2); - - if (position > ThirdQueuePosition) - { - hash = QueueRound(hash, _queue3); - } - } - } - - hash = MixFinal(hash); - - return (int)hash; - } - - /// Rotates the specified value left by the specified number of bits. Similar in behavior to the x86 instruction ROL. - /// The value to rotate. - /// The number of bits to rotate by. - /// Any value outside the range [0..31] is treated as congruent mod 32. - /// The rotated value. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint RotateLeft(uint value, int offset) => (value << offset) | (value >> (HashWidthInBits - offset)); - - /// Initializes the default seed. - /// A random seed. - private static uint GenerateGlobalSeed() - { - var bytes = new byte[4]; - - using (var generator = RandomNumberGenerator.Create()) - { - generator.GetBytes(bytes); - } - - return BitConverter.ToUInt32(bytes, 0); - } - - /// Initializes the four state values. - /// The first state value. - /// The second state value. - /// The third state value. - /// The fourth state value. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void Initialize(out uint v1, out uint v2, out uint v3, out uint v4) - { - v1 = seed + Prime1 + Prime2; - v2 = seed + Prime2; - v3 = seed; - v4 = seed - Prime1; - } - - /// Applies a round of the xxHash algorithm. - /// The hash to update. - /// The input value. - /// The updated hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint Round(uint hash, uint input) => RotateLeft(hash + (input * Prime2), RoundRotationOffset) * Prime1; - - /// Applies a round for a queued value. - /// The hash to update. - /// The queued value. - /// The updated hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint QueueRound(uint hash, uint queuedValue) => RotateLeft(hash + (queuedValue * Prime3), QueueRoundRotationOffset) * Prime4; - - /// Mixes the four state values into a hash. - /// The first state value. - /// The second state value. - /// The third state value. - /// The fourth state value. - /// The mixed hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixState(uint v1, uint v2, uint v3, uint v4) => - RotateLeft(v1, FirstStateRotationOffset) - + RotateLeft(v2, SecondStateRotationOffset) - + RotateLeft(v3, ThirdStateRotationOffset) - + RotateLeft(v4, FourthStateRotationOffset); - - /// Creates a hash state with no added values. - /// The initialized hash state. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixEmptyState() => seed + Prime5; - - /// Applies the final xxHash mixing operations. - /// The hash to mix. - /// The final mixed hash. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint MixFinal(uint hash) - { - hash ^= hash >> 15; - hash *= Prime2; - hash ^= hash >> 13; - hash *= Prime3; - hash ^= hash >> 16; - - return hash; - } - - /// Adds a hash code to the current state. - /// The hash code to add. - private void Add(int value) - { - var val = (uint)value; - var previousLength = _length++; - var position = previousLength % ValuesPerState; - - if (position == FirstQueuePosition) - { - _queue1 = val; - } - else if (position == SecondQueuePosition) - { - _queue2 = val; - } - else if (position == ThirdQueuePosition) - { - _queue3 = val; - } - else - { - if (previousLength == ValuesPerState - 1) - { - Initialize(out _v1, out _v2, out _v3, out _v4); - } - - _v1 = Round(_v1, _queue1); - _v2 = Round(_v2, _queue2); - _v3 = Round(_v3, _queue3); - _v4 = Round(_v4, val); - } - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ImmutableArrayBuilder{T}.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ImmutableArrayBuilder{T}.cs deleted file mode 100644 index 3514f446..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ImmutableArrayBuilder{T}.cs +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Buffers; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace ReactiveUI.SourceGenerators.Helpers; - -/// A helper type to build sequences of values with pooled buffers. -/// The type of items to create sequences for. -internal ref struct ImmutableArrayBuilder -{ - /// The rented instance to use. - private Writer? _writer; - - /// Initializes a new instance of the struct. - /// The target data writer to use. - private ImmutableArrayBuilder(Writer writer) => _writer = writer; - - /// Gets the data written to the underlying buffer so far, as a . - [UnscopedRef] - internal readonly ReadOnlySpan WrittenSpan - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => _writer!.WrittenSpan; - } - - /// Gets the count. - /// - /// The count. - /// - internal readonly int Count - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => _writer!.Count; - } - - /// - public override readonly string ToString() => _writer!.WrittenSpan.ToString(); - - /// Creates a value with a pooled underlying data writer. - /// A instance to write data to. - internal static ImmutableArrayBuilder Rent() => new(new Writer()); - - /// Adds an item to the builder. - /// The item to add. - internal readonly void Add(T item) => _writer!.Add(item); - - /// Adds the specified items to the end of the array. - /// The items to add at the end of the array. - internal readonly void AddRange(scoped in ReadOnlySpan items) => _writer!.AddRange(items); - - /// Creates an immutable array from the written items. - /// An immutable array containing the written items. - internal readonly ImmutableArray ToImmutable() - { - var array = _writer!.WrittenSpan.ToArray(); - - return Unsafe.As>(ref array); - } - - /// Creates an array from the written items. - /// An array containing the written items. - internal readonly T[] ToArray() => _writer!.WrittenSpan.ToArray(); - - /// Gets an instance for the current builder. - /// An instance for the current builder. - /// - /// The builder should not be mutated while an enumerator is in use. - /// - internal readonly IEnumerable AsEnumerable() => _writer!; - - /// Returns the pooled buffer to its array pool. - internal void Dispose() - { - var writer = _writer; - - _writer = null; - - writer?.Dispose(); - } - - /// A class handling the actual buffer writing. - private sealed class Writer : ICollection, IDisposable - { - /// The default number of pooled items to rent. - private const int DefaultCapacity = 8; - - /// The initial capacity used for character buffers. - private const int CharacterCapacity = 1024; - - /// The underlying array. - private T?[]? _array; - - /// Initializes a new instance of the class. Creates a new instance with the specified parameters. - public Writer() - { - _array = ArrayPool.Shared.Rent(typeof(T) == typeof(char) ? CharacterCapacity : DefaultCapacity); - Count = 0; - } - - /// - public int Count - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get; private set; - } - - /// Gets the written items as a read-only span. - public ReadOnlySpan WrittenSpan - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get => new(_array!, 0, Count); - } - - /// - bool ICollection.IsReadOnly => true; - - /// Adds an item to the writer. - /// The item to add. - public void Add(T item) - { - EnsureCapacity(1); - - _array![Count] = item; - Count++; - } - - /// Adds a range of items to the writer. - /// The items to add. - public void AddRange(in ReadOnlySpan items) - { - EnsureCapacity(items.Length); - - items.CopyTo(_array.AsSpan(Count)!); - - Count += items.Length; - } - - /// - public void Dispose() - { - var array = _array; - - _array = null; - - if (array is null) - { - return; - } - - ArrayPool.Shared.Return(array, clearArray: typeof(T) != typeof(char)); - } - - /// - void ICollection.Clear() => throw new NotSupportedException(); - - /// - bool ICollection.Contains(T item) => throw new NotSupportedException(); - - /// - void ICollection.CopyTo(T[] array, int arrayIndex) => Array.Copy(_array!, 0, array, arrayIndex, Count); - - /// - IEnumerator IEnumerable.GetEnumerator() - { - var array = _array!; - var length = Count; - - for (var i = 0; i < length; i++) - { - yield return array[i]!; - } - } - - /// - IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)this).GetEnumerator(); - - /// - bool ICollection.Remove(T item) => throw new NotSupportedException(); - - /// Ensures that has enough free space to contain a given number of new items. - /// The minimum number of items to ensure space for in . - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void EnsureCapacity(int requestedSize) - { - if (requestedSize <= _array!.Length - Count) - { - return; - } - - ResizeBuffer(requestedSize); - } - - /// Resizes to ensure it can fit the specified number of new items. - /// The minimum number of items to ensure space for in . - [MethodImpl(MethodImplOptions.NoInlining)] - private void ResizeBuffer(int sizeHint) - { - var minimumSize = Count + sizeHint; - - var oldArray = _array!; - var newArray = ArrayPool.Shared.Rent(minimumSize); - - Array.Copy(oldArray, newArray, Count); - - _array = newArray; - - ArrayPool.Shared.Return(oldArray, clearArray: typeof(T) != typeof(char)); - } - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/SymbolHelpers.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/SymbolHelpers.cs index bd54cfbf..2f604534 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/SymbolHelpers.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/SymbolHelpers.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TrackingNames.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TrackingNames.cs index 1770a760..31b7958f 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TrackingNames.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TrackingNames.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Helpers; @@ -37,6 +37,9 @@ internal static class TrackingNames /// The [ReactiveCollection] models grouped per type. internal const string ReactiveCollectionTypes = nameof(ReactiveCollectionTypes); + /// The [IViewFor] models grouped per type. + internal const string ViewForTypes = nameof(ViewForTypes); + /// The [IReactiveObject] models grouped per type. internal const string ReactiveObjectTypes = nameof(ReactiveObjectTypes); diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.Factory.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.Factory.cs index a426ebbe..1cb7139d 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.Factory.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.Factory.cs @@ -1,9 +1,8 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; -using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Threading; using Microsoft.CodeAnalysis; @@ -29,13 +28,13 @@ internal static TypedConstantInfo Create(TypedConstant arg) if (arg.Kind == TypedConstantKind.Array) { var elementTypeName = ((IArrayTypeSymbol)arg.Type!).ElementType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); - using var items = ImmutableArrayBuilder.Rent(); + using var items = ArrayBuilder.Rent(); foreach (var value in arg.Values) { items.Add(Create(value)); } - return new Array(elementTypeName, items.ToImmutable()); + return new Array(elementTypeName, items.ToEquatableArray()); } return (arg.Kind, arg.Value) switch @@ -104,6 +103,7 @@ internal static bool TryCreate( /// The operation to inspect. /// The resulting constant information, when successful. /// when the operation has a supported constant value. + /// Thrown if the constant is a primitive of an unsupported type. private static bool TryCreateConstant( IOperation operation, [NotNullWhen(true)] out TypedConstantInfo? info) @@ -162,11 +162,11 @@ private static bool TryCreateArray( var initializer = GetInitializer(expression); if (initializer is null) { - info = new Array(elementTypeName, ImmutableArray.Empty); + info = new Array(elementTypeName, default); return true; } - using var items = ImmutableArrayBuilder.Rent(); + using var items = ArrayBuilder.Rent(); foreach (var itemExpression in initializer.Expressions) { if (!TryCreateArrayItem(itemExpression, semanticModel, token, out var item)) @@ -178,7 +178,7 @@ private static bool TryCreateArray( items.Add(item); } - info = new Array(elementTypeName, items.ToImmutable()); + info = new Array(elementTypeName, items.ToEquatableArray()); return true; } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.cs index bfe6cd73..f95340d3 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/TypedConstantInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -37,6 +37,7 @@ private static ExpressionSyntax[] GetItemSyntaxes(EquatableArrayThe primitive value type. /// The primitive value. /// The matching numeric literal token. + /// Thrown if the value is not a supported primitive type. private static SyntaxToken GetNumericLiteral(T value) where T : unmanaged, IEquatable => value switch { diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ViewApiRules.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ViewApiRules.cs index 8c5bce6d..ddb5a283 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ViewApiRules.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Helpers/ViewApiRules.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/DiagnosticInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/DiagnosticInfo.cs index 37fd7523..d485f24c 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/DiagnosticInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/DiagnosticInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; @@ -55,12 +55,12 @@ SyntaxTree is not null /// The string representation of every argument. private static EquatableArray CreateArguments(object[] args) { - using var arguments = ImmutableArrayBuilder.Rent(); + using var arguments = ArrayBuilder.Rent(); foreach (var argument in args) { arguments.Add(argument.ToString() ?? string.Empty); } - return arguments.ToImmutable(); + return arguments.ToEquatableArray(); } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/PropertyAttributeData.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/PropertyAttributeData.cs index 92b17675..8a8f9a65 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/PropertyAttributeData.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/PropertyAttributeData.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiApi.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiApi.cs index db40d1a1..6e1bb427 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiApi.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiApi.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; @@ -8,11 +8,11 @@ namespace ReactiveUI.SourceGenerators.Models; internal enum ReactiveUiApi { /// ReactiveUI releases before the package split. - Legacy, + Legacy = 0, /// The ReactiveUI 24 or later Primitives-based package. - Primitives, + Primitives = 1, /// The ReactiveUI 24 or later System.Reactive-based package. - SystemReactive, + SystemReactive = 2, } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiIntegration.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiIntegration.cs index 2e0762b2..6cbfda3d 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiIntegration.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiIntegration.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiViewApi.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiViewApi.cs index 617933f7..fa2b30bb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiViewApi.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/ReactiveUiViewApi.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; @@ -8,11 +8,11 @@ namespace ReactiveUI.SourceGenerators.Models; internal enum ReactiveUiViewApi { /// ReactiveUI declares them in ReactiveUI: every release not built on ReactiveUI.Binding. - ReactiveUI, + ReactiveUI = 0, /// ReactiveUI.Binding declares them in ReactiveUI.Binding, used by the Primitives-based ReactiveUI. - Binding, + Binding = 1, /// ReactiveUI.Binding.Reactive declares them in ReactiveUI.Binding.Reactive, used by ReactiveUI.Reactive. - BindingReactive, + BindingReactive = 2, } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/Result.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/Result.cs index edd865e8..c35a74db 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/Result.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/Result.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/TargetInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/TargetInfo.cs index 549ac454..f2d44b66 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/TargetInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Core/Models/TargetInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Runtime.CompilerServices; @@ -38,6 +38,7 @@ internal sealed record TargetInfo( /// Gets the target information for a named type symbol, building it once per symbol. /// The target type symbol. /// The generated target information. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static TargetInfo From(INamedTypeSymbol namedTypeSymbol) => Cache.GetValue(namedTypeSymbol, Create); /// Creates target information from a named type symbol. diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/DiagnosticDescriptors.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/DiagnosticDescriptors.cs index fa3575c4..f3bdb20b 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/DiagnosticDescriptors.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/DiagnosticDescriptors.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/SuppressionDescriptors.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/SuppressionDescriptors.cs index 23a1e4ab..5fb65eca 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/SuppressionDescriptors.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/SuppressionDescriptors.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithFieldTargetDiagnosticSuppressor.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithFieldTargetDiagnosticSuppressor.cs index 9f35e191..07b12946 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithFieldTargetDiagnosticSuppressor.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithFieldTargetDiagnosticSuppressor.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; @@ -25,25 +25,27 @@ public sealed class ReactiveAttributeWithFieldTargetDiagnosticSuppressor : Diagn public override void ReportSuppressions(SuppressionAnalysisContext context) { foreach (var diagnostic in context.ReportedDiagnostics) + { + var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + + // Check that the target is effectively [field:] or [property:] over a method declaration, which is the case we're looking for + if (syntaxNode is not AttributeTargetSpecifierSyntax { Parent.Parent: PropertyDeclarationSyntax propertyDeclaration, Identifier: SyntaxToken(SyntaxKind.FieldKeyword) }) + { + continue; + } + + var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); + + // Get the method symbol from the first variable declaration + ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(propertyDeclaration, context.CancellationToken); + + // Check if the method is using [Reactive], in which case we should suppress the warning + if (declaredSymbol is IPropertySymbol propertySymbol + && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType) is INamedTypeSymbol reactiveSymbol + && propertySymbol.HasAttributeWithType(reactiveSymbol)) { - var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); - - // Check that the target is effectively [field:] or [property:] over a method declaration, which is the case we're looking for - if (syntaxNode is AttributeTargetSpecifierSyntax { Parent.Parent: PropertyDeclarationSyntax propertyDeclaration, Identifier: SyntaxToken(SyntaxKind.FieldKeyword) }) - { - var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); - - // Get the method symbol from the first variable declaration - ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(propertyDeclaration, context.CancellationToken); - - // Check if the method is using [Reactive], in which case we should suppress the warning - if (declaredSymbol is IPropertySymbol propertySymbol - && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType) is INamedTypeSymbol reactiveSymbol - && propertySymbol.HasAttributeWithType(reactiveSymbol)) - { - context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveProperty, diagnostic)); - } - } + context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveProperty, diagnostic)); } } + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithPropertyTargetDiagnosticSuppressor.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithPropertyTargetDiagnosticSuppressor.cs index 8651f1a2..9b125110 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithPropertyTargetDiagnosticSuppressor.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveAttributeWithPropertyTargetDiagnosticSuppressor.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; @@ -25,20 +25,22 @@ public sealed class ReactiveAttributeWithPropertyTargetDiagnosticSuppressor : Di public override void ReportSuppressions(SuppressionAnalysisContext context) { foreach (var diagnostic in context.ReportedDiagnostics) + { + var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + + // Check that the target is effectively [property:] over a method declaration, which is the case we're looking for + if (syntaxNode is not AttributeTargetSpecifierSyntax { Parent.Parent: FieldDeclarationSyntax, Identifier: SyntaxToken(SyntaxKind.PropertyKeyword) }) { - var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + continue; + } - // Check that the target is effectively [property:] over a method declaration, which is the case we're looking for - if (syntaxNode is AttributeTargetSpecifierSyntax { Parent.Parent: FieldDeclarationSyntax, Identifier: SyntaxToken(SyntaxKind.PropertyKeyword) }) - { - var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); + var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); - // Check if the method is using [Reactive], in which case we should suppress the warning - if (semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType) is not null) - { - context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveProperty, diagnostic)); - } - } + // Check if the method is using [Reactive], in which case we should suppress the warning + if (semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType) is not null) + { + context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveProperty, diagnostic)); } } + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticSuppressor.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticSuppressor.cs index 870defff..a9ba5a7e 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticSuppressor.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticSuppressor.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; @@ -25,29 +25,31 @@ public sealed class ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticS public override void ReportSuppressions(SuppressionAnalysisContext context) { foreach (var diagnostic in context.ReportedDiagnostics) - { - var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); - - // Check that the target is effectively [field:] or [property:] over a method declaration, which is the case we're looking for - if (syntaxNode is AttributeTargetSpecifierSyntax - { - Parent.Parent: MethodDeclarationSyntax methodDeclaration, - Identifier: SyntaxToken(SyntaxKind.FieldKeyword or SyntaxKind.PropertyKeyword), - }) + { + var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + + // Check that the target is effectively [field:] or [property:] over a method declaration, which is the case we're looking for + if (syntaxNode is not AttributeTargetSpecifierSyntax { - var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); - - // Get the method symbol from the first variable declaration - ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration, context.CancellationToken); - - // Check if the method is using [ReactiveCommand], in which case we should suppress the warning - if (declaredSymbol is IMethodSymbol methodSymbol - && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveCommandAttributeType) is INamedTypeSymbol reactiveCommandSymbol - && methodSymbol.HasAttributeWithType(reactiveCommandSymbol)) - { - context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveCommandMethod, diagnostic)); - } - } + Parent.Parent: MethodDeclarationSyntax methodDeclaration, + Identifier: SyntaxToken(SyntaxKind.FieldKeyword or SyntaxKind.PropertyKeyword), + }) + { + continue; + } + + var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); + + // Get the method symbol from the first variable declaration + ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration, context.CancellationToken); + + // Check if the method is using [ReactiveCommand], in which case we should suppress the warning + if (declaredSymbol is IMethodSymbol methodSymbol + && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveCommandAttributeType) is INamedTypeSymbol reactiveCommandSymbol + && methodSymbol.HasAttributeWithType(reactiveCommandSymbol)) + { + context.ReportSuppression(Suppression.Create(FieldOrPropertyAttributeListForReactiveCommandMethod, diagnostic)); } } + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandMethodDoesNotNeedToBeStaticDiagnosticSuppressor.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandMethodDoesNotNeedToBeStaticDiagnosticSuppressor.cs index 7d35aafc..f5d61adb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandMethodDoesNotNeedToBeStaticDiagnosticSuppressor.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveCommandMethodDoesNotNeedToBeStaticDiagnosticSuppressor.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; @@ -29,20 +29,22 @@ public override void ReportSuppressions(SuppressionAnalysisContext context) var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); // Check that the target is a method declaration, which is the case we're looking for - if (syntaxNode is MethodDeclarationSyntax methodDeclaration) + if (syntaxNode is not MethodDeclarationSyntax methodDeclaration) { - var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); - - // Get the method symbol from the first variable declaration - ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration, context.CancellationToken); - - // Check if the method is using [ReactiveCommand], in which case we should suppress the warning - if (declaredSymbol is IMethodSymbol methodSymbol - && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveCommandAttributeType) is INamedTypeSymbol reactiveCommandSymbol - && methodSymbol.HasAttributeWithType(reactiveCommandSymbol)) - { - context.ReportSuppression(Suppression.Create(ReactiveCommandDoesNotAccessInstanceData, diagnostic)); - } + continue; + } + + var semanticModel = context.GetSemanticModel(syntaxNode.SyntaxTree); + + // Get the method symbol from the first variable declaration + ISymbol? declaredSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration, context.CancellationToken); + + // Check if the method is using [ReactiveCommand], in which case we should suppress the warning + if (declaredSymbol is IMethodSymbol methodSymbol + && semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveCommandAttributeType) is INamedTypeSymbol reactiveCommandSymbol + && methodSymbol.HasAttributeWithType(reactiveCommandSymbol)) + { + context.ReportSuppression(Suppression.Create(ReactiveCommandDoesNotAccessInstanceData, diagnostic)); } } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor.cs index ec524f3b..c43941e4 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Diagnostics/Suppressions/ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.Immutable; @@ -25,31 +25,34 @@ public sealed class ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor : D public override void ReportSuppressions(SuppressionAnalysisContext context) { foreach (var diagnostic in context.ReportedDiagnostics) + { + var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + + // RCS1169 can report either the complete declaration or a nested variable span. + var fieldDeclaration = syntaxNode as FieldDeclarationSyntax + ?? syntaxNode?.FirstAncestorOrSelf(); + if (fieldDeclaration is null) + { + continue; + } + + var semanticModel = context.GetSemanticModel(fieldDeclaration.SyntaxTree); + var reactiveSymbol = semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType); + if (reactiveSymbol is null) { - var syntaxNode = diagnostic.Location.SourceTree?.GetRoot(context.CancellationToken).FindNode(diagnostic.Location.SourceSpan); + continue; + } - // RCS1169 can report either the complete declaration or a nested variable span. - var fieldDeclaration = syntaxNode as FieldDeclarationSyntax - ?? syntaxNode?.FirstAncestorOrSelf(); - if (fieldDeclaration is not null) + foreach (var variable in fieldDeclaration.Declaration.Variables) + { + if (semanticModel.GetDeclaredSymbol(variable, context.CancellationToken) is not IFieldSymbol fieldSymbol || !fieldSymbol.HasAttributeWithType(reactiveSymbol)) { - var semanticModel = context.GetSemanticModel(fieldDeclaration.SyntaxTree); - var reactiveSymbol = semanticModel.Compilation.GetTypeByMetadataName(AttributeDefinitions.ReactiveAttributeType); - if (reactiveSymbol is null) - { - continue; - } - - foreach (var variable in fieldDeclaration.Declaration.Variables) - { - if (semanticModel.GetDeclaredSymbol(variable, context.CancellationToken) is IFieldSymbol fieldSymbol - && fieldSymbol.HasAttributeWithType(reactiveSymbol)) - { - context.ReportSuppression(Suppression.Create(ReactiveFieldsShouldNotBeReadOnly, diagnostic)); - break; - } - } + continue; } + + context.ReportSuppression(Suppression.Create(ReactiveFieldsShouldNotBeReadOnly, diagnostic)); + break; } } + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/IViewForGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/IViewForGenerator.cs new file mode 100644 index 00000000..c7859e24 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/IViewForGenerator.cs @@ -0,0 +1,389 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using System.Threading; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; +using ReactiveUI.SourceGenerators.Extensions; +using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; + +namespace ReactiveUI.SourceGenerators; + +/// Makes a partial UI control implement IViewFor<TViewModel>, with a bindable ViewModel property. +[Generator(LanguageNames.CSharp)] +public sealed class IViewForGenerator : IIncrementalGenerator +{ + /// Gets the fully qualified name used in generated-code metadata. + internal static readonly string GeneratorName = typeof(IViewForGenerator).FullName!; + + /// Gets the assembly version used in generated-code metadata. + internal static readonly string GeneratorVersion = typeof(IViewForGenerator).Assembly.GetName().Version.ToString(); + + /// The using every view file starts with; IViewFor itself is named in full. + private const string ReactiveUINamespace = "ReactiveUI"; + + /// The modifier that opens each generated public member. + private const string PublicModifier = "public "; + + /// The GeneratedCode attribute stamped on the generated view model property, built once. + private static readonly string GeneratedCodeAttribute = GeneratorName.GeneratedCodeAttribute(GeneratorVersion); + + /// + public void Initialize(IncrementalGeneratorInitializationContext context) + { + // The generic IViewFor and the IViewFor(string) forms are different metadata names, so each has its own + // ForAttributeWithMetadataName; both share one predicate and one transform. Only a partial class can take the + // generated members, so anything else is rejected from syntax before any binding. + Func predicate = static (node, _) => + node is ClassDeclarationSyntax { AttributeLists.Count: > 0 } declaration && declaration.Modifiers.Any(SyntaxKind.PartialKeyword); + Func transform = static (context, token) => GetClassInfo(context, token); + var named = context.SyntaxProvider.ForAttributeWithMetadataName(AttributeDefinitions.IViewForAttributeType, predicate, transform).Collect(); + var generic = context.SyntaxProvider.ForAttributeWithMetadataName(AttributeDefinitions.IViewForGenericAttributeType, predicate, transform).Collect(); + var types = named.Combine(generic) + .SelectMany(static (pair, _) => Join(pair.Left, pair.Right)) + .GroupByTarget(static info => info.TargetInfo) + .WithTrackingName(TrackingNames.ViewForTypes); + + // View registration is not generated here; ReactiveUI.Binding's view locator registers views. The interface is + // named in full from the compilation's references, so it binds without a using for ReactiveUI.Binding. + context.RegisterSourceOutput(types.Combine(context.ReactiveUiIntegration()), static (context, input) => + { + var info = input.Left[0]; + + // Only a supported UI framework base type gets a source. + if (GenerateSource(info, input.Right.ViewNamespace) is not { } source) + { + return; + } + + context.AddSource($"{info.TargetInfo.FileHintName}.IViewFor.g.cs", source); + }); + } + + /// Joins the views found through each attribute form, dropping the targets that were declined. + /// The views marked [IViewFor("...")]. + /// The views marked [IViewFor<T>]. + /// The views. + private static IViewForInfo[] Join(ImmutableArray named, ImmutableArray generic) + { + var views = new List(named.Length + generic.Length); + foreach (var info in named) + { + if (info is not null) + { + views.Add(info); + } + } + + foreach (var info in generic) + { + if (info is not null) + { + views.Add(info); + } + } + + return views.ToArray(); + } + + /// Creates the generation model for an annotated class declaration. + /// The Roslyn context for the annotated declaration. + /// The cancellation token. + /// The generation model, or when the target is unsupported. + private static IViewForInfo? GetClassInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + token.ThrowIfCancellationRequested(); + if (context.TargetSymbol is not INamedTypeSymbol classSymbol) + { + return default; + } + + var viewModelTypeName = GetViewModelTypeName(context.Attributes[0]); + if (string.IsNullOrWhiteSpace(viewModelTypeName)) + { + return default; + } + + token.ThrowIfCancellationRequested(); + return new(TargetInfo.From(classSymbol), viewModelTypeName!, GetBaseType(classSymbol)); + } + + /// Reads the view model type an [IViewFor] names, by type argument or by the text it was given. + /// The attribute. + /// The view model type name, or when the attribute names none. + private static string? GetViewModelTypeName(AttributeData attributeData) + { + if (attributeData.AttributeClass is { IsGenericType: true, TypeArguments.Length: > 0 } attributeClass) + { + return attributeClass.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + } + + using var arguments = attributeData.GetConstructorArguments().GetEnumerator(); + return arguments.MoveNext() ? arguments.Current : null; + } + + /// Identifies the supported UI framework represented by a class symbol. + /// The class symbol to inspect. + /// The matching supported base type, or . + private static IViewForBaseType GetBaseType(INamedTypeSymbol classSymbol) + { + var baseType = classSymbol.BaseType; + if (baseType is null) + { + return IViewForBaseType.None; + } + + if (baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("System.Windows.Forms")) + { + return IViewForBaseType.WinForms; + } + + if (baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("System.Windows")) + { + return IViewForBaseType.Wpf; + } + + if (baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("Microsoft.UI.Xaml")) + { + return IViewForBaseType.WinUI; + } + + if (baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("Microsoft.Maui")) + { + return IViewForBaseType.Maui; + } + + if (baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("Avalonia")) + { + return IViewForBaseType.Avalonia; + } + + return baseType.HasOrInheritsFromFullyQualifiedMetadataNameStartingWith("Windows.UI.Xaml") + ? IViewForBaseType.Uno + : IViewForBaseType.None; + } + + /// Generates the partial type source for a supported IViewFor target. + /// The generation model. + /// The qualified namespace declaring IViewFor. + /// The generated source, or for unsupported types. + private static string? GenerateSource(IViewForInfo info, string viewNamespace) + { + var writer = info.BaseType switch + { + IViewForBaseType.Wpf => BeginDependencyPropertyFile("System.Windows"), + IViewForBaseType.WinUI => BeginDependencyPropertyFile("Microsoft.UI.Xaml"), + IViewForBaseType.Uno => BeginDependencyPropertyFile("Windows.UI.Xaml"), + IViewForBaseType.WinForms => BeginFile().Using(ReactiveUINamespace).Using("System.ComponentModel"), + IViewForBaseType.Avalonia => BeginFile().Using("System").Using(ReactiveUINamespace).Using("Avalonia").Using("Avalonia.Controls"), + IViewForBaseType.Maui => BeginFile().Using("System").Using(ReactiveUINamespace).Using("Microsoft.Maui.Controls"), + _ => null, + }; + + if (writer is null) + { + return null; + } + + // Only the dependency-property file opens with the usual pragma pair; the others restore nullability first. + if (info.BaseType is not (IViewForBaseType.Wpf or IViewForBaseType.WinUI or IViewForBaseType.Uno)) + { + _ = writer.Line("#nullable restore").Line("#pragma warning disable").BlankLine(); + } + + var target = info.TargetInfo; + var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); + WriteTypeDeclaration(writer, info, viewNamespace, info.BaseType != IViewForBaseType.Maui); + if (info.BaseType == IViewForBaseType.WinForms) + { + WriteWinFormsMembers(writer, info.ViewModelTypeName, viewNamespace); + } + else if (info.BaseType == IViewForBaseType.Avalonia) + { + WriteAvaloniaMembers(writer, info, viewNamespace); + } + else if (info.BaseType == IViewForBaseType.Maui) + { + WriteMauiMembers(writer, info.ViewModelTypeName, viewNamespace); + } + else + { + WriteDependencyPropertyMembers(writer, info, viewNamespace); + } + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Rents a writer and writes the auto-generated marker every view file starts with. + /// The writer. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter BeginFile() => SourceWriter.Rent().AutoGenerated(); + + /// Starts a WPF, WinUI or Uno view file, whose imports differ only in the XAML namespace. + /// The namespace declaring DependencyProperty. + /// The writer, after the file's header. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static SourceWriter BeginDependencyPropertyFile(string xamlNamespace) => + BeginFile() + .Using(ReactiveUINamespace) + .Using(xamlNamespace) + .BlankLine() + .DisableWarningsEnableNullable() + .BlankLine(); + + /// Opens the view's partial declaration implementing IViewFor. + /// The writer, at the level of the view's declaration. + /// The generation model. + /// The qualified namespace declaring IViewFor. + /// Whether the declaration carries a summary doc comment. + private static void WriteTypeDeclaration(SourceWriter writer, IViewForInfo info, string viewNamespace, bool includeSummary) + { + var target = info.TargetInfo; + if (includeSummary) + { + _ = writer.Line("/// ") + .Append("/// Partial class for the ").Append(target.TargetName).Line(" which contains ReactiveUI IViewFor initialization.") + .Line("/// "); + } + + _ = writer.ExcludeFromCodeCoverage() + .BeginPartialType(target).Append(" : ").Append(viewNamespace).Append(".IViewFor<").Append(info.ViewModelTypeName).Line(">") + .OpenBlock(); + } + + /// Writes the members of a WPF, WinUI or Uno view, backed by a dependency property. + /// The writer, at the level of the view's members. + /// The generation model. + /// The qualified namespace declaring IViewFor. + private static void WriteDependencyPropertyMembers(SourceWriter writer, IViewForInfo info, string viewNamespace) + { + var viewModelType = info.ViewModelTypeName; + _ = writer.Lines(""" + /// + /// The view model dependency property. + /// + """) + .Line(GeneratedCodeAttribute) + .Append("public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(nameof(ViewModel), typeof(") + .Append(viewModelType).Append("), typeof(").Append(info.TargetInfo.TargetName).Line("), new PropertyMetadata(null));") + .BlankLine(); + WriteViewModelMembers(writer, viewModelType, string.Empty, viewNamespace); + } + + /// Writes the members of a Windows Forms view, backed by an auto-property. + /// The writer, at the level of the view's members. + /// The view model's type name. + /// The qualified namespace declaring IViewFor. + private static void WriteWinFormsMembers(SourceWriter writer, string viewModelType, string viewNamespace) => + _ = writer.Lines(""" + /// + [Category("ReactiveUI")] + [Description("The ViewModel.")] + [Bindable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + """) + .Line(GeneratedCodeAttribute) + .Append(PublicModifier).Append(viewModelType).Line("? ViewModel {get; set; }") + .BlankLine() + .InheritDoc() + .Append("object? ").Append(viewNamespace).Append(".IViewFor.ViewModel {get => ViewModel; set => ViewModel = (").Append(viewModelType).Line("? )value; }"); + + /// Writes the members of an Avalonia view, backed by a styled property kept in step with the data context. + /// The writer, at the level of the view's members. + /// The generation model. + /// The qualified namespace declaring IViewFor. + private static void WriteAvaloniaMembers(SourceWriter writer, IViewForInfo info, string viewNamespace) + { + var viewModelType = info.ViewModelTypeName; + _ = writer.Lines(""" + /// + /// The view model dependency property. + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("AvaloniaProperty", "AVP1002", Justification = "Generic avalonia property is expected here.")] + """) + .Append("public static readonly StyledProperty<").Append(viewModelType) + .Append("?> ViewModelProperty = AvaloniaProperty.Register<").Append(info.TargetInfo.TargetName).Append(", ").Append(viewModelType) + .Line(">(nameof(ViewModel));") + .BlankLine(); + WriteViewModelMembers(writer, viewModelType, "?", viewNamespace); + _ = writer.BlankLine() + .Lines(""" + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + { + base.OnPropertyChanged(change); + + if (change.Property == DataContextProperty) + { + """) + .Indent().Indent() + .Append("if (ReferenceEquals(change.OldValue, ViewModel) && change.NewValue is null or ").Append(viewModelType).Line(")") + .Outdent().Outdent() + .Lines(""" + { + SetCurrentValue(ViewModelProperty, change.NewValue); + } + } + else if (change.Property == ViewModelProperty) + { + if (ReferenceEquals(change.OldValue, DataContext)) + { + SetCurrentValue(DataContextProperty, change.NewValue); + } + } + } + """); + } + + /// Writes the members of a MAUI view, backed by a bindable property kept in step with the binding context. + /// The writer, at the level of the view's members. + /// The view model's type name. + /// The qualified namespace declaring IViewFor. + private static void WriteMauiMembers(SourceWriter writer, string viewModelType, string viewNamespace) + { + _ = writer.Append("public static readonly BindableProperty ViewModelProperty = BindableProperty.Create(nameof(ViewModel), typeof(") + .Append(viewModelType).Append("), typeof(").Append(viewNamespace).Append(".IViewFor<").Append(viewModelType).Append(">), default(").Append(viewModelType) + .Line("), BindingMode.OneWay, propertyChanged: OnViewModelChanged);") + .BlankLine(); + WriteViewModelMembers(writer, viewModelType, "?", viewNamespace); + _ = writer.BlankLine() + .InheritDoc() + .Line("protected override void OnBindingContextChanged()") + .OpenBlock() + .Line("base.OnBindingContextChanged();") + .Append("ViewModel = BindingContext as ").Append(viewModelType).EndStatement() + .CloseBlock() + .BlankLine() + .Line("private static void OnViewModelChanged(BindableObject bindableObject, object oldValue, object newValue) => bindableObject.BindingContext = newValue;"); + } + + /// Writes the binding root and the typed and untyped ViewModel properties over ViewModelProperty. + /// The writer, at the level of the view's members. + /// The view model's type name. + /// The annotation after the view model type: ?, or empty. + /// The qualified namespace declaring IViewFor. + private static void WriteViewModelMembers(SourceWriter writer, string viewModelType, string nullableSuffix, string viewNamespace) => + _ = writer.Lines(""" + /// + /// Gets the binding root view model. + /// + """) + .Append(PublicModifier).Append(viewModelType).Append(nullableSuffix).Line(" BindingRoot => ViewModel;") + .BlankLine() + .InheritDoc() + .Append(PublicModifier).Append(viewModelType).Append(nullableSuffix).Append(" ViewModel { get => (").Append(viewModelType).Append(nullableSuffix) + .Line(")GetValue(ViewModelProperty); set => SetValue(ViewModelProperty, value); }") + .BlankLine() + .InheritDoc() + .Append("object? ").Append(viewNamespace).Append(".IViewFor.ViewModel { get => ViewModel; set => ViewModel = (").Append(viewModelType).Append(nullableSuffix).Line(")value; }"); +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForBaseType.cs b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForBaseType.cs new file mode 100644 index 00000000..d8ae53ef --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForBaseType.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.SourceGenerators.Models; + +/// Identifies the UI framework base type implemented by an IViewFor target. +internal enum IViewForBaseType +{ + /// No supported base type was found. + None = 0, + + /// The target is a Windows Presentation Foundation control. + Wpf = 1, + + /// The target is a WinUI control. + WinUI = 2, + + /// The target is a Uno Platform control. + Uno = 3, + + /// The target is a Windows Forms control. + WinForms = 4, + + /// The target is an Avalonia control. + Avalonia = 5, + + /// The target is a .NET MAUI control. + Maui = 6, +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForInfo.cs new file mode 100644 index 00000000..548a5707 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Roslyn/IViewFor/Models/IViewForInfo.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.SourceGenerators.Models; + +/// Contains the information needed to generate an IViewFor implementation. +/// The annotated target type. +/// The fully qualified view model type name. +/// The supported UI framework base type. +internal sealed record IViewForInfo( + TargetInfo TargetInfo, + string ViewModelTypeName, + IViewForBaseType BaseType); diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/Models/PropertyInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/Models/PropertyInfo.cs index 3ebdecc6..0877c4f0 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/Models/PropertyInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/Models/PropertyInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators.Helpers; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.Execute.cs deleted file mode 100644 index 2969bf82..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.Execute.cs +++ /dev/null @@ -1,486 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Threading; -using Microsoft.CodeAnalysis; -#if ROSYLN_412 || ROSYLN_500 -using Microsoft.CodeAnalysis.CSharp; -#endif -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; -using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; - -namespace ReactiveUI.SourceGenerators; - -/// Generates ReactiveUI-compatible properties from attributed fields and partial properties. -/// -public sealed partial class ReactiveGenerator -{ - /// Gets the fully-qualified name emitted in generated-code attributes. - internal static readonly string GeneratorName = typeof(ReactiveGenerator).FullName!; - - /// Gets the generator assembly version emitted in generated-code attributes. - internal static readonly string GeneratorVersion = typeof(ReactiveGenerator).Assembly.GetName().Version.ToString(); - - /// The access-modifier value for an internal setter. - private const int InternalSetModifier = 2; - - /// The access-modifier value for a private setter. - private const int PrivateSetModifier = 3; - - /// The access-modifier value for a protected-internal setter. - private const int ProtectedInternalSetModifier = 4; - - /// The access-modifier value for a private-protected setter. - private const int PrivateProtectedSetModifier = 5; - - /// The access-modifier value for an init-only setter. - private const int InitSetModifier = 6; - - /// The inheritance value for an override property. - private const int OverrideInheritanceModifier = 2; - - /// The inheritance value for a new property. - private const int NewInheritanceModifier = 3; - - /// The GeneratedCode attribute stamped on every generated property, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); -#if ROSYLN_412 || ROSYLN_500 - /// Gets metadata for an attributed partial property. - /// The generator attribute context. - /// The cancellation token. - /// The property metadata, or when the property is unsupported. - private static Result? GetPropertyInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) - { - using var builder = ImmutableArrayBuilder.Rent(); - var symbol = context.TargetSymbol; - var attributeData = context.Attributes[0]; - - if (symbol is not IPropertySymbol propertySymbol || !propertySymbol.IsPartialDefinition || propertySymbol.IsStatic) - { - return default; - } - - if (!propertySymbol.IsTargetTypeValid()) - { - builder.Add( - InvalidReactiveObjectError, - propertySymbol, - propertySymbol.ContainingType, - propertySymbol.Name); - return new(default, builder.ToImmutable()); - } - - return new(CreatePartialPropertyInfo(context, propertySymbol, attributeData, builder, token), builder.ToImmutable()); - } - - /// Creates metadata for a valid attributed partial property. - /// The generator attribute context. - /// The attributed property symbol. - /// The reactive attribute. - /// The diagnostic builder. - /// The cancellation token. - /// The generated property metadata. - private static PropertyInfo CreatePartialPropertyInfo( - in GeneratorAttributeSyntaxContext context, - IPropertySymbol propertySymbol, - AttributeData attributeData, - ImmutableArrayBuilder builder, - CancellationToken token) - { - token.ThrowIfCancellationRequested(); - var propertyAccessModifier = GetAccessibilityText(propertySymbol.DeclaredAccessibility); - var setAccessModifier = GetSetAccessModifier(propertySymbol, propertyAccessModifier); - var inheritance = GetPropertyInheritance(propertySymbol); - var fieldName = GetPartialPropertyFieldName(context, propertySymbol); - propertySymbol.GetNullabilityInfo(context.SemanticModel, out var isReferenceTypeOrUnconstraindTypeParameter, out var includeMemberNotNullOnSetAccessor); - context.GetForwardedAttributes(builder, propertySymbol, ((PropertyDeclarationSyntax)context.TargetNode).AttributeLists, token, out var forwardedAttributesString); - token.ThrowIfCancellationRequested(); - return new( - TargetInfo.From(propertySymbol.ContainingType), - propertySymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(), - fieldName, - propertySymbol.Name, - isReferenceTypeOrUnconstraindTypeParameter, - includeMemberNotNullOnSetAccessor, - forwardedAttributesString, - setAccessModifier, - inheritance, - propertySymbol.IsRequired ? "required " : string.Empty, - true, - propertyAccessModifier, - GetAlsoNotifyValues(attributeData, propertySymbol.Name, context.SemanticModel, token), - context.TargetNode.HasDocumentationComment() ? GetXmlDocumentation(propertySymbol, token) : string.Empty); - } - - /// Gets normalized C# accessibility text. - /// The Roslyn accessibility value. - /// The corresponding C# accessibility text. - private static string GetAccessibilityText(Accessibility accessibility) - { - var text = accessibility.ToString().ToLowerInvariant(); - return text.Contains("protectedandinternal", StringComparison.Ordinal) - ? "private protected" - : text.Replace("and", " ").Replace("or", " "); - } - - /// Gets the generated setter modifier for a partial property. - /// The property symbol. - /// The generated property modifier. - /// The setter modifier text. - private static string GetSetAccessModifier(IPropertySymbol propertySymbol, string propertyAccessModifier) - { - var setAccessModifier = $"{GetAccessibilityText(propertySymbol.SetMethod?.DeclaredAccessibility ?? Accessibility.Public)} set"; - return setAccessModifier == "public set" || setAccessModifier == $"{propertyAccessModifier} set" - ? "set" - : setAccessModifier; - } - - /// Gets the inheritance modifier for a partial property. - /// The partial property symbol. - /// The inheritance modifier text. - private static string GetPropertyInheritance(IPropertySymbol propertySymbol) - { - if (propertySymbol.IsVirtual) - { - return " virtual"; - } - - return propertySymbol.IsOverride ? " override" : string.Empty; - } - - /// Gets the backing-field name used for an attributed partial property. - /// The generator attribute context. - /// The property symbol. - /// The field name supported by the target language version. - private static string GetPartialPropertyFieldName(in GeneratorAttributeSyntaxContext context, IPropertySymbol propertySymbol) => - context.SemanticModel.Compilation is CSharpCompilation { LanguageVersion: > LanguageVersion.CSharp13 } - ? "field" - : propertySymbol.GetGeneratedFieldName(); - - /// Formats symbol XML documentation for insertion into generated source. - /// The documented symbol. - /// The cancellation token. - /// The formatted documentation, or an empty string. - private static string GetXmlDocumentation(ISymbol symbol, CancellationToken token) - { - var xmlDocumentation = symbol.GetDocumentationCommentXml(cancellationToken: token) ?? string.Empty; - if (xmlDocumentation.Length == 0) - { - return string.Empty; - } - - var lines = xmlDocumentation.Split('\n'); - if (lines.Length < 3) - { - return string.Empty; - } - - // The first and the last two lines are the envelope around the documentation. - const int XmlMemberEnvelopeLineCount = 2; - var builder = PooledBuilder.Rent(xmlDocumentation.Length); - for (var index = 1; index < lines.Length - XmlMemberEnvelopeLineCount; index++) - { - if (index > 1) - { - _ = builder.Append('\n'); - } - - _ = builder.Append("/// ").Append(lines[index].Trim()); - } - - return PooledBuilder.ToStringAndReturn(builder); - } -#endif - - /// Gets the observable method information. - /// The context. - /// The token. - /// - /// The value. - /// - private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) - { - using var builder = ImmutableArrayBuilder.Rent(); - var attributeData = context.Attributes[0]; - - if (context.TargetSymbol is not IFieldSymbol fieldSymbol || !fieldSymbol.IsTargetTypeValid()) - { - if (context.TargetSymbol is not IFieldSymbol invalidFieldSymbol) - { - return default; - } - - builder.Add( - InvalidReactiveObjectError, - invalidFieldSymbol, - invalidFieldSymbol.ContainingType, - invalidFieldSymbol.Name); - return new(default, builder.ToImmutable()); - } - - var propertyInfo = CreateFieldPropertyInfo(context, fieldSymbol, attributeData, builder, token); - return propertyInfo is null ? new(default, builder.ToImmutable()) : new(propertyInfo, builder.ToImmutable()); - } - - /// Creates metadata for a valid attributed field. - /// The generator attribute context. - /// The attributed field symbol. - /// The reactive attribute. - /// The diagnostic builder. - /// The cancellation token. - /// The generated property metadata, or for a name collision. - private static PropertyInfo? CreateFieldPropertyInfo( - in GeneratorAttributeSyntaxContext context, - IFieldSymbol fieldSymbol, - AttributeData attributeData, - ImmutableArrayBuilder builder, - CancellationToken token) - { - var propertyName = fieldSymbol.GetGeneratedPropertyName(); - if (fieldSymbol.Name == propertyName) - { - builder.Add(ReactivePropertyNameCollisionError, fieldSymbol, fieldSymbol.ContainingType, fieldSymbol.Name); - return null; - } - - token.ThrowIfCancellationRequested(); - fieldSymbol.GetNullabilityInfo(context.SemanticModel, out var isReferenceTypeOrUnconstraindTypeParameter, out var includeMemberNotNullOnSetAccessor); - context.GetForwardedAttributes(builder, fieldSymbol, ((FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!).AttributeLists, token, out var forwardedAttributesString); - token.ThrowIfCancellationRequested(); - return new( - TargetInfo.From(fieldSymbol.ContainingType), - fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(), - fieldSymbol.Name, - propertyName, - isReferenceTypeOrUnconstraindTypeParameter, - includeMemberNotNullOnSetAccessor, - forwardedAttributesString, - GetFieldSetAccessModifier(attributeData), - GetFieldInheritance(attributeData), - attributeData.GetNamedArgument("UseRequired") ? "required " : string.Empty, - false, - "public", - GetAlsoNotifyValues(attributeData, propertyName, context.SemanticModel, token), - string.Empty); - } - - /// Gets the generated setter modifier for an attributed field. - /// The reactive attribute. - /// The setter modifier text. - private static string GetFieldSetAccessModifier(AttributeData attributeData) => - attributeData.GetNamedArgument("SetModifier") switch - { - 1 => "protected set", - InternalSetModifier => "internal set", - PrivateSetModifier => "private set", - ProtectedInternalSetModifier => "protected internal set", - PrivateProtectedSetModifier => "private protected set", - InitSetModifier => "init", - _ => "set", - }; - - /// Gets the generated inheritance modifier for an attributed field. - /// The reactive attribute. - /// The inheritance modifier text. - private static string GetFieldInheritance(AttributeData attributeData) => - attributeData.GetNamedArgument("Inheritance") switch - { - 1 => " virtual", - OverrideInheritanceModifier => " override", - NewInheritanceModifier => " new", - _ => string.Empty, - }; - - /// Generates the partial declaration holding one type's reactive properties. - /// The properties the type declares, all sharing one . - /// The selected ReactiveUI API surface. - /// The file's text. - private static string GenerateSource(EquatableArray properties, ReactiveUiIntegration integration) - { - var target = properties[0].TargetInfo; - var writer = SourceWriter.Rent() - .AutoGenerated() - .Lines(integration.UsingDirectives) - .BlankLine() - .DisableWarningsEnableNullable() - .BlankLine(); - - var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); - _ = writer.OpenPartialType(target); - for (var i = 0; i < properties.Count; i++) - { - if (i > 0) - { - _ = writer.BlankLine(); - } - - WriteProperty(writer, properties[i]); - } - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes one reactive property, and the backing field a partial property needs below C# 14. - /// The writer, at the level of the type's members. - /// The property. - private static void WriteProperty(SourceWriter writer, PropertyInfo propertyInfo) - { - var getFieldName = propertyInfo.FieldName; - var setFieldName = getFieldName == "value" ? "this.value" : getFieldName; - - if (propertyInfo.IsProperty && getFieldName != "field") - { - WriteLines(writer, propertyInfo.ForwardedAttributes); - _ = writer.Append("private ").Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Append(getFieldName).EndStatement(); - } - - WriteDocumentation(writer, propertyInfo, getFieldName); - _ = writer.Line(GeneratedCodeAttribute).ExcludeFromCodeCoverage(); - if (!propertyInfo.IsProperty) - { - WriteLines(writer, propertyInfo.ForwardedAttributes); - } - - _ = writer.Append(propertyInfo.PropertyAccessModifier).Append(propertyInfo.Inheritance).Append(' ').Append(propertyInfo.UseRequired); - if (propertyInfo.IsProperty) - { - _ = writer.Append("partial "); - } - - _ = writer.Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Line(propertyInfo.PropertyName) - .OpenBlock() - .Append("get => ").Append(getFieldName).EndStatement(); - - if (propertyInfo.IncludeMemberNotNullOnSetAccessor || propertyInfo.IsReferenceTypeOrUnconstrainedTypeParameter) - { - _ = writer.Append("[global::System.Diagnostics.CodeAnalysis.MemberNotNull(\"").Append(setFieldName).Line("\")]"); - } - - _ = writer.Line(propertyInfo.SetAccessModifier) - .OpenBlock() - .Append("this.RaiseAndSetIfChanged(ref ").Append(setFieldName).Line(", value);"); - - foreach (var propertyName in propertyInfo.AlsoNotify.AsImmutableArray()) - { - _ = writer.Append("this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));"); - } - - _ = writer.CloseBlock().CloseBlock(); - } - - /// Writes a property's documentation: the partial property's own, or an inheritdoc of its source member. - /// The writer. - /// The property. - /// The field the getter reads. - private static void WriteDocumentation(SourceWriter writer, PropertyInfo propertyInfo, string getFieldName) - { - if (!propertyInfo.IsProperty) - { - _ = writer.InheritDoc(getFieldName); - return; - } - - _ = string.IsNullOrWhiteSpace(propertyInfo.XmlComment) - ? writer.InheritDoc(propertyInfo.PropertyName) - : writer.Lines(propertyInfo.XmlComment!); - } - - /// Writes each line on its own line at the writer's level. - /// The writer. - /// The lines, such as forwarded attributes. - private static void WriteLines(SourceWriter writer, EquatableArray lines) - { - foreach (var line in lines.AsImmutableArray()) - { - _ = writer.Line(line); - } - } - - /// Gets the additional property names notified by a reactive property update. - /// The reactive attribute. - /// The generated property name. - /// The semantic model for syntax fallback. - /// The cancellation token. - /// The additional property names. - private static EquatableArray GetAlsoNotifyValues(AttributeData attributeData, string propertyName, SemanticModel semanticModel, CancellationToken token) - { - using var builder = ImmutableArrayBuilder.Rent(); - - // Read in place rather than through an iterator: the names arrive as the params array's elements. - foreach (var argument in attributeData.ConstructorArguments) - { - if (argument.Kind != TypedConstantKind.Array) - { - AddAlsoNotifyValue(builder, argument.Value as string, propertyName); - continue; - } - - foreach (var item in argument.Values) - { - AddAlsoNotifyValue(builder, item.Value as string, propertyName); - } - } - - if (builder.Count == 0 && attributeData.ApplicationSyntaxReference?.GetSyntax(token) is AttributeSyntax attributeSyntax) - { - AddAlsoNotifySyntaxArguments(builder, attributeSyntax, propertyName, semanticModel, token); - } - - return builder.ToImmutable(); - } - - /// Adds valid notification values represented in attribute syntax. - /// The destination builder. - /// The attribute syntax. - /// The generated property name. - /// The semantic model for constant lookup. - /// The cancellation token. - private static void AddAlsoNotifySyntaxArguments( - ImmutableArrayBuilder builder, - AttributeSyntax attributeSyntax, - string propertyName, - SemanticModel semanticModel, - CancellationToken token) - { - if (attributeSyntax.ArgumentList is not { Arguments: var arguments }) - { - return; - } - - foreach (var argument in arguments) - { - // Named arguments such as SetModifier are settings, never notified property names; evaluating them - // would make the compiler bind and flow-analyse each one. - if (argument.NameEquals is not null) - { - continue; - } - - var constantValue = semanticModel.GetConstantValue(argument.Expression, token); - AddAlsoNotifyValue(builder, constantValue.HasValue ? constantValue.Value as string : null, propertyName); - } - } - - /// Adds one valid additional-notification value. - /// The destination builder. - /// The candidate property name. - /// The generated property name. - private static void AddAlsoNotifyValue(ImmutableArrayBuilder builder, string? value, string propertyName) - { - if (string.IsNullOrWhiteSpace(value) || string.Equals(value, propertyName, StringComparison.Ordinal)) - { - return; - } - - builder.Add(value!); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.cs index b5a164c0..eb9bd6f6 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/Reactive/ReactiveGenerator.cs @@ -1,22 +1,62 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Threading; using Microsoft.CodeAnalysis; +#if ROSYLN_412 || ROSYLN_500 +using Microsoft.CodeAnalysis.CSharp; +#endif using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; using ReactiveUI.SourceGenerators.Models; +using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; namespace ReactiveUI.SourceGenerators; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class ReactiveGenerator : IIncrementalGenerator +public sealed class ReactiveGenerator : IIncrementalGenerator { + /// Gets the fully-qualified name emitted in generated-code attributes. + internal static readonly string GeneratorName = typeof(ReactiveGenerator).FullName!; + + /// Gets the generator assembly version emitted in generated-code attributes. + internal static readonly string GeneratorVersion = typeof(ReactiveGenerator).Assembly.GetName().Version.ToString(); + +#if ROSYLN_412 || ROSYLN_500 /// The number of accessors required for a partial property. private const int RequiredAccessorCount = 2; +#endif + + /// The access-modifier value for an internal setter. + private const int InternalSetModifier = 2; + + /// The access-modifier value for a private setter. + private const int PrivateSetModifier = 3; + + /// The access-modifier value for a protected-internal setter. + private const int ProtectedInternalSetModifier = 4; + + /// The access-modifier value for a private-protected setter. + private const int PrivateProtectedSetModifier = 5; + + /// The access-modifier value for an init-only setter. + private const int InitSetModifier = 6; + + /// The inheritance value for an override property. + private const int OverrideInheritanceModifier = 2; + + /// The inheritance value for a new property. + private const int NewInheritanceModifier = 3; + + /// The GeneratedCode attribute stamped on every generated property, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -97,4 +137,437 @@ private static void RegisterOutputs( context.AddSource(properties[0].TargetInfo.FileHintName + hintSuffix, GenerateSource(properties, input.Right)); }); } +#if ROSYLN_412 || ROSYLN_500 + /// Gets metadata for an attributed partial property. + /// The generator attribute context. + /// The cancellation token. + /// The property metadata, or when the property is unsupported. + private static Result? GetPropertyInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + using var builder = ArrayBuilder.Rent(); + var symbol = context.TargetSymbol; + var attributeData = context.Attributes[0]; + + if (symbol is not IPropertySymbol propertySymbol || !propertySymbol.IsPartialDefinition || propertySymbol.IsStatic) + { + return default; + } + + if (!propertySymbol.IsTargetTypeValid()) + { + builder.Add( + InvalidReactiveObjectError, + propertySymbol, + propertySymbol.ContainingType, + propertySymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + return new(CreatePartialPropertyInfo(context, propertySymbol, attributeData, builder, token), builder.ToEquatableArray()); + } + + /// Creates metadata for a valid attributed partial property. + /// The generator attribute context. + /// The attributed property symbol. + /// The reactive attribute. + /// The diagnostic builder. + /// The cancellation token. + /// The generated property metadata. + private static PropertyInfo CreatePartialPropertyInfo( + in GeneratorAttributeSyntaxContext context, + IPropertySymbol propertySymbol, + AttributeData attributeData, + ArrayBuilder builder, + CancellationToken token) + { + token.ThrowIfCancellationRequested(); + var propertyAccessModifier = GetAccessibilityText(propertySymbol.DeclaredAccessibility); + var setAccessModifier = GetSetAccessModifier(propertySymbol, propertyAccessModifier); + var inheritance = GetPropertyInheritance(propertySymbol); + var fieldName = GetPartialPropertyFieldName(context, propertySymbol); + propertySymbol.GetNullabilityInfo(context.SemanticModel, out var isReferenceTypeOrUnconstraindTypeParameter, out var includeMemberNotNullOnSetAccessor); + context.GetForwardedAttributes(builder, propertySymbol, ((PropertyDeclarationSyntax)context.TargetNode).AttributeLists, token, out var forwardedAttributesString); + token.ThrowIfCancellationRequested(); + return new( + TargetInfo.From(propertySymbol.ContainingType), + propertySymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(), + fieldName, + propertySymbol.Name, + isReferenceTypeOrUnconstraindTypeParameter, + includeMemberNotNullOnSetAccessor, + forwardedAttributesString, + setAccessModifier, + inheritance, + propertySymbol.IsRequired ? "required " : string.Empty, + true, + propertyAccessModifier, + GetAlsoNotifyValues(attributeData, propertySymbol.Name, context.SemanticModel, token), + context.TargetNode.HasDocumentationComment() ? GetXmlDocumentation(propertySymbol, token) : string.Empty); + } + + /// Gets normalized C# accessibility text. + /// The Roslyn accessibility value. + /// The corresponding C# accessibility text. + private static string GetAccessibilityText(Accessibility accessibility) + { + var text = accessibility.ToString().ToLowerInvariant(); + return text.Contains("protectedandinternal", StringComparison.Ordinal) + ? "private protected" + : text.Replace("and", " ").Replace("or", " "); + } + + /// Gets the generated setter modifier for a partial property. + /// The property symbol. + /// The generated property modifier. + /// The setter modifier text. + private static string GetSetAccessModifier(IPropertySymbol propertySymbol, string propertyAccessModifier) + { + var setAccessModifier = $"{GetAccessibilityText(propertySymbol.SetMethod?.DeclaredAccessibility ?? Accessibility.Public)} set"; + return setAccessModifier == "public set" || setAccessModifier == $"{propertyAccessModifier} set" + ? "set" + : setAccessModifier; + } + + /// Gets the inheritance modifier for a partial property. + /// The partial property symbol. + /// The inheritance modifier text. + private static string GetPropertyInheritance(IPropertySymbol propertySymbol) + { + if (propertySymbol.IsVirtual) + { + return " virtual"; + } + + return propertySymbol.IsOverride ? " override" : string.Empty; + } + + /// Gets the backing-field name used for an attributed partial property. + /// The generator attribute context. + /// The property symbol. + /// The field name supported by the target language version. + private static string GetPartialPropertyFieldName(in GeneratorAttributeSyntaxContext context, IPropertySymbol propertySymbol) => + context.SemanticModel.Compilation is CSharpCompilation { LanguageVersion: > LanguageVersion.CSharp13 } + ? "field" + : propertySymbol.GetGeneratedFieldName(); + + /// Formats symbol XML documentation for insertion into generated source. + /// The documented symbol. + /// The cancellation token. + /// The formatted documentation, or an empty string. + private static string GetXmlDocumentation(ISymbol symbol, CancellationToken token) + { + var xmlDocumentation = symbol.GetDocumentationCommentXml(cancellationToken: token) ?? string.Empty; + if (xmlDocumentation.Length == 0) + { + return string.Empty; + } + + var lines = xmlDocumentation.Split('\n'); + if (lines.Length < 3) + { + return string.Empty; + } + + // The first and the last two lines are the envelope around the documentation. + const int XmlMemberEnvelopeLineCount = 2; + var builder = PooledBuilder.Rent(xmlDocumentation.Length); + for (var index = 1; index < lines.Length - XmlMemberEnvelopeLineCount; index++) + { + if (index > 1) + { + _ = builder.Append('\n'); + } + + _ = builder.Append("/// ").Append(lines[index].Trim()); + } + + return PooledBuilder.ToStringAndReturn(builder); + } +#endif + + /// Gets the observable method information. + /// The context. + /// The token. + /// + /// The value. + /// + private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + using var builder = ArrayBuilder.Rent(); + var attributeData = context.Attributes[0]; + + if (context.TargetSymbol is not IFieldSymbol fieldSymbol || !fieldSymbol.IsTargetTypeValid()) + { + if (context.TargetSymbol is not IFieldSymbol invalidFieldSymbol) + { + return default; + } + + builder.Add( + InvalidReactiveObjectError, + invalidFieldSymbol, + invalidFieldSymbol.ContainingType, + invalidFieldSymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + var propertyInfo = CreateFieldPropertyInfo(context, fieldSymbol, attributeData, builder, token); + return propertyInfo is null ? new(default, builder.ToEquatableArray()) : new(propertyInfo, builder.ToEquatableArray()); + } + + /// Creates metadata for a valid attributed field. + /// The generator attribute context. + /// The attributed field symbol. + /// The reactive attribute. + /// The diagnostic builder. + /// The cancellation token. + /// The generated property metadata, or for a name collision. + private static PropertyInfo? CreateFieldPropertyInfo( + in GeneratorAttributeSyntaxContext context, + IFieldSymbol fieldSymbol, + AttributeData attributeData, + ArrayBuilder builder, + CancellationToken token) + { + var propertyName = fieldSymbol.GetGeneratedPropertyName(); + if (fieldSymbol.Name == propertyName) + { + builder.Add(ReactivePropertyNameCollisionError, fieldSymbol, fieldSymbol.ContainingType, fieldSymbol.Name); + return null; + } + + token.ThrowIfCancellationRequested(); + fieldSymbol.GetNullabilityInfo(context.SemanticModel, out var isReferenceTypeOrUnconstraindTypeParameter, out var includeMemberNotNullOnSetAccessor); + context.GetForwardedAttributes(builder, fieldSymbol, ((FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!).AttributeLists, token, out var forwardedAttributesString); + token.ThrowIfCancellationRequested(); + return new( + TargetInfo.From(fieldSymbol.ContainingType), + fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(), + fieldSymbol.Name, + propertyName, + isReferenceTypeOrUnconstraindTypeParameter, + includeMemberNotNullOnSetAccessor, + forwardedAttributesString, + GetFieldSetAccessModifier(attributeData), + GetFieldInheritance(attributeData), + attributeData.GetNamedArgument("UseRequired") ? "required " : string.Empty, + false, + "public", + GetAlsoNotifyValues(attributeData, propertyName, context.SemanticModel, token), + string.Empty); + } + + /// Gets the generated setter modifier for an attributed field. + /// The reactive attribute. + /// The setter modifier text. + private static string GetFieldSetAccessModifier(AttributeData attributeData) => + attributeData.GetNamedArgument("SetModifier") switch + { + 1 => "protected set", + InternalSetModifier => "internal set", + PrivateSetModifier => "private set", + ProtectedInternalSetModifier => "protected internal set", + PrivateProtectedSetModifier => "private protected set", + InitSetModifier => "init", + _ => "set", + }; + + /// Gets the generated inheritance modifier for an attributed field. + /// The reactive attribute. + /// The inheritance modifier text. + private static string GetFieldInheritance(AttributeData attributeData) => + attributeData.GetNamedArgument("Inheritance") switch + { + 1 => " virtual", + OverrideInheritanceModifier => " override", + NewInheritanceModifier => " new", + _ => string.Empty, + }; + + /// Generates the partial declaration holding one type's reactive properties. + /// The properties the type declares, all sharing one . + /// The selected ReactiveUI API surface. + /// The file's text. + private static string GenerateSource(EquatableArray properties, ReactiveUiIntegration integration) + { + var target = properties[0].TargetInfo; + var writer = SourceWriter.Rent() + .AutoGenerated() + .Lines(integration.UsingDirectives) + .BlankLine() + .DisableWarningsEnableNullable() + .BlankLine(); + + var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); + _ = writer.OpenPartialType(target); + for (var i = 0; i < properties.Length; i++) + { + if (i > 0) + { + _ = writer.BlankLine(); + } + + WriteProperty(writer, properties[i]); + } + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes one reactive property, and the backing field a partial property needs below C# 14. + /// The writer, at the level of the type's members. + /// The property. + private static void WriteProperty(SourceWriter writer, PropertyInfo propertyInfo) + { + var getFieldName = propertyInfo.FieldName; + var setFieldName = getFieldName == "value" ? "this.value" : getFieldName; + + if (propertyInfo.IsProperty && getFieldName != "field") + { + WriteLines(writer, propertyInfo.ForwardedAttributes); + _ = writer.Append("private ").Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Append(getFieldName).EndStatement(); + } + + WriteDocumentation(writer, propertyInfo, getFieldName); + _ = writer.Line(GeneratedCodeAttribute).ExcludeFromCodeCoverage(); + if (!propertyInfo.IsProperty) + { + WriteLines(writer, propertyInfo.ForwardedAttributes); + } + + _ = writer.Append(propertyInfo.PropertyAccessModifier).Append(propertyInfo.Inheritance).Append(' ').Append(propertyInfo.UseRequired); + if (propertyInfo.IsProperty) + { + _ = writer.Append("partial "); + } + + _ = writer.Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Line(propertyInfo.PropertyName) + .OpenBlock() + .Append("get => ").Append(getFieldName).EndStatement(); + + if (propertyInfo.IncludeMemberNotNullOnSetAccessor || propertyInfo.IsReferenceTypeOrUnconstrainedTypeParameter) + { + _ = writer.Append("[global::System.Diagnostics.CodeAnalysis.MemberNotNull(\"").Append(setFieldName).Line("\")]"); + } + + _ = writer.Line(propertyInfo.SetAccessModifier) + .OpenBlock() + .Append("this.RaiseAndSetIfChanged(ref ").Append(setFieldName).Line(", value);"); + + foreach (var propertyName in propertyInfo.AlsoNotify.AsSpan()) + { + _ = writer.Append("this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));"); + } + + _ = writer.CloseBlock().CloseBlock(); + } + + /// Writes a property's documentation: the partial property's own, or an inheritdoc of its source member. + /// The writer. + /// The property. + /// The field the getter reads. + private static void WriteDocumentation(SourceWriter writer, PropertyInfo propertyInfo, string getFieldName) + { + if (!propertyInfo.IsProperty) + { + _ = writer.InheritDoc(getFieldName); + return; + } + + _ = string.IsNullOrWhiteSpace(propertyInfo.XmlComment) + ? writer.InheritDoc(propertyInfo.PropertyName) + : writer.Lines(propertyInfo.XmlComment!); + } + + /// Writes each line on its own line at the writer's level. + /// The writer. + /// The lines, such as forwarded attributes. + private static void WriteLines(SourceWriter writer, EquatableArray lines) + { + foreach (var line in lines.AsSpan()) + { + _ = writer.Line(line); + } + } + + /// Gets the additional property names notified by a reactive property update. + /// The reactive attribute. + /// The generated property name. + /// The semantic model for syntax fallback. + /// The cancellation token. + /// The additional property names. + private static EquatableArray GetAlsoNotifyValues(AttributeData attributeData, string propertyName, SemanticModel semanticModel, CancellationToken token) + { + using var builder = ArrayBuilder.Rent(); + + // Read in place rather than through an iterator: the names arrive as the params array's elements. + foreach (var argument in attributeData.ConstructorArguments) + { + if (argument.Kind != TypedConstantKind.Array) + { + AddAlsoNotifyValue(builder, argument.Value as string, propertyName); + continue; + } + + foreach (var item in argument.Values) + { + AddAlsoNotifyValue(builder, item.Value as string, propertyName); + } + } + + if (builder.Count == 0 && attributeData.ApplicationSyntaxReference?.GetSyntax(token) is AttributeSyntax attributeSyntax) + { + AddAlsoNotifySyntaxArguments(builder, attributeSyntax, propertyName, semanticModel, token); + } + + return builder.ToEquatableArray(); + } + + /// Adds valid notification values represented in attribute syntax. + /// The destination builder. + /// The attribute syntax. + /// The generated property name. + /// The semantic model for constant lookup. + /// The cancellation token. + private static void AddAlsoNotifySyntaxArguments( + ArrayBuilder builder, + AttributeSyntax attributeSyntax, + string propertyName, + SemanticModel semanticModel, + CancellationToken token) + { + if (attributeSyntax.ArgumentList is not { Arguments: var arguments }) + { + return; + } + + foreach (var argument in arguments) + { + // Named arguments such as SetModifier are settings, never notified property names; evaluating them + // would make the compiler bind and flow-analyse each one. + if (argument.NameEquals is not null) + { + continue; + } + + var constantValue = semanticModel.GetConstantValue(argument.Expression, token); + AddAlsoNotifyValue(builder, constantValue.HasValue ? constantValue.Value as string : null, propertyName); + } + } + + /// Adds one valid additional-notification value. + /// The destination builder. + /// The candidate property name. + /// The generated property name. + private static void AddAlsoNotifyValue(ArrayBuilder builder, string? value, string propertyName) + { + if (string.IsNullOrWhiteSpace(value) || string.Equals(value, propertyName, StringComparison.Ordinal)) + { + return; + } + + builder.Add(value!); + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/Models/ReactiveCollectionFieldInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/Models/ReactiveCollectionFieldInfo.cs index f047ba2c..5f8c1795 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/Models/ReactiveCollectionFieldInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/Models/ReactiveCollectionFieldInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators.Helpers; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.Execute.cs deleted file mode 100644 index 20020dda..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.Execute.cs +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections.Immutable; -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; -using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; - -namespace ReactiveUI.SourceGenerators; - -/// Implements ReactiveCollection source generation. -public sealed partial class ReactiveCollectionGenerator -{ - /// Gets the generator type name used in generated-code metadata. - internal static readonly string GeneratorName = typeof(ReactiveCollectionGenerator).FullName!; - - /// Gets the generator assembly version used in generated-code metadata. - internal static readonly string GeneratorVersion = typeof(ReactiveCollectionGenerator).Assembly.GetName().Version.ToString(); - - /// The suffix of the field that holds a property's collection-changed handler. - private const string HandlerFieldSuffix = "CollectionChangedHandler"; - - /// The handler type the generated field holds. - private const string HandlerType = "global::System.Collections.Specialized.NotifyCollectionChangedEventHandler"; - - /// The GeneratedCode attribute stamped on the generated properties, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); - - /// Creates metadata for a ReactiveCollection-annotated field. - /// The attribute syntax context for the field. - /// The cancellation token for the generator operation. - /// The field metadata and diagnostics, or when not applicable. - private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) - { - using var builder = ImmutableArrayBuilder.Rent(); - var symbol = context.TargetSymbol; - token.ThrowIfCancellationRequested(); - - if (symbol is not IFieldSymbol fieldSymbol) - { - return default; - } - - // Validate the target type - if (!fieldSymbol.IsTargetTypeValid()) - { - builder.Add( - InvalidReactiveObjectError, - fieldSymbol, - fieldSymbol.ContainingType, - fieldSymbol.Name); - return new(default, builder.ToImmutable()); - } - - return CreateResult(context, fieldSymbol, builder, token); - } - - /// Creates metadata for a validated ReactiveCollection field. - /// The attribute syntax context for the field. - /// The validated field symbol. - /// The diagnostics collected while processing the field. - /// The cancellation token for the generator operation. - /// The field metadata and diagnostics. - private static Result CreateResult( - in GeneratorAttributeSyntaxContext context, - IFieldSymbol fieldSymbol, - ImmutableArrayBuilder builder, - CancellationToken token) - { - token.ThrowIfCancellationRequested(); - - var fieldName = fieldSymbol.Name; - var propertyName = fieldSymbol.GetGeneratedPropertyName(); - - // Check for name collisions - if (fieldName == propertyName) - { - builder.Add( - ReactivePropertyNameCollisionError, - fieldSymbol, - fieldSymbol.ContainingType, - fieldSymbol.Name); - return new(default, builder.ToImmutable()); - } - - return CreateMetadata(context, fieldSymbol, fieldName, propertyName, builder, token); - } - - /// Creates the generated property metadata for a non-conflicting field. - /// The attribute syntax context for the field. - /// The validated field symbol. - /// The source field name. - /// The generated property name. - /// The diagnostics collected while processing the field. - /// The cancellation token for the generator operation. - /// The field metadata and diagnostics. - private static Result CreateMetadata( - in GeneratorAttributeSyntaxContext context, - IFieldSymbol fieldSymbol, - string fieldName, - string propertyName, - ImmutableArrayBuilder builder, - CancellationToken token) - { - var typeNameWithNullabilityAnnotations = fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(); - var fieldDeclaration = (FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!; - var initializer = GetInitializer(fieldDeclaration); - - token.ThrowIfCancellationRequested(); - - context.GetForwardedAttributes( - builder, - fieldSymbol, - fieldDeclaration.AttributeLists, - token, - out var forwardedPropertyAttributes); - - token.ThrowIfCancellationRequested(); - - // Get the nullability info for the property - var (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor) = - GetNullabilityInfo(fieldSymbol, context.SemanticModel); - - token.ThrowIfCancellationRequested(); - - // Get the containing type info - var targetInfo = TargetInfo.From(fieldSymbol.ContainingType); - - return new( - new( - targetInfo, - typeNameWithNullabilityAnnotations, - fieldName, - propertyName, - initializer, - isReferenceTypeOrUnconstraindTypeParameter, - includeMemberNotNullOnSetAccessor, - forwardedPropertyAttributes), - builder.ToImmutable()); - } - - /// Gets nullability metadata for a generated reactive collection property. - /// The source field symbol. - /// The semantic model for the source field. - /// The reference-type and member-not-null metadata. - private static (bool IsReferenceType, bool IncludeMemberNotNull) GetNullabilityInfo( - IFieldSymbol fieldSymbol, - SemanticModel semanticModel) - { - fieldSymbol.GetNullabilityInfo( - semanticModel, - out var isReferenceTypeOrUnconstraindTypeParameter, - out var includeMemberNotNullOnSetAccessor); - return (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor); - } - - /// Gets the first declared field initializer. - /// The source field declaration. - /// The initializer text, when present. - private static string? GetInitializer(FieldDeclarationSyntax fieldDeclaration) - { - var variables = fieldDeclaration.Declaration.Variables; - return variables.Count > 0 ? variables[0].Initializer?.ToFullString() : null; - } - - /// Generates the partial declaration holding one type's reactive collection properties. - /// The properties the type declares, all sharing one . - /// The selected ReactiveUI API surface. - /// The file's text. - private static string GenerateSource(EquatableArray properties, ReactiveUiIntegration integration) - { - var target = properties[0].TargetInfo; - var writer = SourceWriter.Rent() - .AutoGenerated() - .Lines(integration.UsingDirectives) - .BlankLine() - .DisableWarningsEnableNullable(); - - var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); - - _ = writer.OpenPartialType(target); - for (var i = 0; i < properties.Count; i++) - { - if (i > 0) - { - _ = writer.BlankLine(); - } - - WriteProperty(writer, properties[i]); - } - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes one reactive collection property, which re-raises the collection's changes as property changes. - /// The writer, at the level of the type's members. - /// The property. - /// - /// The handler is created once per property and kept in a field, so the setter unsubscribes the same instance it - /// subscribed: from the collection being replaced, not the new one. A handler made per call could never be removed, - /// so every replacement left one more subscribed and allocated three more. - /// - private static void WriteProperty(SourceWriter writer, ReactiveCollectionFieldInfo propertyInfo) - { - var fieldName = propertyInfo.FieldName; - var propertyName = propertyInfo.PropertyName; - - _ = writer.Append("private ").Append(HandlerType).Append("? ").Append(fieldName).Append(HandlerFieldSuffix).EndStatement() - .BlankLine() - .InheritDoc(fieldName) - .Line(GeneratedCodeAttribute) - .ExcludeFromCodeCoverage(); - foreach (var attribute in propertyInfo.ForwardedAttributes.AsImmutableArray()) - { - _ = writer.Line(attribute); - } - - _ = writer.Append("public ").Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Line(propertyName) - .OpenBlock() - .Append("get => ").Append(fieldName).EndStatement() - .Line("set") - .OpenBlock() - .Append("var handler = ").Append(fieldName).Append(HandlerFieldSuffix) - .Append(" ??= (_, _) => this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));") - .Append("if (").Append(fieldName).Line(" != null)") - .OpenBlock() - .Append(fieldName).Line(".CollectionChanged -= handler;") - .CloseBlock() - .BlankLine() - .Append(fieldName).Line(" = value;") - .Append("this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));") - .BlankLine() - .Line("if (value != null)") - .OpenBlock() - .Line("value.CollectionChanged += handler;") - .CloseBlock() - .CloseBlock() - .CloseBlock(); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.cs index 37b2f0ca..e8907068 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCollection/ReactiveCollectionGenerator.cs @@ -1,19 +1,41 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Runtime.CompilerServices; +using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; +using static ReactiveUI.SourceGenerators.Diagnostics.DiagnosticDescriptors; namespace ReactiveUI.SourceGenerators; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class ReactiveCollectionGenerator : IIncrementalGenerator +public sealed class ReactiveCollectionGenerator : IIncrementalGenerator { + /// Gets the generator type name used in generated-code metadata. + internal static readonly string GeneratorName = typeof(ReactiveCollectionGenerator).FullName!; + + /// Gets the generator assembly version used in generated-code metadata. + internal static readonly string GeneratorVersion = typeof(ReactiveCollectionGenerator).Assembly.GetName().Version.ToString(); + + /// The suffix of the field that holds a property's collection-changed handler. + private const string HandlerFieldSuffix = "CollectionChangedHandler"; + + /// The handler type the generated field holds. + private const string HandlerType = "global::System.Collections.Specialized.NotifyCollectionChangedEventHandler"; + + /// The GeneratedCode attribute stamped on the generated properties, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Initialize(IncrementalGeneratorInitializationContext context) => RunReactiveCollectionFromField(in context); /// Registers the pipeline that generates properties from reactive collection fields. @@ -48,4 +70,219 @@ private static void RunReactiveCollectionFromField(in IncrementalGeneratorInitia context.RegisterSourceOutput(types.Combine(context.ReactiveUiIntegration()), static (context, input) => context.AddSource($"{input.Left[0].TargetInfo.FileHintName}.ReactiveCollections.g.cs", GenerateSource(input.Left, input.Right))); } + + /// Creates metadata for a ReactiveCollection-annotated field. + /// The attribute syntax context for the field. + /// The cancellation token for the generator operation. + /// The field metadata and diagnostics, or when not applicable. + private static Result? GetVariableInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + using var builder = ArrayBuilder.Rent(); + var symbol = context.TargetSymbol; + token.ThrowIfCancellationRequested(); + + if (symbol is not IFieldSymbol fieldSymbol) + { + return default; + } + + // Validate the target type + if (!fieldSymbol.IsTargetTypeValid()) + { + builder.Add( + InvalidReactiveObjectError, + fieldSymbol, + fieldSymbol.ContainingType, + fieldSymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + return CreateResult(context, fieldSymbol, builder, token); + } + + /// Creates metadata for a validated ReactiveCollection field. + /// The attribute syntax context for the field. + /// The validated field symbol. + /// The diagnostics collected while processing the field. + /// The cancellation token for the generator operation. + /// The field metadata and diagnostics. + private static Result CreateResult( + in GeneratorAttributeSyntaxContext context, + IFieldSymbol fieldSymbol, + ArrayBuilder builder, + CancellationToken token) + { + token.ThrowIfCancellationRequested(); + + var fieldName = fieldSymbol.Name; + var propertyName = fieldSymbol.GetGeneratedPropertyName(); + + // Check for name collisions + if (fieldName == propertyName) + { + builder.Add( + ReactivePropertyNameCollisionError, + fieldSymbol, + fieldSymbol.ContainingType, + fieldSymbol.Name); + return new(default, builder.ToEquatableArray()); + } + + return CreateMetadata(context, fieldSymbol, fieldName, propertyName, builder, token); + } + + /// Creates the generated property metadata for a non-conflicting field. + /// The attribute syntax context for the field. + /// The validated field symbol. + /// The source field name. + /// The generated property name. + /// The diagnostics collected while processing the field. + /// The cancellation token for the generator operation. + /// The field metadata and diagnostics. + private static Result CreateMetadata( + in GeneratorAttributeSyntaxContext context, + IFieldSymbol fieldSymbol, + string fieldName, + string propertyName, + ArrayBuilder builder, + CancellationToken token) + { + var typeNameWithNullabilityAnnotations = fieldSymbol.Type.GetFullyQualifiedNameWithNullabilityAnnotations(); + var fieldDeclaration = (FieldDeclarationSyntax)context.TargetNode.Parent!.Parent!; + var initializer = GetInitializer(fieldDeclaration); + + token.ThrowIfCancellationRequested(); + + context.GetForwardedAttributes( + builder, + fieldSymbol, + fieldDeclaration.AttributeLists, + token, + out var forwardedPropertyAttributes); + + token.ThrowIfCancellationRequested(); + + // Get the nullability info for the property + var (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor) = + GetNullabilityInfo(fieldSymbol, context.SemanticModel); + + token.ThrowIfCancellationRequested(); + + // Get the containing type info + var targetInfo = TargetInfo.From(fieldSymbol.ContainingType); + + return new( + new( + targetInfo, + typeNameWithNullabilityAnnotations, + fieldName, + propertyName, + initializer, + isReferenceTypeOrUnconstraindTypeParameter, + includeMemberNotNullOnSetAccessor, + forwardedPropertyAttributes), + builder.ToEquatableArray()); + } + + /// Gets nullability metadata for a generated reactive collection property. + /// The source field symbol. + /// The semantic model for the source field. + /// The reference-type and member-not-null metadata. + private static (bool IsReferenceType, bool IncludeMemberNotNull) GetNullabilityInfo( + IFieldSymbol fieldSymbol, + SemanticModel semanticModel) + { + fieldSymbol.GetNullabilityInfo( + semanticModel, + out var isReferenceTypeOrUnconstraindTypeParameter, + out var includeMemberNotNullOnSetAccessor); + return (isReferenceTypeOrUnconstraindTypeParameter, includeMemberNotNullOnSetAccessor); + } + + /// Gets the first declared field initializer. + /// The source field declaration. + /// The initializer text, when present. + private static string? GetInitializer(FieldDeclarationSyntax fieldDeclaration) + { + var variables = fieldDeclaration.Declaration.Variables; + return variables.Count > 0 ? variables[0].Initializer?.ToFullString() : null; + } + + /// Generates the partial declaration holding one type's reactive collection properties. + /// The properties the type declares, all sharing one . + /// The selected ReactiveUI API surface. + /// The file's text. + private static string GenerateSource(EquatableArray properties, ReactiveUiIntegration integration) + { + var target = properties[0].TargetInfo; + var writer = SourceWriter.Rent() + .AutoGenerated() + .Lines(integration.UsingDirectives) + .BlankLine() + .DisableWarningsEnableNullable(); + + var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); + + _ = writer.OpenPartialType(target); + for (var i = 0; i < properties.Length; i++) + { + if (i > 0) + { + _ = writer.BlankLine(); + } + + WriteProperty(writer, properties[i]); + } + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes one reactive collection property, which re-raises the collection's changes as property changes. + /// The writer, at the level of the type's members. + /// The property. + /// + /// The handler is created once per property and kept in a field, so the setter unsubscribes the same instance it + /// subscribed: from the collection being replaced, not the new one. A handler made per call could never be removed, + /// so every replacement left one more subscribed and allocated three more. + /// + private static void WriteProperty(SourceWriter writer, ReactiveCollectionFieldInfo propertyInfo) + { + var fieldName = propertyInfo.FieldName; + var propertyName = propertyInfo.PropertyName; + + _ = writer.Append("private ").Append(HandlerType).Append("? ").Append(fieldName).Append(HandlerFieldSuffix).EndStatement() + .BlankLine() + .InheritDoc(fieldName) + .Line(GeneratedCodeAttribute) + .ExcludeFromCodeCoverage(); + foreach (var attribute in propertyInfo.ForwardedAttributes.AsSpan()) + { + _ = writer.Line(attribute); + } + + _ = writer.Append("public ").Append(propertyInfo.TypeNameWithNullabilityAnnotations).Append(' ').Line(propertyName) + .OpenBlock() + .Append("get => ").Append(fieldName).EndStatement() + .Line("set") + .OpenBlock() + .Append("var handler = ").Append(fieldName).Append(HandlerFieldSuffix) + .Append(" ??= (_, _) => this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));") + .Append("if (").Append(fieldName).Line(" != null)") + .OpenBlock() + .Append(fieldName).Line(".CollectionChanged -= handler;") + .CloseBlock() + .BlankLine() + .Append(fieldName).Line(" = value;") + .Append("this.RaisePropertyChanged(nameof(").Append(propertyName).Line("));") + .BlankLine() + .Line("if (value != null)") + .OpenBlock() + .Line("value.CollectionChanged += handler;") + .CloseBlock() + .CloseBlock() + .CloseBlock(); + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CanExecuteTypeInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CanExecuteTypeInfo.cs index 9f4ee7ac..f353939f 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CanExecuteTypeInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CanExecuteTypeInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; @@ -8,11 +8,11 @@ namespace ReactiveUI.SourceGenerators.Models; internal enum CanExecuteTypeInfo { /// A property that provides an observable Boolean value. - PropertyObservable, + PropertyObservable = 0, /// A method that returns an observable Boolean value. - MethodObservable, + MethodObservable = 1, /// A field that provides an observable Boolean value. - FieldObservable, + FieldObservable = 2, } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CommandInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CommandInfo.cs index ffa7366d..d560a772 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CommandInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/Models/CommandInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators.Helpers; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.Execute.cs deleted file mode 100644 index 504b3c41..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.Execute.cs +++ /dev/null @@ -1,699 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; - -namespace ReactiveUI.SourceGenerators; - -/// Generates properties that expose methods as ReactiveUI commands. -/// -public partial class ReactiveCommandGenerator -{ - /// Gets the fully-qualified name emitted in generated-code attributes. - internal static readonly string GeneratorName = typeof(ReactiveCommandGenerator).FullName!; - - /// Gets the generator assembly version emitted in generated-code attributes. - internal static readonly string GeneratorVersion = typeof(ReactiveCommandGenerator).Assembly.GetName().Version.ToString(); - - /// The ReactiveUI command type name. - private const string ReactiveCommand = "ReactiveCommand"; - - /// The factory method used for synchronous commands. - private const string Create = ".Create"; - - /// The factory method used for observable commands. - private const string CreateO = ".CreateFromObservable"; - - /// The factory method used for task-backed commands. - private const string CreateT = ".CreateFromTask"; - - /// The factory method used for synchronous commands that execute on a background scheduler. - private const string CreateB = ".CreateRunInBackground"; - - /// The attribute property used to specify the can-execute member. - private const string CanExecute = "CanExecute"; - - /// The attribute property used to request background execution. - private const string RunInBackground = "RunInBackground"; - - /// The method that starts a task-returning command on the thread pool. - private const string TaskRun = "global::System.Threading.Tasks.Task.Run"; - - /// The cancellation token type a task-returning command method may take last. - private const string CancellationTokenType = "global::System.Threading.CancellationToken"; - - /// The access-modifier value for internal generated commands. - private const int InternalAccessibility = 2; - - /// The access-modifier value for private generated commands. - private const int PrivateAccessibility = 3; - - /// The access-modifier value for protected-internal generated commands. - private const int ProtectedInternalAccessibility = 4; - - /// The access-modifier value for private-protected generated commands. - private const int PrivateProtectedAccessibility = 5; - - /// The length of the conventional m_ field prefix. - private const int CommandNamePrefixLength = 2; - - /// The suffix an asynchronous method's name drops in its command's name. - private const string AsyncSuffix = "Async"; - - /// The suffix every generated command property and field name ends with. - private const string CommandSuffix = "Command"; - - /// The GeneratedCode attribute stamped on every generated command, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); - - /// Gets the metadata needed to generate a command for an attributed method. - /// The generator attribute context. - /// The cancellation token. - /// The command metadata, or when the method is unsupported. - private static CommandInfo? GetMethodInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) => - context.TargetSymbol is IMethodSymbol methodSymbol - ? CreateCommandInfo(context, methodSymbol, context.Attributes[0], token) - : default; - - /// Creates the metadata for a supported command method. - /// The generator attribute context. - /// The attributed method symbol. - /// The command attribute. - /// The cancellation token. - /// The command metadata, or when the method has unsupported parameters. - private static CommandInfo? CreateCommandInfo( - in GeneratorAttributeSyntaxContext context, - IMethodSymbol methodSymbol, - AttributeData attributeData, - CancellationToken token) - { - var (isTask, isObservable, realReturnType, isReturnTypeVoid) = GetCommandReturnInfo(methodSymbol, context.SemanticModel.Compilation); - var methodParameters = GetCommandParameters(methodSymbol, isTask); - if (methodParameters.Length > 1) - { - return default; - } - - token.ThrowIfCancellationRequested(); - TryGetCanExecuteExpressionType(methodSymbol, attributeData, out var canExecuteObservableName, out var canExecuteTypeInfo); - token.ThrowIfCancellationRequested(); - var outputScheduler = GetScheduler(context, methodSymbol, attributeData, ReactiveCommandRules.OutputSchedulerArgument); - token.ThrowIfCancellationRequested(); - var backgroundScheduler = GetScheduler(context, methodSymbol, attributeData, ReactiveCommandRules.BackgroundSchedulerArgument); - var runInBackground = backgroundScheduler is not null || attributeData.GetNamedArgument(RunInBackground); - token.ThrowIfCancellationRequested(); - var accessModifier = GetAccessModifier(attributeData); - token.ThrowIfCancellationRequested(); - using var builder = ImmutableArrayBuilder.Rent(); - var methodSyntax = (MethodDeclarationSyntax)context.TargetNode; - context.GetForwardedAttributes( - builder, - methodSymbol, - methodSyntax.AttributeLists, - token, - out var forwardedPropertyAttributes); - token.ThrowIfCancellationRequested(); - var targetInfo = TargetInfo.From(methodSymbol.ContainingType); - token.ThrowIfCancellationRequested(); - var argumentTypeString = methodParameters.IsEmpty - ? null - : methodParameters[0].Type.GetFullyQualifiedNameWithNullabilityAnnotations(); - token.ThrowIfCancellationRequested(); - - return new( - targetInfo, - methodSymbol.Name, - realReturnType.GetFullyQualifiedNameWithNullabilityAnnotations(), - argumentTypeString, - isTask, - isReturnTypeVoid, - isObservable, - canExecuteObservableName, - canExecuteTypeInfo, - outputScheduler, - runInBackground, - backgroundScheduler, - HasTrailingCancellationToken(methodSymbol), - forwardedPropertyAttributes, - accessModifier, - context.TargetNode.HasDocumentationComment() ? GetXmlDocumentation(methodSymbol, token) : string.Empty); - } - - /// Gets the relevant return-type details for a command method. - /// The command method. - /// The active compilation. - /// The async shape, unwrapped return type, and void status. - private static (bool IsTask, bool IsObservable, ITypeSymbol ReturnType, bool IsVoid) GetCommandReturnInfo(IMethodSymbol methodSymbol, Compilation compilation) - { - var isTask = methodSymbol.ReturnType.IsTaskReturnType(); - var isObservable = methodSymbol.ReturnType.IsObservableReturnType(); - var returnType = isTask || isObservable - ? methodSymbol.ReturnType.GetTaskReturnType(compilation) - : methodSymbol.ReturnType; - var isVoid = SymbolEqualityComparer.Default.Equals(returnType, compilation.GetSpecialType(SpecialType.System_Void)); - return (isTask, isObservable, returnType, isVoid); - } - - /// Gets the supported input parameters for a command method. - /// The command method. - /// Whether the method is task-backed. - /// The parameters exposed by the generated command. - private static ImmutableArray GetCommandParameters(IMethodSymbol methodSymbol, bool isTask) - { - using var builder = ImmutableArrayBuilder.Rent(); - var hasCancellationToken = false; - foreach (var parameter in methodSymbol.Parameters) - { - if (parameter.Type.ToDisplayString() == "System.Threading.CancellationToken") - { - hasCancellationToken = true; - break; - } - } - - if (isTask && hasCancellationToken && methodSymbol.Parameters.Length == 2) - { - builder.Add(methodSymbol.Parameters[0]); - } - else if (!hasCancellationToken) - { - foreach (var parameter in methodSymbol.Parameters) - { - builder.Add(parameter); - } - } - - return builder.ToImmutable(); - } - - /// Determines whether a command method takes a CancellationToken as its last parameter. - /// The command method. - /// when the last parameter is a CancellationToken. - private static bool HasTrailingCancellationToken(IMethodSymbol methodSymbol) => - !methodSymbol.Parameters.IsEmpty - && methodSymbol.Parameters[methodSymbol.Parameters.Length - 1].Type.ToDisplayString() == "System.Threading.CancellationToken"; - - /// Gets the generated command property's access modifier. - /// The command attribute. - /// The C# access-modifier text. - private static string GetAccessModifier(AttributeData attributeData) => - attributeData.GetNamedArgument("AccessModifier") switch - { - 1 => "protected", - InternalAccessibility => "internal", - PrivateAccessibility => "private", - ProtectedInternalAccessibility => "protected internal", - PrivateProtectedAccessibility => "private protected", - _ => "public", - }; - - /// Formats a method's XML documentation for insertion into generated source. - /// The documented method. - /// The cancellation token. - /// The formatted documentation, or an empty string. - private static string GetXmlDocumentation(IMethodSymbol methodSymbol, CancellationToken token) - { - var xmlDocumentation = methodSymbol.GetDocumentationCommentXml(cancellationToken: token) ?? string.Empty; - if (xmlDocumentation.Length == 0) - { - return string.Empty; - } - - var lines = xmlDocumentation.Split('\n'); - if (lines.Length < 3) - { - return string.Empty; - } - - // The first and the last two lines are the envelope around the documentation. - const int XmlMemberEnvelopeLineCount = 2; - var builder = PooledBuilder.Rent(xmlDocumentation.Length); - for (var index = 1; index < lines.Length - XmlMemberEnvelopeLineCount; index++) - { - if (index > 1) - { - _ = builder.Append('\n'); - } - - _ = builder.Append("/// ").Append(lines[index].Trim()); - } - - return PooledBuilder.ToStringAndReturn(builder); - } - - /// Generates the partial declaration holding one type's commands. - /// The commands the type declares, all sharing one . - /// The selected ReactiveUI API surface. - /// The file's text. - private static string GenerateSource(EquatableArray commands, ReactiveUiIntegration integration) - { - var target = commands[0].TargetInfo; - var writer = SourceWriter.Rent() - .AutoGenerated() - .BlankLine() - .DisableWarningsEnableNullable() - .BlankLine(); - - var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); - _ = writer.OpenPartialType(target); - for (var i = 0; i < commands.Count; i++) - { - if (i > 0) - { - _ = writer.BlankLine(); - } - - WriteCommand(writer, commands[i], integration); - } - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes one command: its lazily-created backing field and the property exposing it. - /// The writer, at the level of the type's members. - /// The command. - /// The selected ReactiveUI API surface. - private static void WriteCommand(SourceWriter writer, CommandInfo commandInfo, ReactiveUiIntegration integration) - { - var outputType = commandInfo.GetOutputTypeText(integration.VoidTypeName); - var inputType = commandInfo.GetInputTypeText(integration.VoidTypeName); - var methodName = commandInfo.MethodName; - var stemStart = GetCommandNameStem(methodName, commandInfo.IsTask, out var stemLength); - - _ = writer.Append("private "); - WriteCommandType(writer, integration, inputType, outputType); - _ = writer.Append("? "); - WriteFieldName(writer, methodName, stemStart, stemLength); - _ = writer.EndStatement().BlankLine(); - - if (!string.IsNullOrEmpty(commandInfo.XmlComment)) - { - _ = writer.Lines(commandInfo.XmlComment!); - } - - _ = writer.Line(GeneratedCodeAttribute).ExcludeFromCodeCoverage(); - foreach (var attribute in commandInfo.ForwardedPropertyAttributes.AsImmutableArray()) - { - _ = writer.Line(attribute); - } - - _ = writer.Append(commandInfo.AccessModifier).Append(' '); - WriteCommandType(writer, integration, inputType, outputType); - _ = writer.Append(' '); - WriteCommandName(writer, methodName, stemStart, stemLength); - _ = writer.Append(" { get => "); - WriteFieldName(writer, methodName, stemStart, stemLength); - _ = writer.Append(" ??= ").Append(integration.Namespace).Append('.').Append(ReactiveCommand).Append(GetCommandFactoryMethod(commandInfo)); - WriteGenericTypeArguments(writer, commandInfo, inputType, outputType); - _ = writer.Append('('); - WriteExecuteArgument(writer, commandInfo); - WriteCanExecuteArgument(writer, commandInfo); - WriteSchedulerArguments(writer, commandInfo); - _ = writer.Line("); }"); - } - - /// Writes the execute argument: the method group, or for a background task a lambda starting it on the thread pool. - /// The writer. - /// The command. - /// - /// The lambda's parameters are typed, so it selects the same factory overload the method group would: - /// (T p, CancellationToken ct) => Task.Run(() => M(p, ct), ct). - /// - private static void WriteExecuteArgument(SourceWriter writer, CommandInfo commandInfo) - { - if (!commandInfo.IsTask || !commandInfo.RunInBackground) - { - _ = writer.Append(commandInfo.MethodName); - return; - } - - var hasArgument = commandInfo.ArgumentType is not null; - var hasToken = commandInfo.HasCancellationToken; - _ = writer.Append('('); - if (hasArgument) - { - _ = writer.Append(commandInfo.ArgumentType).Append(" p"); - } - - if (hasToken) - { - _ = writer.Append(hasArgument ? ", " : null).Append(CancellationTokenType).Append(" ct"); - } - - _ = writer.Append(") => ").Append(TaskRun).Append("(() => ").Append(commandInfo.MethodName).Append('('); - if (hasArgument) - { - _ = writer.Append('p'); - } - - if (hasToken) - { - _ = writer.Append(hasArgument ? ", " : null).Append("ct"); - } - - _ = writer.Append(hasToken ? "), ct)" : "))"); - } - - /// Writes the closed command type, {namespace}.ReactiveCommand<{input}, {output}>. - /// The writer. - /// The selected ReactiveUI API surface. - /// The command input type. - /// The command output type. - private static void WriteCommandType(SourceWriter writer, ReactiveUiIntegration integration, string inputType, string outputType) => - _ = writer.Append(integration.Namespace).Append('.').Append(ReactiveCommand) - .Append('<').Append(inputType).Append(", ").Append(outputType).Append('>'); - - /// Writes the factory call's type arguments, which only a command taking a parameter needs. - /// The writer. - /// The command. - /// The command input type. - /// The command output type. - private static void WriteGenericTypeArguments(SourceWriter writer, CommandInfo commandInfo, string inputType, string outputType) - { - if (commandInfo.ArgumentType is null) - { - return; - } - - _ = writer.Append('<').Append(inputType); - if (!commandInfo.IsReturnTypeVoid) - { - _ = writer.Append(", ").Append(outputType); - } - - _ = writer.Append('>'); - } - - /// Writes the optional background- and output-scheduler arguments of a command factory call. - /// The writer. - /// The command. - /// - /// CreateRunInBackground takes the background scheduler before the output scheduler, so a synchronous - /// background command names it, as for ReactiveUI's default, whenever either is set. - /// ReactiveUI 24 has no overload taking only the execute delegate and a background scheduler, so that call also - /// names a can-execute, which ReactiveUI 23's all-optional overload accepts too. - /// - private static void WriteSchedulerArguments(SourceWriter writer, CommandInfo commandInfo) - { - var hasOutputScheduler = !string.IsNullOrEmpty(commandInfo.OutputScheduler); - if (commandInfo.RunInBackground && !commandInfo.IsTask && !commandInfo.IsObservable - && (hasOutputScheduler || !string.IsNullOrEmpty(commandInfo.BackgroundScheduler))) - { - if (!hasOutputScheduler && string.IsNullOrEmpty(commandInfo.CanExecuteObservableName)) - { - _ = writer.Append(", canExecute: null"); - } - - _ = writer.Append(", backgroundScheduler: ").Append(commandInfo.BackgroundScheduler ?? "null"); - } - - if (!hasOutputScheduler) - { - return; - } - - _ = writer.Append(", outputScheduler: ").Append(commandInfo.OutputScheduler); - } - - /// Gets the ReactiveCommand factory method for the command shape. - /// The command metadata. - /// The factory method name. - private static string GetCommandFactoryMethod(CommandInfo commandInfo) - { - if (commandInfo.IsObservable) - { - return CreateO; - } - - if (commandInfo.IsTask) - { - return CreateT; - } - - return commandInfo.RunInBackground ? CreateB : Create; - } - - /// Writes the optional can-execute argument of a command factory call. - /// The writer. - /// The command. - private static void WriteCanExecuteArgument(SourceWriter writer, CommandInfo commandInfo) - { - if (string.IsNullOrEmpty(commandInfo.CanExecuteObservableName)) - { - return; - } - - _ = writer.Append(", ") - .Append(commandInfo.CanExecuteObservableName) - .Append(commandInfo.CanExecuteTypeInfo == CanExecuteTypeInfo.MethodObservable ? "()" : null); - } - - /// Tries to get the expression type for the "CanExecute" property, if available. - /// The input instance to process. - /// The instance for . - /// The resulting can execute member name, if available. - /// The resulting expression type, if available. - private static void TryGetCanExecuteExpressionType( - IMethodSymbol methodSymbol, - AttributeData attributeData, - out string? canExecuteMemberName, - out CanExecuteTypeInfo? canExecuteTypeInfo) - { - // Get the can execute member, if any - if (!attributeData.TryGetNamedArgument(CanExecute, out string? memberName)) - { - canExecuteMemberName = null; - canExecuteTypeInfo = null; - - return; - } - - if (memberName is null) - { - canExecuteMemberName = null; - canExecuteTypeInfo = null; - return; - } - - var canExecuteSymbols = methodSymbol.ContainingType!.GetAllMembers(memberName); - var symbolCount = 0; - ISymbol? canExecuteSymbol = null; - foreach (var symbol in canExecuteSymbols) - { - symbolCount++; - canExecuteSymbol = symbol; - if (symbolCount > 1) - { - break; - } - } - - if (symbolCount == 0) - { - // Special case for when the target member is a generated property from [ObservableProperty] - if (TryGetCanExecuteMemberFromGeneratedProperty(memberName, methodSymbol.ContainingType, out canExecuteTypeInfo)) - { - canExecuteMemberName = memberName; - - return; - } - } - else if (symbolCount == 1 - && TryGetCanExecuteExpressionFromSymbol(canExecuteSymbol!, out canExecuteTypeInfo)) - { - canExecuteMemberName = memberName; - - return; - } - - canExecuteMemberName = null; - canExecuteTypeInfo = null; - } - - /// Gets the scheduler an attribute property names, as an expression generated code can use. - /// The generator attribute context. - /// The attributed command method. - /// The command attribute. - /// The attribute property naming the scheduler. - /// The scheduler expression, or when none is named or the name does not resolve. - /// A name that does not resolve is reported by the command analyzer, which applies the same rules. - private static string? GetScheduler( - in GeneratorAttributeSyntaxContext context, - IMethodSymbol methodSymbol, - AttributeData attributeData, - string argumentName) => - attributeData.TryGetNamedArgument(argumentName, out string? name) - && name is not null - && ReactiveCommandRules.TryResolveScheduler( - context.SemanticModel, - attributeData.ApplicationSyntaxReference?.Span.Start ?? context.TargetNode.SpanStart, - methodSymbol.ContainingType, - name, - out var expression) - ? expression - : null; - - /// Gets the expression type for the can execute logic, if possible. - /// The can execute member symbol (either a method or a property). - /// The resulting can execute expression type, if available. - /// Whether or not was set and the input symbol was valid. - private static bool TryGetCanExecuteExpressionFromSymbol( - ISymbol canExecuteSymbol, - [NotNullWhen(true)] out CanExecuteTypeInfo? canExecuteTypeInfo) - { - switch (canExecuteSymbol) - { - case IMethodSymbol methodSymbol when methodSymbol.ReturnType.IsObservableBoolType() && methodSymbol.Parameters.IsEmpty: - { - canExecuteTypeInfo = CanExecuteTypeInfo.MethodObservable; - return true; - } - - case IPropertySymbol { GetMethod: not null } propertySymbol when propertySymbol.Type.IsObservableBoolType(): - { - canExecuteTypeInfo = CanExecuteTypeInfo.PropertyObservable; - return true; - } - - case IFieldSymbol fieldSymbol when fieldSymbol.Type.IsObservableBoolType(): - { - canExecuteTypeInfo = CanExecuteTypeInfo.FieldObservable; - return true; - } - - default: - { - canExecuteTypeInfo = null; - return false; - } - } - } - - /// Gets the expression type for the can execute logic, if possible. - /// The member name passed to [ReactiveCommand(CanExecute = ...)]. - /// The containing type for the method annotated with [ReactiveCommand]. - /// The resulting can execute expression type, if available. - /// Whether or not was set and the input symbol was valid. - private static bool TryGetCanExecuteMemberFromGeneratedProperty( - string memberName, - INamedTypeSymbol containingType, - [NotNullWhen(true)] out CanExecuteTypeInfo? canExecuteTypeInfo) - { - foreach (var memberSymbol in containingType.GetAllMembers()) - { - // Only look for instance fields of Observable bool type - if (memberSymbol is not IFieldSymbol fieldSymbol || !fieldSymbol.Type.IsObservableBoolType()) - { - continue; - } - - // Only filter fields with the [Reactive] attribute - if (!HasReactiveAttribute(memberSymbol)) - { - continue; - } - - // Get the target property name either directly or matching the generated one - var propertyName = fieldSymbol.GetGeneratedPropertyName(); - - // If the generated property name matches, get the right expression type - if (memberName == propertyName) - { - canExecuteTypeInfo = CanExecuteTypeInfo.PropertyObservable; - - return true; - } - } - - canExecuteTypeInfo = null; - - return false; - } - - /// Determines whether a symbol has the ReactiveAttribute. - /// The symbol to inspect. - /// when the attribute is present. - private static bool HasReactiveAttribute(ISymbol symbol) - { - foreach (var attribute in symbol.GetAttributes()) - { - if (attribute.AttributeClass?.HasFullyQualifiedMetadataName(AttributeDefinitions.ReactiveAttributeType) == true) - { - return true; - } - } - - return false; - } - - /// Locates the stem of a method name that the command's property and field names are built from. - /// The source method name. - /// Whether the method is asynchronous. - /// The stem's length. - /// The index the stem starts at. - /// The stem drops an m_ or leading-underscore prefix, and an Async suffix on an asynchronous method. - private static int GetCommandNameStem(string methodName, bool isAsync, out int length) - { - var start = 0; - if (methodName.StartsWith("m_", StringComparison.Ordinal)) - { - start = CommandNamePrefixLength; - } - else - { - while (start < methodName.Length && methodName[start] == '_') - { - start++; - } - } - - length = methodName.Length - start; - if (isAsync - && length >= AsyncSuffix.Length - && string.CompareOrdinal(methodName, methodName.Length - AsyncSuffix.Length, AsyncSuffix, 0, AsyncSuffix.Length) == 0) - { - length -= AsyncSuffix.Length; - } - - return start; - } - - /// Writes the generated command property's name: the stem, capitalized, and Command. - /// The writer. - /// The source method name. - /// The index the stem starts at. - /// The stem's length. - private static void WriteCommandName(SourceWriter writer, string methodName, int stemStart, int stemLength) => - _ = writer.Append(char.ToUpper(methodName[stemStart], CultureInfo.InvariantCulture)) - .Append(methodName, stemStart + 1, stemLength - 1) - .Append(CommandSuffix); - - /// Writes the generated backing field's name: the command property's name, camel-cased behind an underscore. - /// The writer. - /// The source method name. - /// The index the stem starts at. - /// The stem's length. - private static void WriteFieldName(SourceWriter writer, string methodName, int stemStart, int stemLength) - { - var first = char.ToUpper(methodName[stemStart], CultureInfo.InvariantCulture); - _ = writer.Append('_') - .Append(char.ToLower(first, CultureInfo.InvariantCulture)) - .Append(methodName, stemStart + 1, stemLength - 1) - .Append(CommandSuffix); - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.cs index 23ae9135..1b27a484 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandGenerator.cs @@ -1,18 +1,82 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; namespace ReactiveUI.SourceGenerators; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class ReactiveCommandGenerator : IIncrementalGenerator +public sealed class ReactiveCommandGenerator : IIncrementalGenerator { + /// Gets the fully-qualified name emitted in generated-code attributes. + internal static readonly string GeneratorName = typeof(ReactiveCommandGenerator).FullName!; + + /// Gets the generator assembly version emitted in generated-code attributes. + internal static readonly string GeneratorVersion = typeof(ReactiveCommandGenerator).Assembly.GetName().Version.ToString(); + + /// The ReactiveUI command type name. + private const string ReactiveCommand = "ReactiveCommand"; + + /// The factory method used for synchronous commands. + private const string Create = ".Create"; + + /// The factory method used for observable commands. + private const string CreateO = ".CreateFromObservable"; + + /// The factory method used for task-backed commands. + private const string CreateT = ".CreateFromTask"; + + /// The factory method used for synchronous commands that execute on a background scheduler. + private const string CreateB = ".CreateRunInBackground"; + + /// The attribute property used to specify the can-execute member. + private const string CanExecute = "CanExecute"; + + /// The attribute property used to request background execution. + private const string RunInBackground = "RunInBackground"; + + /// The method that starts a task-returning command on the thread pool. + private const string TaskRun = "global::System.Threading.Tasks.Task.Run"; + + /// The cancellation token type a task-returning command method may take last. + private const string CancellationTokenType = "global::System.Threading.CancellationToken"; + + /// The access-modifier value for internal generated commands. + private const int InternalAccessibility = 2; + + /// The access-modifier value for private generated commands. + private const int PrivateAccessibility = 3; + + /// The access-modifier value for protected-internal generated commands. + private const int ProtectedInternalAccessibility = 4; + + /// The access-modifier value for private-protected generated commands. + private const int PrivateProtectedAccessibility = 5; + + /// The length of the conventional m_ field prefix. + private const int CommandNamePrefixLength = 2; + + /// The suffix an asynchronous method's name drops in its command's name. + private const string AsyncSuffix = "Async"; + + /// The suffix every generated command property and field name ends with. + private const string CommandSuffix = "Command"; + + /// The GeneratedCode attribute stamped on every generated command, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -33,4 +97,627 @@ public void Initialize(IncrementalGeneratorInitializationContext context) context.RegisterSourceOutput(types.Combine(context.ReactiveUiIntegration()), static (context, input) => context.AddSource($"{input.Left[0].TargetInfo.FileHintName}.ReactiveCommands.g.cs", GenerateSource(input.Left, input.Right))); } + + /// Gets the metadata needed to generate a command for an attributed method. + /// The generator attribute context. + /// The cancellation token. + /// The command metadata, or when the method is unsupported. + private static CommandInfo? GetMethodInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) => + context.TargetSymbol is IMethodSymbol methodSymbol + ? CreateCommandInfo(context, methodSymbol, context.Attributes[0], token) + : default; + + /// Creates the metadata for a supported command method. + /// The generator attribute context. + /// The attributed method symbol. + /// The command attribute. + /// The cancellation token. + /// The command metadata, or when the method has unsupported parameters. + private static CommandInfo? CreateCommandInfo( + in GeneratorAttributeSyntaxContext context, + IMethodSymbol methodSymbol, + AttributeData attributeData, + CancellationToken token) + { + var (isTask, isObservable, realReturnType, isReturnTypeVoid) = GetCommandReturnInfo(methodSymbol, context.SemanticModel.Compilation); + var methodParameters = GetCommandParameters(methodSymbol, isTask); + if (methodParameters.Length > 1) + { + return default; + } + + token.ThrowIfCancellationRequested(); + TryGetCanExecuteExpressionType(methodSymbol, attributeData, out var canExecuteObservableName, out var canExecuteTypeInfo); + token.ThrowIfCancellationRequested(); + var outputScheduler = GetScheduler(context, methodSymbol, attributeData, ReactiveCommandRules.OutputSchedulerArgument); + token.ThrowIfCancellationRequested(); + var backgroundScheduler = GetScheduler(context, methodSymbol, attributeData, ReactiveCommandRules.BackgroundSchedulerArgument); + var runInBackground = backgroundScheduler is not null || attributeData.GetNamedArgument(RunInBackground); + token.ThrowIfCancellationRequested(); + var accessModifier = GetAccessModifier(attributeData); + token.ThrowIfCancellationRequested(); + using var builder = ArrayBuilder.Rent(); + var methodSyntax = (MethodDeclarationSyntax)context.TargetNode; + context.GetForwardedAttributes( + builder, + methodSymbol, + methodSyntax.AttributeLists, + token, + out var forwardedPropertyAttributes); + token.ThrowIfCancellationRequested(); + var targetInfo = TargetInfo.From(methodSymbol.ContainingType); + token.ThrowIfCancellationRequested(); + var argumentTypeString = methodParameters.Length == 0 + ? null + : methodParameters[0].Type.GetFullyQualifiedNameWithNullabilityAnnotations(); + token.ThrowIfCancellationRequested(); + + return new( + targetInfo, + methodSymbol.Name, + realReturnType.GetFullyQualifiedNameWithNullabilityAnnotations(), + argumentTypeString, + isTask, + isReturnTypeVoid, + isObservable, + canExecuteObservableName, + canExecuteTypeInfo, + outputScheduler, + runInBackground, + backgroundScheduler, + HasTrailingCancellationToken(methodSymbol), + forwardedPropertyAttributes, + accessModifier, + context.TargetNode.HasDocumentationComment() ? GetXmlDocumentation(methodSymbol, token) : string.Empty); + } + + /// Gets the relevant return-type details for a command method. + /// The command method. + /// The active compilation. + /// The async shape, unwrapped return type, and void status. + private static (bool IsTask, bool IsObservable, ITypeSymbol ReturnType, bool IsVoid) GetCommandReturnInfo(IMethodSymbol methodSymbol, Compilation compilation) + { + var isTask = methodSymbol.ReturnType.IsTaskReturnType(); + var isObservable = methodSymbol.ReturnType.IsObservableReturnType(); + var returnType = isTask || isObservable + ? methodSymbol.ReturnType.GetTaskReturnType(compilation) + : methodSymbol.ReturnType; + var isVoid = SymbolEqualityComparer.Default.Equals(returnType, compilation.GetSpecialType(SpecialType.System_Void)); + return (isTask, isObservable, returnType, isVoid); + } + + /// Gets the supported input parameters for a command method. + /// The command method. + /// Whether the method is task-backed. + /// The parameters exposed by the generated command. + private static IParameterSymbol[] GetCommandParameters(IMethodSymbol methodSymbol, bool isTask) + { + using var builder = ArrayBuilder.Rent(); + var hasCancellationToken = false; + foreach (var parameter in methodSymbol.Parameters) + { + if (parameter.Type.ToDisplayString() != "System.Threading.CancellationToken") + { + continue; + } + + hasCancellationToken = true; + break; + } + + if (isTask && hasCancellationToken && methodSymbol.Parameters.Length == 2) + { + builder.Add(methodSymbol.Parameters[0]); + } + else if (!hasCancellationToken) + { + foreach (var parameter in methodSymbol.Parameters) + { + builder.Add(parameter); + } + } + + return builder.ToArray(); + } + + /// Determines whether a command method takes a CancellationToken as its last parameter. + /// The command method. + /// when the last parameter is a CancellationToken. + private static bool HasTrailingCancellationToken(IMethodSymbol methodSymbol) => + !methodSymbol.Parameters.IsEmpty + && methodSymbol.Parameters[methodSymbol.Parameters.Length - 1].Type.ToDisplayString() == "System.Threading.CancellationToken"; + + /// Gets the generated command property's access modifier. + /// The command attribute. + /// The C# access-modifier text. + private static string GetAccessModifier(AttributeData attributeData) => + attributeData.GetNamedArgument("AccessModifier") switch + { + 1 => "protected", + InternalAccessibility => "internal", + PrivateAccessibility => "private", + ProtectedInternalAccessibility => "protected internal", + PrivateProtectedAccessibility => "private protected", + _ => "public", + }; + + /// Formats a method's XML documentation for insertion into generated source. + /// The documented method. + /// The cancellation token. + /// The formatted documentation, or an empty string. + private static string GetXmlDocumentation(IMethodSymbol methodSymbol, CancellationToken token) + { + var xmlDocumentation = methodSymbol.GetDocumentationCommentXml(cancellationToken: token) ?? string.Empty; + if (xmlDocumentation.Length == 0) + { + return string.Empty; + } + + var lines = xmlDocumentation.Split('\n'); + if (lines.Length < 3) + { + return string.Empty; + } + + // The first and the last two lines are the envelope around the documentation. + const int XmlMemberEnvelopeLineCount = 2; + var builder = PooledBuilder.Rent(xmlDocumentation.Length); + for (var index = 1; index < lines.Length - XmlMemberEnvelopeLineCount; index++) + { + if (index > 1) + { + _ = builder.Append('\n'); + } + + _ = builder.Append("/// ").Append(lines[index].Trim()); + } + + return PooledBuilder.ToStringAndReturn(builder); + } + + /// Generates the partial declaration holding one type's commands. + /// The commands the type declares, all sharing one . + /// The selected ReactiveUI API surface. + /// The file's text. + private static string GenerateSource(EquatableArray commands, ReactiveUiIntegration integration) + { + var target = commands[0].TargetInfo; + var writer = SourceWriter.Rent() + .AutoGenerated() + .BlankLine() + .DisableWarningsEnableNullable() + .BlankLine(); + + var depth = writer.OpenNamespace(target.TargetNamespace) + writer.OpenContainingTypes(target.ParentInfo); + _ = writer.OpenPartialType(target); + for (var i = 0; i < commands.Length; i++) + { + if (i > 0) + { + _ = writer.BlankLine(); + } + + WriteCommand(writer, commands[i], integration); + } + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes one command: its lazily-created backing field and the property exposing it. + /// The writer, at the level of the type's members. + /// The command. + /// The selected ReactiveUI API surface. + private static void WriteCommand(SourceWriter writer, CommandInfo commandInfo, ReactiveUiIntegration integration) + { + var outputType = commandInfo.GetOutputTypeText(integration.VoidTypeName); + var inputType = commandInfo.GetInputTypeText(integration.VoidTypeName); + var methodName = commandInfo.MethodName; + var stemStart = GetCommandNameStem(methodName, commandInfo.IsTask, out var stemLength); + + _ = writer.Append("private "); + WriteCommandType(writer, integration, inputType, outputType); + _ = writer.Append("? "); + WriteFieldName(writer, methodName, stemStart, stemLength); + _ = writer.EndStatement().BlankLine(); + + if (!string.IsNullOrEmpty(commandInfo.XmlComment)) + { + _ = writer.Lines(commandInfo.XmlComment!); + } + + _ = writer.Line(GeneratedCodeAttribute).ExcludeFromCodeCoverage(); + foreach (var attribute in commandInfo.ForwardedPropertyAttributes.AsSpan()) + { + _ = writer.Line(attribute); + } + + _ = writer.Append(commandInfo.AccessModifier).Append(' '); + WriteCommandType(writer, integration, inputType, outputType); + _ = writer.Append(' '); + WriteCommandName(writer, methodName, stemStart, stemLength); + _ = writer.Append(" { get => "); + WriteFieldName(writer, methodName, stemStart, stemLength); + _ = writer.Append(" ??= ").Append(integration.Namespace).Append('.').Append(ReactiveCommand).Append(GetCommandFactoryMethod(commandInfo)); + WriteGenericTypeArguments(writer, commandInfo, inputType, outputType); + _ = writer.Append('('); + WriteExecuteArgument(writer, commandInfo); + WriteCanExecuteArgument(writer, commandInfo); + WriteSchedulerArguments(writer, commandInfo); + _ = writer.Line("); }"); + } + + /// Writes the execute argument: the method group, or for a background task a lambda starting it on the thread pool. + /// The writer. + /// The command. + /// + /// The lambda's parameters are typed, so it selects the same factory overload the method group would: + /// (T p, CancellationToken ct) => Task.Run(() => M(p, ct), ct). + /// + private static void WriteExecuteArgument(SourceWriter writer, CommandInfo commandInfo) + { + if (!commandInfo.IsTask || !commandInfo.RunInBackground) + { + _ = writer.Append(commandInfo.MethodName); + return; + } + + var hasArgument = commandInfo.ArgumentType is not null; + var hasToken = commandInfo.HasCancellationToken; + _ = writer.Append('('); + if (hasArgument) + { + _ = writer.Append(commandInfo.ArgumentType).Append(" p"); + } + + if (hasToken) + { + _ = writer.Append(hasArgument ? ", " : null).Append(CancellationTokenType).Append(" ct"); + } + + _ = writer.Append(") => ").Append(TaskRun).Append("(() => ").Append(commandInfo.MethodName).Append('('); + if (hasArgument) + { + _ = writer.Append('p'); + } + + if (hasToken) + { + _ = writer.Append(hasArgument ? ", " : null).Append("ct"); + } + + _ = writer.Append(hasToken ? "), ct)" : "))"); + } + + /// Writes the closed command type, {namespace}.ReactiveCommand<{input}, {output}>. + /// The writer. + /// The selected ReactiveUI API surface. + /// The command input type. + /// The command output type. + private static void WriteCommandType(SourceWriter writer, ReactiveUiIntegration integration, string inputType, string outputType) => + _ = writer.Append(integration.Namespace).Append('.').Append(ReactiveCommand) + .Append('<').Append(inputType).Append(", ").Append(outputType).Append('>'); + + /// Writes the factory call's type arguments, which only a command taking a parameter needs. + /// The writer. + /// The command. + /// The command input type. + /// The command output type. + private static void WriteGenericTypeArguments(SourceWriter writer, CommandInfo commandInfo, string inputType, string outputType) + { + if (commandInfo.ArgumentType is null) + { + return; + } + + _ = writer.Append('<').Append(inputType); + if (!commandInfo.IsReturnTypeVoid) + { + _ = writer.Append(", ").Append(outputType); + } + + _ = writer.Append('>'); + } + + /// Writes the optional background- and output-scheduler arguments of a command factory call. + /// The writer. + /// The command. + /// + /// CreateRunInBackground takes the background scheduler before the output scheduler, so a synchronous + /// background command names it, as for ReactiveUI's default, whenever either is set. + /// ReactiveUI 24 has no overload taking only the execute delegate and a background scheduler, so that call also + /// names a can-execute, which ReactiveUI 23's all-optional overload accepts too. + /// + private static void WriteSchedulerArguments(SourceWriter writer, CommandInfo commandInfo) + { + var hasOutputScheduler = !string.IsNullOrEmpty(commandInfo.OutputScheduler); + if (commandInfo.RunInBackground && !commandInfo.IsTask && !commandInfo.IsObservable + && (hasOutputScheduler || !string.IsNullOrEmpty(commandInfo.BackgroundScheduler))) + { + if (!hasOutputScheduler && string.IsNullOrEmpty(commandInfo.CanExecuteObservableName)) + { + _ = writer.Append(", canExecute: null"); + } + + _ = writer.Append(", backgroundScheduler: ").Append(commandInfo.BackgroundScheduler ?? "null"); + } + + if (!hasOutputScheduler) + { + return; + } + + _ = writer.Append(", outputScheduler: ").Append(commandInfo.OutputScheduler); + } + + /// Gets the ReactiveCommand factory method for the command shape. + /// The command metadata. + /// The factory method name. + private static string GetCommandFactoryMethod(CommandInfo commandInfo) + { + if (commandInfo.IsObservable) + { + return CreateO; + } + + if (commandInfo.IsTask) + { + return CreateT; + } + + return commandInfo.RunInBackground ? CreateB : Create; + } + + /// Writes the optional can-execute argument of a command factory call. + /// The writer. + /// The command. + private static void WriteCanExecuteArgument(SourceWriter writer, CommandInfo commandInfo) + { + if (string.IsNullOrEmpty(commandInfo.CanExecuteObservableName)) + { + return; + } + + _ = writer.Append(", ") + .Append(commandInfo.CanExecuteObservableName) + .Append(commandInfo.CanExecuteTypeInfo == CanExecuteTypeInfo.MethodObservable ? "()" : null); + } + + /// Tries to get the expression type for the "CanExecute" property, if available. + /// The input instance to process. + /// The instance for . + /// The resulting can execute member name, if available. + /// The resulting expression type, if available. + private static void TryGetCanExecuteExpressionType( + IMethodSymbol methodSymbol, + AttributeData attributeData, + out string? canExecuteMemberName, + out CanExecuteTypeInfo? canExecuteTypeInfo) + { + // Get the can execute member, if any + if (!attributeData.TryGetNamedArgument(CanExecute, out string? memberName)) + { + canExecuteMemberName = null; + canExecuteTypeInfo = null; + + return; + } + + if (memberName is null) + { + canExecuteMemberName = null; + canExecuteTypeInfo = null; + return; + } + + var canExecuteSymbols = methodSymbol.ContainingType!.GetAllMembers(memberName); + var symbolCount = 0; + ISymbol? canExecuteSymbol = null; + foreach (var symbol in canExecuteSymbols) + { + symbolCount++; + canExecuteSymbol = symbol; + if (symbolCount > 1) + { + break; + } + } + + if (symbolCount == 0) + { + // Special case for when the target member is a generated property from [ObservableProperty] + if (TryGetCanExecuteMemberFromGeneratedProperty(memberName, methodSymbol.ContainingType, out canExecuteTypeInfo)) + { + canExecuteMemberName = memberName; + + return; + } + } + else if (symbolCount == 1 + && TryGetCanExecuteExpressionFromSymbol(canExecuteSymbol!, out canExecuteTypeInfo)) + { + canExecuteMemberName = memberName; + + return; + } + + canExecuteMemberName = null; + canExecuteTypeInfo = null; + } + + /// Gets the scheduler an attribute property names, as an expression generated code can use. + /// The generator attribute context. + /// The attributed command method. + /// The command attribute. + /// The attribute property naming the scheduler. + /// The scheduler expression, or when none is named or the name does not resolve. + /// A name that does not resolve is reported by the command analyzer, which applies the same rules. + private static string? GetScheduler( + in GeneratorAttributeSyntaxContext context, + IMethodSymbol methodSymbol, + AttributeData attributeData, + string argumentName) => + attributeData.TryGetNamedArgument(argumentName, out string? name) + && name is not null + && ReactiveCommandRules.TryResolveScheduler( + context.SemanticModel, + attributeData.ApplicationSyntaxReference?.Span.Start ?? context.TargetNode.SpanStart, + methodSymbol.ContainingType, + name, + out var expression) + ? expression + : null; + + /// Gets the expression type for the can execute logic, if possible. + /// The can execute member symbol (either a method or a property). + /// The resulting can execute expression type, if available. + /// Whether or not was set and the input symbol was valid. + private static bool TryGetCanExecuteExpressionFromSymbol( + ISymbol canExecuteSymbol, + [NotNullWhen(true)] out CanExecuteTypeInfo? canExecuteTypeInfo) + { + switch (canExecuteSymbol) + { + case IMethodSymbol methodSymbol when methodSymbol.ReturnType.IsObservableBoolType() && methodSymbol.Parameters.IsEmpty: + { + canExecuteTypeInfo = CanExecuteTypeInfo.MethodObservable; + return true; + } + + case IPropertySymbol { GetMethod: not null } propertySymbol when propertySymbol.Type.IsObservableBoolType(): + { + canExecuteTypeInfo = CanExecuteTypeInfo.PropertyObservable; + return true; + } + + case IFieldSymbol fieldSymbol when fieldSymbol.Type.IsObservableBoolType(): + { + canExecuteTypeInfo = CanExecuteTypeInfo.FieldObservable; + return true; + } + + default: + { + canExecuteTypeInfo = null; + return false; + } + } + } + + /// Gets the expression type for the can execute logic, if possible. + /// The member name passed to [ReactiveCommand(CanExecute = ...)]. + /// The containing type for the method annotated with [ReactiveCommand]. + /// The resulting can execute expression type, if available. + /// Whether or not was set and the input symbol was valid. + private static bool TryGetCanExecuteMemberFromGeneratedProperty( + string memberName, + INamedTypeSymbol containingType, + [NotNullWhen(true)] out CanExecuteTypeInfo? canExecuteTypeInfo) + { + foreach (var memberSymbol in containingType.GetAllMembers()) + { + // Only look for instance fields of Observable bool type + if (memberSymbol is not IFieldSymbol fieldSymbol || !fieldSymbol.Type.IsObservableBoolType()) + { + continue; + } + + // Only filter fields with the [Reactive] attribute + if (!HasReactiveAttribute(memberSymbol)) + { + continue; + } + + // Get the target property name either directly or matching the generated one + var propertyName = fieldSymbol.GetGeneratedPropertyName(); + + // If the generated property name matches, get the right expression type + if (memberName != propertyName) + { + continue; + } + + canExecuteTypeInfo = CanExecuteTypeInfo.PropertyObservable; + + return true; + } + + canExecuteTypeInfo = null; + + return false; + } + + /// Determines whether a symbol has the ReactiveAttribute. + /// The symbol to inspect. + /// when the attribute is present. + private static bool HasReactiveAttribute(ISymbol symbol) + { + foreach (var attribute in symbol.GetAttributes()) + { + if (attribute.AttributeClass?.HasFullyQualifiedMetadataName(AttributeDefinitions.ReactiveAttributeType) == true) + { + return true; + } + } + + return false; + } + + /// Locates the stem of a method name that the command's property and field names are built from. + /// The source method name. + /// Whether the method is asynchronous. + /// The stem's length. + /// The index the stem starts at. + /// The stem drops an m_ or leading-underscore prefix, and an Async suffix on an asynchronous method. + private static int GetCommandNameStem(string methodName, bool isAsync, out int length) + { + var start = 0; + if (methodName.StartsWith("m_", StringComparison.Ordinal)) + { + start = CommandNamePrefixLength; + } + else + { + while (start < methodName.Length && methodName[start] == '_') + { + start++; + } + } + + length = methodName.Length - start; + if (isAsync + && length >= AsyncSuffix.Length + && string.CompareOrdinal(methodName, methodName.Length - AsyncSuffix.Length, AsyncSuffix, 0, AsyncSuffix.Length) == 0) + { + length -= AsyncSuffix.Length; + } + + return start; + } + + /// Writes the generated command property's name: the stem, capitalized, and Command. + /// The writer. + /// The source method name. + /// The index the stem starts at. + /// The stem's length. + private static void WriteCommandName(SourceWriter writer, string methodName, int stemStart, int stemLength) => + _ = writer.Append(char.ToUpper(methodName[stemStart], CultureInfo.InvariantCulture)) + .Append(methodName, stemStart + 1, stemLength - 1) + .Append(CommandSuffix); + + /// Writes the generated backing field's name: the command property's name, camel-cased behind an underscore. + /// The writer. + /// The source method name. + /// The index the stem starts at. + /// The stem's length. + private static void WriteFieldName(SourceWriter writer, string methodName, int stemStart, int stemLength) + { + var first = char.ToUpper(methodName[stemStart], CultureInfo.InvariantCulture); + _ = writer.Append('_') + .Append(char.ToLower(first, CultureInfo.InvariantCulture)) + .Append(methodName, stemStart + 1, stemLength - 1) + .Append(CommandSuffix); + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandRules.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandRules.cs index a3ae3813..6cac63bb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandRules.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveCommand/ReactiveCommandRules.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Diagnostics.CodeAnalysis; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/Models/ReactiveObjectInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/Models/ReactiveObjectInfo.cs index c92228e6..236a3bdb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/Models/ReactiveObjectInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/Models/ReactiveObjectInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.Execute.cs deleted file mode 100644 index cdbe4b5f..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.Execute.cs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Models; - -namespace ReactiveUI.SourceGenerators; - -/// A source generator for generating reactiveObject properties. -public partial class ReactiveObjectGenerator -{ - /// Gets the generator type name used in generated-code metadata. - internal static readonly string GeneratorName = typeof(ReactiveObjectGenerator).FullName!; - - /// Gets the generator assembly version used in generated-code metadata. - internal static readonly string GeneratorVersion = typeof(ReactiveObjectGenerator).Assembly.GetName().Version.ToString(); - - /// Creates metadata for a ReactiveObject-annotated class. - /// The attribute syntax context for the class. - /// The cancellation token for the generator operation. - /// The class metadata, or when not applicable. - private static ReactiveObjectInfo? GetClassInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) - { - if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) - { - return default; - } - - var symbol = context.TargetSymbol; - token.ThrowIfCancellationRequested(); - - if (symbol is not INamedTypeSymbol classSymbol) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - // Get the containing type info - var targetInfo = TargetInfo.From(classSymbol); - - token.ThrowIfCancellationRequested(); - return new(targetInfo); - } - - /// Generates the complete source document for a ReactiveObject declaration. - /// The type that implements IReactiveObject. - /// The selected ReactiveUI integration metadata. - /// The generated source document. - private static string GenerateSource(TargetInfo target, ReactiveUiIntegration integration) - { - var writer = SourceWriter.Rent() - .AutoGenerated() - .DisableWarningsEnableNullable() - .Using("System") - .Using("System.Diagnostics.CodeAnalysis") - .Using("System.ComponentModel") - .Lines(integration.UsingDirectives) - .BlankLine(); - - // Only the namespace encloses the type: containing types have never been declared around it. - var depth = writer.OpenNamespace(target.TargetNamespace); - _ = writer.Line("/// ") - .Append("/// Partial class for the ").Append(target.TargetName).Line(" which contains ReactiveUI IReactiveObject initialization.") - .Line("/// ") - .OpenPartialType(target, "IReactiveObject") - .Lines(ReactiveObjectSource.Members); - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Contains reusable generated ReactiveObject source fragments. - private static class ReactiveObjectSource - { - /// Contains the generated ReactiveObject event implementation. - internal const string Members = """ - private bool _propertyChangingEventsSubscribed; - private bool _propertyChangedEventsSubscribed; - - /// - public event PropertyChangingEventHandler? PropertyChanging - { - add - { - if (!_propertyChangingEventsSubscribed) - { - this.SubscribePropertyChangingEvents(); - _propertyChangingEventsSubscribed = true; - } - - PropertyChangingHandler += value; - } - remove => PropertyChangingHandler -= value; - } - - /// - public event PropertyChangedEventHandler? PropertyChanged - { - add - { - if (!_propertyChangedEventsSubscribed) - { - this.SubscribePropertyChangedEvents(); - _propertyChangedEventsSubscribed = true; - } - - PropertyChangedHandler += value; - } - remove => PropertyChangedHandler -= value; - } - - [SuppressMessage("Roslynator", "RCS1159:Use EventHandler", Justification = "Long term design.")] - private event PropertyChangingEventHandler? PropertyChangingHandler; - - [SuppressMessage("Roslynator", "RCS1159:Use EventHandler", Justification = "Long term design.")] - private event PropertyChangedEventHandler? PropertyChangedHandler; - - /// - void IReactiveObject.RaisePropertyChanging(PropertyChangingEventArgs args) => - PropertyChangingHandler?.Invoke(this, args); - - /// - void IReactiveObject.RaisePropertyChanged(PropertyChangedEventArgs args) => - PropertyChangedHandler?.Invoke(this, args); - """; - } -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.cs index e2e37e2e..adeb3044 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveObject/ReactiveObjectGenerator.cs @@ -1,10 +1,12 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; using ReactiveUI.SourceGenerators.Models; @@ -13,8 +15,14 @@ namespace ReactiveUI.SourceGenerators; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class ReactiveObjectGenerator : IIncrementalGenerator +public sealed class ReactiveObjectGenerator : IIncrementalGenerator { + /// Gets the generator type name used in generated-code metadata. + internal static readonly string GeneratorName = typeof(ReactiveObjectGenerator).FullName!; + + /// Gets the generator assembly version used in generated-code metadata. + internal static readonly string GeneratorVersion = typeof(ReactiveObjectGenerator).Assembly.GetName().Version.ToString(); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -36,4 +44,117 @@ public void Initialize(IncrementalGeneratorInitializationContext context) context.AddSource($"{target.FileHintName}.IReactiveObject.g.cs", GenerateSource(target, input.Right)); }); } + + /// Creates metadata for a ReactiveObject-annotated class. + /// The attribute syntax context for the class. + /// The cancellation token for the generator operation. + /// The class metadata, or when not applicable. + private static ReactiveObjectInfo? GetClassInfo(in GeneratorAttributeSyntaxContext context, CancellationToken token) + { + if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) + { + return default; + } + + var symbol = context.TargetSymbol; + token.ThrowIfCancellationRequested(); + + if (symbol is not INamedTypeSymbol classSymbol) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + // Get the containing type info + var targetInfo = TargetInfo.From(classSymbol); + + token.ThrowIfCancellationRequested(); + return new(targetInfo); + } + + /// Generates the complete source document for a ReactiveObject declaration. + /// The type that implements IReactiveObject. + /// The selected ReactiveUI integration metadata. + /// The generated source document. + private static string GenerateSource(TargetInfo target, ReactiveUiIntegration integration) + { + var writer = SourceWriter.Rent() + .AutoGenerated() + .DisableWarningsEnableNullable() + .Using("System") + .Using("System.Diagnostics.CodeAnalysis") + .Using("System.ComponentModel") + .Lines(integration.UsingDirectives) + .BlankLine(); + + // Only the namespace encloses the type: containing types have never been declared around it. + var depth = writer.OpenNamespace(target.TargetNamespace); + _ = writer.Line("/// ") + .Append("/// Partial class for the ").Append(target.TargetName).Line(" which contains ReactiveUI IReactiveObject initialization.") + .Line("/// ") + .OpenPartialType(target, "IReactiveObject") + .Lines(ReactiveObjectSource.Members); + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Contains reusable generated ReactiveObject source fragments. + private static class ReactiveObjectSource + { + /// Contains the generated ReactiveObject event implementation. + internal const string Members = """ + private bool _propertyChangingEventsSubscribed; + private bool _propertyChangedEventsSubscribed; + + /// + public event PropertyChangingEventHandler? PropertyChanging + { + add + { + if (!_propertyChangingEventsSubscribed) + { + this.SubscribePropertyChangingEvents(); + _propertyChangingEventsSubscribed = true; + } + + PropertyChangingHandler += value; + } + remove => PropertyChangingHandler -= value; + } + + /// + public event PropertyChangedEventHandler? PropertyChanged + { + add + { + if (!_propertyChangedEventsSubscribed) + { + this.SubscribePropertyChangedEvents(); + _propertyChangedEventsSubscribed = true; + } + + PropertyChangedHandler += value; + } + remove => PropertyChangedHandler -= value; + } + + [SuppressMessage("Roslynator", "RCS1159:Use EventHandler", Justification = "Long term design.")] + private event PropertyChangingEventHandler? PropertyChangingHandler; + + [SuppressMessage("Roslynator", "RCS1159:Use EventHandler", Justification = "Long term design.")] + private event PropertyChangedEventHandler? PropertyChangedHandler; + + /// + void IReactiveObject.RaisePropertyChanging(PropertyChangingEventArgs args) => + PropertyChangingHandler?.Invoke(this, args); + + /// + void IReactiveObject.RaisePropertyChanged(PropertyChangedEventArgs args) => + PropertyChangedHandler?.Invoke(this, args); + """; + } } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.projitems b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.projitems deleted file mode 100644 index e48c9f82..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.projitems +++ /dev/null @@ -1,65 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - bc460daf-92ed-41d9-9eb4-2c92121d62a8 - - - ReactiveUI.SourceGenerators.Roslyn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.shproj b/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.shproj deleted file mode 100644 index 6870b610..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ReactiveUI.SourceGenerators.Roslyn.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - bc460daf-92ed-41d9-9eb4-2c92121d62a8 - 14.0 - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/Models/RoutedControlHostInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/Models/RoutedControlHostInfo.cs index 5f0e2678..b379ba9d 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/Models/RoutedControlHostInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/Models/RoutedControlHostInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.Execute.cs deleted file mode 100644 index 97eefd80..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.Execute.cs +++ /dev/null @@ -1,642 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; - -namespace ReactiveUI.SourceGenerators.WinForms; - -/// Generates a Windows Forms routed control host. -/// -public partial class RoutedControlHostGenerator -{ - /// The fully qualified generator name written to generated-code attributes. - private static readonly string GeneratorName = typeof(RoutedControlHostGenerator).FullName!; - - /// The generator assembly version written to generated-code attributes. - private static readonly string GeneratorVersion = typeof(RoutedControlHostGenerator).Assembly.GetName().Version.ToString(); - - /// The GeneratedCode attribute stamped on every generated host, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); - - /// Gets generation metadata for an attributed routed control host. - private static readonly RoutedControlHostInfoFactory GetClassInfo = static ( - in GeneratorAttributeSyntaxContext context, - CancellationToken token) => - { - if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - var symbol = context.TargetSymbol; - var attributeData = context.Attributes[0]; - - token.ThrowIfCancellationRequested(); - - var baseTypeName = GetFirstConstructorArgument(attributeData); - if (baseTypeName is null) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - if (symbol is not INamedTypeSymbol classSymbol) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - // Get the containing type info - var targetInfo = TargetInfo.From(classSymbol); - - token.ThrowIfCancellationRequested(); - - return new( - targetInfo.FileHintName, - targetInfo.TargetName, - targetInfo.TargetNamespace, - targetInfo.TargetNamespaceWithNamespace, - targetInfo.TargetVisibility, - targetInfo.TargetType, - baseTypeName, - targetInfo.ParentInfo); - }; - - /// Gets routed control host metadata from a generator attribute context. - /// The generator attribute context. - /// The cancellation token. - /// The routed control host metadata, or when the target is invalid. - private delegate RoutedControlHostInfo? RoutedControlHostInfoFactory( - in GeneratorAttributeSyntaxContext context, - CancellationToken token); - - /// Gets the first string constructor argument from an attribute. - /// The attribute data. - /// The first string argument, or when none exists. - private static string? GetFirstConstructorArgument(AttributeData attributeData) - { - using var arguments = attributeData.GetConstructorArguments().GetEnumerator(); - return arguments.MoveNext() ? arguments.Current : null; - } - - /// Generates the partial declaration that turns the target into a routed control host. - /// The routed control host metadata. - /// The detected ReactiveUI integration. - /// The file's text. - private static string GenerateSource(RoutedControlHostInfo info, ReactiveUiIntegration integration) - { - var exceptionHandler = integration.IsNewerThan22 - ? "RxState.DefaultExceptionHandler!.OnNext" - : "RxApp.DefaultExceptionHandler!.OnNext"; - - var writer = SourceWriter.Rent(); - WriteFileHeader(writer, integration); - - var depth = writer.OpenNamespace(info.TargetNamespace) + writer.OpenContainingTypes(info.ParentInfo); - _ = writer.Line(AttributeDefinitions.ExcludeFromCodeCoverage) - .Line("[DefaultProperty(\"ViewModel\")]") - .Line(GeneratedCodeAttribute) - .Append(info.TargetVisibility).Append(" partial ").Append(info.TargetType).Append(' ').Append(info.TargetName) - .Append(" : ").Append(info.BaseTypeName).Line(", IReactiveObject") - .OpenBlock(); - - WriteConstructor(writer, info.TargetName, exceptionHandler, integration); - WriteProperties(writer.BlankLine(), integration); - WriteDispose(writer.BlankLine()); - WriteRouting(writer.BlankLine(), integration); - if (!integration.HasObservedProperty) - { - ControlHostExtensions.WritePropertyObservable(writer.BlankLine()); - } - - WriteObservableHelpers(writer.BlankLine()); - WriteCombineLatestSubscription(writer.BlankLine()); - WriteDisposableCollection(writer.BlankLine()); - WriteSubscriptionSlot(writer.BlankLine()); - WriteEmptyDisposable(writer.BlankLine()); - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes the file header: the generated marker, the license, the usings, and the pragmas. - /// The writer, at the start of the file. - /// The detected ReactiveUI integration, which picks the ReactiveUI usings. - private static void WriteFileHeader(SourceWriter writer, ReactiveUiIntegration integration) => - _ = writer.AutoGenerated() - .Append("// Copyright (c) ").Append(DateTime.Now.Year).Line(" .NET Foundation and Contributors. All rights reserved.") - .Lines(""" - // Licensed to the .NET Foundation under one or more agreements. - // The .NET Foundation licenses this file to you under the MIT license. - // See the LICENSE file in the project root for full license information. - """) - .BlankLine() - .Lines(integration.UsingDirectives) - .Lines(""" - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Windows.Forms; - """) - .BlankLine() - .DisableWarningsEnableNullable(); - - /// Writes the host's fields and its constructor, which wires the default content and the routed view. - /// The writer, at the level of the host's members. - /// The host type's name. - /// The ReactiveUI default exception handler subscriptions report to. - /// The detected ReactiveUI integration, which picks how the host follows its properties. - private static void WriteConstructor(SourceWriter writer, string typeName, string exceptionHandler, ReactiveUiIntegration integration) => - _ = writer.Lines(""" - private readonly DisposableCollection _disposables = new(); - private RoutingState? _router; - private Control? _defaultContent; - private Control? _routedView; - private IObservable? _viewContractObservable; - - /// - """) - .Append("/// Initializes a new instance of the class.") - .Line("/// ") - .Append("public ").Append(typeName).Line("()") - .OpenBlock() - .Line("InitializeComponent();") - .Append("_disposables.Add(").AppendPropertyValue(integration, "Control?", "DefaultContent").Line(".Subscribe(new ValueObserver(x =>") - .Lines(""" - { - if (x is not null && Controls.Count == 0) - { - Controls.Add(InitView(x)); - components?.Add(DefaultContent); - } - """) - .Append("}, ").Append(exceptionHandler).Line(")));") - .Lines(""" - ViewContractObservable = new ReturnObservable(default!); - var routeSubscription = new CombineLatestSubscription( - UpdateRoutedContent, - """) - .Indent().Append(exceptionHandler).Line(");").Outdent() - .Lines(""" - _disposables.Add(routeSubscription); - routeSubscription.Connect( - """) - .Indent().AppendRoutedViewModel(integration).Line(",") - .AppendPropertyObservable(integration, "string", "ViewContractObservable").Line(");").Outdent() - .CloseBlock(); - - /// Writes the host's events and properties, and its IReactiveObject implementation. - /// The writer, at the level of the host's members. - /// The detected ReactiveUI integration, which names the view locator's interface. - private static void WriteProperties(SourceWriter writer, ReactiveUiIntegration integration) - { - ControlHostExtensions.WritePropertyChangeEvents(writer); - _ = writer.BlankLine().Lines(""" - /// - /// Gets or sets the default content. - /// - /// - /// The default content. - /// - [Category("ReactiveUI")] - [Description("The default control when no viewmodel is specified")] - public Control? DefaultContent { get => _defaultContent; set => this.RaiseAndSetIfChanged(ref _defaultContent, value); } - - /// - /// Gets or sets the of the view model stack. - /// - [Category("ReactiveUI")] - [Description("The router.")] - public RoutingState? Router { get => _router; set => this.RaiseAndSetIfChanged(ref _router, value); } - - /// - /// Gets or sets the view contract observable. - /// - [Browsable(false)] - public IObservable? ViewContractObservable { get => _viewContractObservable; set => this.RaiseAndSetIfChanged(ref _viewContractObservable, value); } - - /// - /// Gets or sets the view locator. - /// - [Browsable(false)] - """) - .Append("public ").Append(integration.ViewNamespace).Line(".IViewLocator? ViewLocator { get; set; }"); - } - - /// Writes the host's disposal. - /// The writer, at the level of the host's members. - private static void WriteDispose(SourceWriter writer) => - _ = writer.Lines(""" - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing) - { - _disposables.Dispose(); - _routedView?.Dispose(); - _routedView = null; - components?.Dispose(); - } - - base.Dispose(disposing); - } - """); - - /// Writes the methods that swap the routed view in and out. - /// The writer, at the level of the host's members. - /// The detected ReactiveUI integration, which names the current view locator. - private static void WriteRouting(SourceWriter writer, ReactiveUiIntegration integration) => - _ = writer.Lines(""" - private void UpdateRoutedContent(IRoutableViewModel? viewModel, string contract) - { - SuspendLayout(); - try - { - Controls.Clear(); - _routedView?.Dispose(); - _routedView = null; - - if (viewModel is null) - { - if (DefaultContent is not null) - { - Controls.Add(InitView(DefaultContent)); - } - - return; - } - """) - .BlankLine() - .Indent().Indent() - .Append("var viewLocator = ViewLocator ?? ").Append(integration.CurrentViewLocator).EndStatement() - .Outdent().Outdent() - .Lines(""" - var view = viewLocator.ResolveView(viewModel, contract); - if (view is not null) - { - view.ViewModel = viewModel; - _routedView = InitView((Control)view); - Controls.Add(_routedView); - } - } - finally - { - ResumeLayout(); - } - } - - private static Control InitView(Control view) - { - view.Dock = DockStyle.Fill; - return view; - } - """); - - /// Writes the nested observable and observer the host subscribes with, so it needs no Rx dependency. - /// The writer, at the level of the host's members. - private static void WriteObservableHelpers(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class ReturnObservable(T value) : IObservable - { - public IDisposable Subscribe(IObserver observer) - { - observer.OnNext(value); - observer.OnCompleted(); - return EmptyDisposable.Instance; - } - } - - private sealed class ValueObserver(Action onNext, Action onError, Action? onCompleted = null) : IObserver - { - public void OnCompleted() => onCompleted?.Invoke(); - - public void OnError(Exception error) => onError(error); - - public void OnNext(T value) => onNext(value); - } - """); - - /// Writes the nested subscription that combines the latest router and contract values. - /// The writer, at the level of the host's members. - private static void WriteCombineLatestSubscription(SourceWriter writer) - { - _ = writer.Line("private sealed class CombineLatestSubscription : IDisposable").OpenBlock(); - WriteCombineLatestState(writer); - WriteCombineLatestValues(writer.BlankLine()); - WriteCombineLatestCompletion(writer.BlankLine()); - WriteCombineLatestFailure(writer.BlankLine()); - _ = writer.CloseBlock(); - } - - /// Writes the combined subscription's state, its constructor, and how it connects and disposes. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestState(SourceWriter writer) => - _ = writer.Lines(""" - private readonly object _gate = new(); - private readonly Action _onNext; - private readonly Action _onError; - private readonly SubscriptionSlot _leftSubscription = new(); - private readonly SubscriptionSlot _rightSubscription = new(); - private TLeft _left = default!; - private TRight _right = default!; - private bool _hasLeft; - private bool _hasRight; - private bool _leftCompleted; - private bool _rightCompleted; - private bool _isStopped; - - public CombineLatestSubscription( - Action onNext, - Action onError) - { - _onNext = onNext; - _onError = onError; - } - - public void Connect(IObservable left, IObservable right) - { - _leftSubscription.Set(left.Subscribe(new ValueObserver(SetLeft, Fail, CompleteLeft))); - if (IsStopped()) - { - return; - } - - _rightSubscription.Set(right.Subscribe(new ValueObserver(SetRight, Fail, CompleteRight))); - } - - public void Dispose() - { - lock (_gate) - { - _isStopped = true; - } - - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - """); - - /// Writes the combined subscription's value callbacks, which publish once both sides have a value. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestValues(SourceWriter writer) => - _ = writer.Lines(""" - private void SetLeft(TLeft value) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _left = value; - _hasLeft = true; - if (!_hasRight) - { - return; - } - - _onNext(value, _right); - } - } - - private void SetRight(TRight value) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _right = value; - _hasRight = true; - if (!_hasLeft) - { - return; - } - - _onNext(_left, value); - } - } - """); - - /// Writes the combined subscription's completion callbacks. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestCompletion(SourceWriter writer) => - _ = writer.Lines(""" - private void CompleteLeft() - { - var shouldStop = false; - lock (_gate) - { - if (_isStopped) - { - return; - } - - _leftCompleted = true; - shouldStop = !_hasLeft || _rightCompleted; - _isStopped = shouldStop; - } - - if (shouldStop) - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - - private void CompleteRight() - { - var shouldStop = false; - lock (_gate) - { - if (_isStopped) - { - return; - } - - _rightCompleted = true; - shouldStop = !_hasRight || _leftCompleted; - _isStopped = shouldStop; - } - - if (shouldStop) - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - """); - - /// Writes the combined subscription's error callback and its stopped check. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestFailure(SourceWriter writer) => - _ = writer.Lines(""" - private void Fail(Exception error) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _isStopped = true; - } - - try - { - _onError(error); - } - finally - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - - private bool IsStopped() - { - lock (_gate) - { - return _isStopped; - } - } - """); - - /// Writes the nested collection that disposes the host's subscriptions together. - /// The writer, at the level of the host's members. - private static void WriteDisposableCollection(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class DisposableCollection : IDisposable - { - private readonly object _gate = new(); - private readonly List _items = new(); - private bool _isDisposed; - - public void Add(IDisposable item) - { - var disposeItem = false; - lock (_gate) - { - disposeItem = _isDisposed; - if (!disposeItem) - { - _items.Add(item); - } - } - - if (disposeItem) - { - item.Dispose(); - } - } - - public void Dispose() - { - IDisposable[] items; - lock (_gate) - { - if (_isDisposed) - { - return; - } - - _isDisposed = true; - items = _items.ToArray(); - _items.Clear(); - } - - foreach (var item in items) - { - item.Dispose(); - } - } - } - """); - - /// Writes the nested slot holding one replaceable subscription. - /// The writer, at the level of the host's members. - private static void WriteSubscriptionSlot(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class SubscriptionSlot : IDisposable - { - private readonly object _gate = new(); - private IDisposable? _subscription; - private bool _isDisposed; - - public void Set(IDisposable subscription) - { - IDisposable? previous; - var disposeSubscription = false; - lock (_gate) - { - disposeSubscription = _isDisposed; - previous = _subscription; - if (!disposeSubscription) - { - _subscription = subscription; - } - } - - previous?.Dispose(); - if (disposeSubscription) - { - subscription.Dispose(); - } - } - - public void Dispose() - { - IDisposable? subscription; - lock (_gate) - { - if (_isDisposed) - { - return; - } - - _isDisposed = true; - subscription = _subscription; - _subscription = null; - } - - subscription?.Dispose(); - } - } - """); - - /// Writes the nested disposable that does nothing. - /// The writer, at the level of the host's members. - private static void WriteEmptyDisposable(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class EmptyDisposable : IDisposable - { - public static EmptyDisposable Instance { get; } = new(); - - public void Dispose() - { - } - } - """); -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.cs index 69711641..5a3aedfe 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/RoutedControlHost/RoutedControlHostGenerator.cs @@ -1,18 +1,88 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Threading; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; namespace ReactiveUI.SourceGenerators.WinForms; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class RoutedControlHostGenerator : IIncrementalGenerator +public sealed class RoutedControlHostGenerator : IIncrementalGenerator { + /// The fully qualified generator name written to generated-code attributes. + private static readonly string GeneratorName = typeof(RoutedControlHostGenerator).FullName!; + + /// The generator assembly version written to generated-code attributes. + private static readonly string GeneratorVersion = typeof(RoutedControlHostGenerator).Assembly.GetName().Version.ToString(); + + /// The GeneratedCode attribute stamped on every generated host, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + + /// Gets generation metadata for an attributed routed control host. + private static readonly RoutedControlHostInfoFactory GetClassInfo = static ( + in GeneratorAttributeSyntaxContext context, + CancellationToken token) => + { + if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + var symbol = context.TargetSymbol; + var attributeData = context.Attributes[0]; + + token.ThrowIfCancellationRequested(); + + var baseTypeName = GetFirstConstructorArgument(attributeData); + if (baseTypeName is null) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + if (symbol is not INamedTypeSymbol classSymbol) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + // Get the containing type info + var targetInfo = TargetInfo.From(classSymbol); + + token.ThrowIfCancellationRequested(); + + return new( + targetInfo.FileHintName, + targetInfo.TargetName, + targetInfo.TargetNamespace, + targetInfo.TargetNamespaceWithNamespace, + targetInfo.TargetVisibility, + targetInfo.TargetType, + baseTypeName, + targetInfo.ParentInfo); + }; + + /// Gets routed control host metadata from a generator attribute context. + /// The generator attribute context. + /// The cancellation token. + /// The routed control host metadata, or when the target is invalid. + private delegate RoutedControlHostInfo? RoutedControlHostInfoFactory( + in GeneratorAttributeSyntaxContext context, + CancellationToken token); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -30,4 +100,560 @@ public void Initialize(IncrementalGeneratorInitializationContext context) context.RegisterSourceOutput(hosts.Combine(context.ReactiveUiIntegration()), static (context, input) => context.AddSource($"{input.Left.FileHintName}.RoutedControlHost.g.cs", GenerateSource(input.Left, input.Right))); } + + /// Gets the first string constructor argument from an attribute. + /// The attribute data. + /// The first string argument, or when none exists. + private static string? GetFirstConstructorArgument(AttributeData attributeData) + { + using var arguments = attributeData.GetConstructorArguments().GetEnumerator(); + return arguments.MoveNext() ? arguments.Current : null; + } + + /// Generates the partial declaration that turns the target into a routed control host. + /// The routed control host metadata. + /// The detected ReactiveUI integration. + /// The file's text. + private static string GenerateSource(RoutedControlHostInfo info, ReactiveUiIntegration integration) + { + var exceptionHandler = integration.IsNewerThan22 + ? "RxState.DefaultExceptionHandler!.OnNext" + : "RxApp.DefaultExceptionHandler!.OnNext"; + + var writer = SourceWriter.Rent(); + WriteFileHeader(writer, integration); + + var depth = writer.OpenNamespace(info.TargetNamespace) + writer.OpenContainingTypes(info.ParentInfo); + _ = writer.Line(AttributeDefinitions.ExcludeFromCodeCoverage) + .Line("[DefaultProperty(\"ViewModel\")]") + .Line(GeneratedCodeAttribute) + .Append(info.TargetVisibility).Append(" partial ").Append(info.TargetType).Append(' ').Append(info.TargetName) + .Append(" : ").Append(info.BaseTypeName).Line(", IReactiveObject") + .OpenBlock(); + + WriteConstructor(writer, info.TargetName, exceptionHandler, integration); + WriteProperties(writer.BlankLine(), integration); + WriteDispose(writer.BlankLine()); + WriteRouting(writer.BlankLine(), integration); + if (!integration.HasObservedProperty) + { + ControlHostExtensions.WritePropertyObservable(writer.BlankLine()); + } + + WriteObservableHelpers(writer.BlankLine()); + WriteCombineLatestSubscription(writer.BlankLine()); + WriteDisposableCollection(writer.BlankLine()); + WriteSubscriptionSlot(writer.BlankLine()); + WriteEmptyDisposable(writer.BlankLine()); + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes the file header: the generated marker, the license, the usings, and the pragmas. + /// The writer, at the start of the file. + /// The detected ReactiveUI integration, which picks the ReactiveUI usings. + private static void WriteFileHeader(SourceWriter writer, ReactiveUiIntegration integration) => + _ = writer.AutoGenerated() + .Lines(""" + // Copyright (c) ReactiveUI and Contributors. All rights reserved. + // ReactiveUI and Contributors licenses this file to you under the MIT license. + // See the LICENSE file in the project root for full license information. + """) + .BlankLine() + .Lines(integration.UsingDirectives) + .Lines(""" + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Windows.Forms; + """) + .BlankLine() + .DisableWarningsEnableNullable(); + + /// Writes the host's fields and its constructor, which wires the default content and the routed view. + /// The writer, at the level of the host's members. + /// The host type's name. + /// The ReactiveUI default exception handler subscriptions report to. + /// The detected ReactiveUI integration, which picks how the host follows its properties. + private static void WriteConstructor(SourceWriter writer, string typeName, string exceptionHandler, ReactiveUiIntegration integration) => + _ = writer.Lines(""" + private readonly DisposableCollection _disposables = new(); + private RoutingState? _router; + private Control? _defaultContent; + private Control? _routedView; + private IObservable? _viewContractObservable; + + /// + """) + .Append("/// Initializes a new instance of the class.") + .Line("/// ") + .Append("public ").Append(typeName).Line("()") + .OpenBlock() + .Line("InitializeComponent();") + .Append("_disposables.Add(").AppendPropertyValue(integration, "Control?", "DefaultContent").Line(".Subscribe(new ValueObserver(x =>") + .Lines(""" + { + if (x is not null && Controls.Count == 0) + { + Controls.Add(InitView(x)); + components?.Add(DefaultContent); + } + """) + .Append("}, ").Append(exceptionHandler).Line(")));") + .Lines(""" + ViewContractObservable = new ReturnObservable(default!); + var routeSubscription = new CombineLatestSubscription( + UpdateRoutedContent, + """) + .Indent().Append(exceptionHandler).Line(");").Outdent() + .Lines(""" + _disposables.Add(routeSubscription); + routeSubscription.Connect( + """) + .Indent().AppendRoutedViewModel(integration).Line(",") + .AppendPropertyObservable(integration, "string", "ViewContractObservable").Line(");").Outdent() + .CloseBlock(); + + /// Writes the host's events and properties, and its IReactiveObject implementation. + /// The writer, at the level of the host's members. + /// The detected ReactiveUI integration, which names the view locator's interface. + private static void WriteProperties(SourceWriter writer, ReactiveUiIntegration integration) + { + ControlHostExtensions.WritePropertyChangeEvents(writer); + _ = writer.BlankLine().Lines(""" + /// + /// Gets or sets the default content. + /// + /// + /// The default content. + /// + [Category("ReactiveUI")] + [Description("The default control when no viewmodel is specified")] + public Control? DefaultContent { get => _defaultContent; set => this.RaiseAndSetIfChanged(ref _defaultContent, value); } + + /// + /// Gets or sets the of the view model stack. + /// + [Category("ReactiveUI")] + [Description("The router.")] + public RoutingState? Router { get => _router; set => this.RaiseAndSetIfChanged(ref _router, value); } + + /// + /// Gets or sets the view contract observable. + /// + [Browsable(false)] + public IObservable? ViewContractObservable { get => _viewContractObservable; set => this.RaiseAndSetIfChanged(ref _viewContractObservable, value); } + + /// + /// Gets or sets the view locator. + /// + [Browsable(false)] + """) + .Append("public ").Append(integration.ViewNamespace).Line(".IViewLocator? ViewLocator { get; set; }"); + } + + /// Writes the host's disposal. + /// The writer, at the level of the host's members. + private static void WriteDispose(SourceWriter writer) => + _ = writer.Lines(""" + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) + { + _disposables.Dispose(); + _routedView?.Dispose(); + _routedView = null; + components?.Dispose(); + } + + base.Dispose(disposing); + } + """); + + /// Writes the methods that swap the routed view in and out. + /// The writer, at the level of the host's members. + /// The detected ReactiveUI integration, which names the current view locator. + private static void WriteRouting(SourceWriter writer, ReactiveUiIntegration integration) => + _ = writer.Lines(""" + private void UpdateRoutedContent(IRoutableViewModel? viewModel, string contract) + { + SuspendLayout(); + try + { + Controls.Clear(); + _routedView?.Dispose(); + _routedView = null; + + if (viewModel is null) + { + if (DefaultContent is not null) + { + Controls.Add(InitView(DefaultContent)); + } + + return; + } + """) + .BlankLine() + .Indent().Indent() + .Append("var viewLocator = ViewLocator ?? ").Append(integration.CurrentViewLocator).EndStatement() + .Outdent().Outdent() + .Lines(""" + var view = viewLocator.ResolveView(viewModel, contract); + if (view is not null) + { + view.ViewModel = viewModel; + _routedView = InitView((Control)view); + Controls.Add(_routedView); + } + } + finally + { + ResumeLayout(); + } + } + + private static Control InitView(Control view) + { + view.Dock = DockStyle.Fill; + return view; + } + """); + + /// Writes the nested observable and observer the host subscribes with, so it needs no Rx dependency. + /// The writer, at the level of the host's members. + private static void WriteObservableHelpers(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class ReturnObservable(T value) : IObservable + { + public IDisposable Subscribe(IObserver observer) + { + observer.OnNext(value); + observer.OnCompleted(); + return EmptyDisposable.Instance; + } + } + + private sealed class ValueObserver(Action onNext, Action onError, Action? onCompleted = null) : IObserver + { + public void OnCompleted() => onCompleted?.Invoke(); + + public void OnError(Exception error) => onError(error); + + public void OnNext(T value) => onNext(value); + } + """); + + /// Writes the nested subscription that combines the latest router and contract values. + /// The writer, at the level of the host's members. + private static void WriteCombineLatestSubscription(SourceWriter writer) + { + _ = writer.Line("private sealed class CombineLatestSubscription : IDisposable").OpenBlock(); + WriteCombineLatestState(writer); + WriteCombineLatestValues(writer.BlankLine()); + WriteCombineLatestCompletion(writer.BlankLine()); + WriteCombineLatestFailure(writer.BlankLine()); + _ = writer.CloseBlock(); + } + + /// Writes the combined subscription's state, its constructor, and how it connects and disposes. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestState(SourceWriter writer) => + _ = writer.Lines(""" + private readonly object _gate = new(); + private readonly Action _onNext; + private readonly Action _onError; + private readonly SubscriptionSlot _leftSubscription = new(); + private readonly SubscriptionSlot _rightSubscription = new(); + private TLeft _left = default!; + private TRight _right = default!; + private bool _hasLeft; + private bool _hasRight; + private bool _leftCompleted; + private bool _rightCompleted; + private bool _isStopped; + + public CombineLatestSubscription( + Action onNext, + Action onError) + { + _onNext = onNext; + _onError = onError; + } + + public void Connect(IObservable left, IObservable right) + { + _leftSubscription.Set(left.Subscribe(new ValueObserver(SetLeft, Fail, CompleteLeft))); + if (IsStopped()) + { + return; + } + + _rightSubscription.Set(right.Subscribe(new ValueObserver(SetRight, Fail, CompleteRight))); + } + + public void Dispose() + { + lock (_gate) + { + _isStopped = true; + } + + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + """); + + /// Writes the combined subscription's value callbacks, which publish once both sides have a value. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestValues(SourceWriter writer) => + _ = writer.Lines(""" + private void SetLeft(TLeft value) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _left = value; + _hasLeft = true; + if (!_hasRight) + { + return; + } + + _onNext(value, _right); + } + } + + private void SetRight(TRight value) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _right = value; + _hasRight = true; + if (!_hasLeft) + { + return; + } + + _onNext(_left, value); + } + } + """); + + /// Writes the combined subscription's completion callbacks. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestCompletion(SourceWriter writer) => + _ = writer.Lines(""" + private void CompleteLeft() + { + var shouldStop = false; + lock (_gate) + { + if (_isStopped) + { + return; + } + + _leftCompleted = true; + shouldStop = !_hasLeft || _rightCompleted; + _isStopped = shouldStop; + } + + if (shouldStop) + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + + private void CompleteRight() + { + var shouldStop = false; + lock (_gate) + { + if (_isStopped) + { + return; + } + + _rightCompleted = true; + shouldStop = !_hasRight || _leftCompleted; + _isStopped = shouldStop; + } + + if (shouldStop) + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + """); + + /// Writes the combined subscription's error callback and its stopped check. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestFailure(SourceWriter writer) => + _ = writer.Lines(""" + private void Fail(Exception error) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _isStopped = true; + } + + try + { + _onError(error); + } + finally + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + + private bool IsStopped() + { + lock (_gate) + { + return _isStopped; + } + } + """); + + /// Writes the nested collection that disposes the host's subscriptions together. + /// The writer, at the level of the host's members. + private static void WriteDisposableCollection(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class DisposableCollection : IDisposable + { + private readonly object _gate = new(); + private readonly List _items = new(); + private bool _isDisposed; + + public void Add(IDisposable item) + { + var disposeItem = false; + lock (_gate) + { + disposeItem = _isDisposed; + if (!disposeItem) + { + _items.Add(item); + } + } + + if (disposeItem) + { + item.Dispose(); + } + } + + public void Dispose() + { + IDisposable[] items; + lock (_gate) + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + items = _items.ToArray(); + _items.Clear(); + } + + foreach (var item in items) + { + item.Dispose(); + } + } + } + """); + + /// Writes the nested slot holding one replaceable subscription. + /// The writer, at the level of the host's members. + private static void WriteSubscriptionSlot(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class SubscriptionSlot : IDisposable + { + private readonly object _gate = new(); + private IDisposable? _subscription; + private bool _isDisposed; + + public void Set(IDisposable subscription) + { + IDisposable? previous; + var disposeSubscription = false; + lock (_gate) + { + disposeSubscription = _isDisposed; + previous = _subscription; + if (!disposeSubscription) + { + _subscription = subscription; + } + } + + previous?.Dispose(); + if (disposeSubscription) + { + subscription.Dispose(); + } + } + + public void Dispose() + { + IDisposable? subscription; + lock (_gate) + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + subscription = _subscription; + _subscription = null; + } + + subscription?.Dispose(); + } + } + """); + + /// Writes the nested disposable that does nothing. + /// The writer, at the level of the host's members. + private static void WriteEmptyDisposable(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class EmptyDisposable : IDisposable + { + public static EmptyDisposable Instance { get; } = new(); + + public void Dispose() + { + } + } + """); } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/Models/ViewModelControlHostInfo.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/Models/ViewModelControlHostInfo.cs index 38a5b615..7709c5f3 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/Models/ViewModelControlHostInfo.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/Models/ViewModelControlHostInfo.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Models; diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.Execute.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.Execute.cs deleted file mode 100644 index 12bfdb10..00000000 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.Execute.cs +++ /dev/null @@ -1,706 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; -using System.Threading; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI.SourceGenerators.CodeGeneration; -using ReactiveUI.SourceGenerators.Extensions; -using ReactiveUI.SourceGenerators.Helpers; -using ReactiveUI.SourceGenerators.Models; - -namespace ReactiveUI.SourceGenerators.WinForms; - -/// Generates a Windows Forms view-model control host. -/// -public partial class ViewModelControlHostGenerator -{ - /// The fully qualified generator name written to generated-code attributes. - private static readonly string GeneratorName = typeof(ViewModelControlHostGenerator).FullName!; - - /// The generator assembly version written to generated-code attributes. - private static readonly string GeneratorVersion = typeof(ViewModelControlHostGenerator).Assembly.GetName().Version.ToString(); - - /// The GeneratedCode attribute stamped on every generated host, built once. - private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); - - /// Gets generation metadata for an attributed view-model control host. - private static readonly ViewModelControlHostInfoFactory GetClassInfo = static ( - in GeneratorAttributeSyntaxContext context, - CancellationToken token) => - { - if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) - { - return default; - } - - token.ThrowIfCancellationRequested(); - var symbol = context.TargetSymbol; - var attributeData = context.Attributes[0]; - - token.ThrowIfCancellationRequested(); - if (symbol is not INamedTypeSymbol classSymbol) - { - return default; - } - - var viewModelTypeName = GetFirstConstructorArgument(attributeData); - if (viewModelTypeName is null) - { - return default; - } - - token.ThrowIfCancellationRequested(); - - // Get the containing type info - var targetInfo = TargetInfo.From(classSymbol); - - return new( - targetInfo.FileHintName, - targetInfo.TargetName, - targetInfo.TargetNamespace, - targetInfo.TargetNamespaceWithNamespace, - targetInfo.TargetVisibility, - targetInfo.TargetType, - viewModelTypeName!, - targetInfo.ParentInfo); - }; - - /// Gets view-model control host metadata from a generator attribute context. - /// The generator attribute context. - /// The cancellation token. - /// The view-model control host metadata, or when the target is invalid. - private delegate ViewModelControlHostInfo? ViewModelControlHostInfoFactory( - in GeneratorAttributeSyntaxContext context, - CancellationToken token); - - /// Gets the first string constructor argument from an attribute. - /// The attribute data. - /// The first string argument, or when none exists. - private static string? GetFirstConstructorArgument(AttributeData attributeData) - { - using var arguments = attributeData.GetConstructorArguments().GetEnumerator(); - return arguments.MoveNext() ? arguments.Current : null; - } - - /// Generates the partial declaration that turns the target into a view-model control host. - /// The view-model control host metadata. - /// The detected ReactiveUI integration. - /// The file's text. - private static string GenerateSource(ViewModelControlHostInfo info, ReactiveUiIntegration integration) - { - var exceptionHandler = integration.IsNewerThan22 - ? "RxState.DefaultExceptionHandler!.OnNext" - : "RxApp.DefaultExceptionHandler!.OnNext"; - - var writer = SourceWriter.Rent(); - WriteFileHeader(writer, integration); - - var depth = writer.OpenNamespace(info.TargetNamespace) + writer.OpenContainingTypes(info.ParentInfo); - _ = writer.Line(AttributeDefinitions.ExcludeFromCodeCoverage) - .Line("[DefaultProperty(\"ViewModel\")]") - .Line(GeneratedCodeAttribute) - .Append(info.TargetVisibility).Append(" partial ").Append(info.TargetType).Append(' ').Append(info.TargetName) - .Append(" : ").Append(info.ViewModelTypeName).Append(", IReactiveObject, ").Append(integration.ViewNamespace).Line(".IViewFor") - .OpenBlock(); - - WriteConstructor(writer, info.TargetName); - WriteProperties(writer.BlankLine(), integration); - WriteBindableProperties(writer.BlankLine()); - WriteDispose(writer.BlankLine()); - WriteSetupBindings(writer.BlankLine(), exceptionHandler, integration); - WriteUpdateContent(writer.BlankLine(), integration); - if (!integration.HasObservedProperty) - { - ControlHostExtensions.WritePropertyObservable(writer.BlankLine()); - } - - WriteObservableHelpers(writer.BlankLine()); - WriteCombineLatestSubscription(writer.BlankLine()); - WriteDisposableCollection(writer.BlankLine()); - WriteSubscriptionSlot(writer.BlankLine()); - WriteEmptyDisposable(writer.BlankLine()); - - return writer.CloseBlock() - .CloseBlocks(depth) - .RestoreNullableAndWarnings() - .ToStringAndReturn(); - } - - /// Writes the file header: the generated marker, the license, the usings, and the pragmas. - /// The writer, at the start of the file. - /// The detected ReactiveUI integration, which picks the ReactiveUI usings. - private static void WriteFileHeader(SourceWriter writer, ReactiveUiIntegration integration) => - _ = writer.AutoGenerated() - .Append("// Copyright (c) ").Append(DateTime.Now.Year).Line(" .NET Foundation and Contributors. All rights reserved.") - .Lines(""" - // Licensed to the .NET Foundation under one or more agreements. - // The .NET Foundation licenses this file to you under the MIT license. - // See the LICENSE file in the project root for full license information. - """) - .BlankLine() - .Lines(integration.UsingDirectives) - .Lines(""" - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Windows.Forms; - """) - .BlankLine() - .DisableWarningsEnableNullable(); - - /// Writes the host's fields and its constructor. - /// The writer, at the level of the host's members. - /// The host type's name. - private static void WriteConstructor(SourceWriter writer, string typeName) => - _ = writer.Lines(""" - private readonly DisposableCollection _disposables = new(); - private Control? _defaultContent; - private IObservable? _viewContractObservable; - private object? _viewModel; - private object? _content; - private bool _cacheViews; - - /// - """) - .Append("/// Initializes a new instance of the class.") - .Line("/// ") - .Append("public ").Append(typeName).Line("()") - .OpenBlock() - .Lines(""" - InitializeComponent(); - _cacheViews = DefaultCacheViewsEnabled; - SetupBindings(); - """) - .CloseBlock(); - - /// Writes the host's events and its content and view-location properties. - /// The writer, at the level of the host's members. - /// The detected ReactiveUI integration, which names the view locator's interface. - private static void WriteProperties(SourceWriter writer, ReactiveUiIntegration integration) - { - ControlHostExtensions.WritePropertyChangeEvents(writer); - _ = writer.BlankLine().Lines(""" - /// - /// Gets or sets a value indicating whether [default cache views enabled]. - /// - public static bool DefaultCacheViewsEnabled { get; set; } - - /// - /// Gets the current view. - /// - public Control? CurrentView => _content as Control; - - /// - /// Gets or sets the default content. - /// - [Category("ReactiveUI")] - [Description("The default control when no viewmodel is specified")] - public Control? DefaultContent { get => _defaultContent; set => this.RaiseAndSetIfChanged(ref _defaultContent, value); } - - /// - /// Gets or sets the view contract observable. - /// - /// - /// The view contract observable. - /// - [Browsable(false)] - public IObservable? ViewContractObservable { get => _viewContractObservable; set => this.RaiseAndSetIfChanged(ref _viewContractObservable, value); } - - /// - /// Gets or sets the view locator. - /// - [Browsable(false)] - """) - .Append("public ").Append(integration.ViewNamespace).Line(".IViewLocator? ViewLocator { get; set; }"); - } - - /// Writes the host's bindable view-model properties and its IReactiveObject implementation. - /// The writer, at the level of the host's members. - private static void WriteBindableProperties(SourceWriter writer) => - _ = writer.Lines(""" - /// - [Category("ReactiveUI")] - [Description("The viewmodel to host.")] - [Bindable(true)] - public object? ViewModel { get => _viewModel; set => this.RaiseAndSetIfChanged(ref _viewModel, value); } - - /// - /// Gets or sets the content. - /// - [Category("ReactiveUI")] - [Description("The Current View")] - [Bindable(true)] - public object? Content { get => _content; protected set => this.RaiseAndSetIfChanged(ref _content, value); } - - /// - /// Gets or sets a value indicating whether to cache views. - /// - [Category("ReactiveUI")] - [Description("Cache Views")] - [Bindable(true)] - [DefaultValue(true)] - public bool CacheViews { get => _cacheViews; set => this.RaiseAndSetIfChanged(ref _cacheViews, value); } - """); - - /// Writes the host's disposal. - /// The writer, at the level of the host's members. - private static void WriteDispose(SourceWriter writer) => - _ = writer.Lines(""" - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing) - { - _disposables.Dispose(); - components?.Dispose(); - } - - base.Dispose(disposing); - } - """); - - /// Writes the bindings that swap the hosted view as the content, default content, and view model change. - /// The writer, at the level of the host's members. - /// The ReactiveUI default exception handler subscriptions report to. - /// The detected ReactiveUI integration, which picks how the host follows its properties. - private static void WriteSetupBindings(SourceWriter writer, string exceptionHandler, ReactiveUiIntegration integration) => - _ = writer.Line("private void SetupBindings()") - .OpenBlock() - .Append("AddSubscription(").AppendPropertyValue(integration, "object?", "Content").Line(", new ValueObserver(x =>") - .Lines(""" - { - if (x is not Control control) - { - return; - } - - // change the view in the ui - SuspendLayout(); - // clear out existing visible control view - foreach (Control? c in Controls) - { - c?.Dispose(); - Controls.Remove(c); - } - - control.Dock = DockStyle.Fill; - Controls.Add(control); - ResumeLayout(); - """) - .Append("}, ").Append(exceptionHandler).Line("));") - .Append("AddSubscription(").AppendPropertyValue(integration, "Control?", "DefaultContent").Line(", new ValueObserver(x =>") - .Lines(""" - { - if (x is not null) - { - Content = DefaultContent; - } - """) - .Append("}, ").Append(exceptionHandler).Line("));") - .Lines(""" - ViewContractObservable = new ReturnObservable(string.Empty); - var viewModelSubscription = new CombineLatestSubscription( - UpdateContent, - """) - .Indent().Append(exceptionHandler).Line(");").Outdent() - .Lines(""" - _disposables.Add(viewModelSubscription); - viewModelSubscription.Connect( - """) - .Indent().AppendPropertyValue(integration, "object?", "ViewModel").Line(",") - .AppendPropertyObservable(integration, "string", "ViewContractObservable").Line(");").Outdent() - .CloseBlock(); - - /// Writes the methods that register a subscription and resolve the view for a new view model. - /// The writer, at the level of the host's members. - /// The detected ReactiveUI integration, which names IViewFor and the current view locator. - private static void WriteUpdateContent(SourceWriter writer, ReactiveUiIntegration integration) => - _ = writer.Lines(""" - private void AddSubscription(IObservable observable, IObserver observer) - { - var slot = new SubscriptionSlot(); - _disposables.Add(slot); - slot.Set(observable.Subscribe(observer)); - } - - private void UpdateContent(object? viewModel, string contract) - { - // set content to default when viewmodel is null - if (viewModel is null) - { - if (DefaultContent is not null) - { - Content = DefaultContent; - } - - return; - } - - if (CacheViews) - { - // when caching views, check the current viewmodel and type - """) - .Indent().Indent() - .Append("var currentView = _content as ").Append(integration.ViewNamespace).Append(".IViewFor").EndStatement() - .Outdent().Outdent() - .Lines(""" - if (currentView?.ViewModel is not null && currentView.ViewModel.GetType() == viewModel.GetType()) - { - currentView.ViewModel = viewModel; - // return early here after setting the viewmodel - // allowing the view to update its bindings - return; - } - } - """) - .BlankLine() - .Indent() - .Append("var viewLocator = ViewLocator ?? ").Append(integration.CurrentViewLocator).EndStatement() - .Outdent() - .Lines(""" - var view = viewLocator.ResolveView(viewModel, contract); - if (view is not null) - { - view.ViewModel = viewModel; - Content = view; - } - } - """); - - /// Writes the nested observable and observer the host subscribes with, so it needs no Rx dependency. - /// The writer, at the level of the host's members. - private static void WriteObservableHelpers(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class ReturnObservable(T value) : IObservable - { - public IDisposable Subscribe(IObserver observer) - { - observer.OnNext(value); - observer.OnCompleted(); - return EmptyDisposable.Instance; - } - } - - private sealed class ValueObserver(Action onNext, Action onError, Action? onCompleted = null) : IObserver - { - public void OnCompleted() => onCompleted?.Invoke(); - - public void OnError(Exception error) => onError(error); - - public void OnNext(T value) => onNext(value); - } - """); - - /// Writes the nested subscription that combines the latest view model and contract values. - /// The writer, at the level of the host's members. - private static void WriteCombineLatestSubscription(SourceWriter writer) - { - _ = writer.Line("private sealed class CombineLatestSubscription : IDisposable").OpenBlock(); - WriteCombineLatestState(writer); - WriteCombineLatestValues(writer.BlankLine()); - WriteCombineLatestCompletion(writer.BlankLine()); - WriteCombineLatestFailure(writer.BlankLine()); - _ = writer.CloseBlock(); - } - - /// Writes the combined subscription's state, its constructor, and how it connects and disposes. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestState(SourceWriter writer) => - _ = writer.Lines(""" - private readonly object _gate = new(); - private readonly Action _onNext; - private readonly Action _onError; - private readonly SubscriptionSlot _leftSubscription = new(); - private readonly SubscriptionSlot _rightSubscription = new(); - private TLeft _left = default!; - private TRight _right = default!; - private bool _hasLeft; - private bool _hasRight; - private bool _leftCompleted; - private bool _rightCompleted; - private bool _isStopped; - - public CombineLatestSubscription( - Action onNext, - Action onError) - { - _onNext = onNext; - _onError = onError; - } - - public void Connect(IObservable left, IObservable right) - { - _leftSubscription.Set(left.Subscribe(new ValueObserver(SetLeft, Fail, CompleteLeft))); - if (IsStopped()) - { - return; - } - - _rightSubscription.Set(right.Subscribe(new ValueObserver(SetRight, Fail, CompleteRight))); - } - - public void Dispose() - { - lock (_gate) - { - _isStopped = true; - } - - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - """); - - /// Writes the combined subscription's value callbacks, which publish once both sides have a value. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestValues(SourceWriter writer) => - _ = writer.Lines(""" - private void SetLeft(TLeft value) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _left = value; - _hasLeft = true; - if (!_hasRight) - { - return; - } - - _onNext(value, _right); - } - } - - private void SetRight(TRight value) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _right = value; - _hasRight = true; - if (!_hasLeft) - { - return; - } - - _onNext(_left, value); - } - } - """); - - /// Writes the combined subscription's completion callbacks. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestCompletion(SourceWriter writer) => - _ = writer.Lines(""" - private void CompleteLeft() - { - var shouldStop = false; - lock (_gate) - { - if (_isStopped) - { - return; - } - - _leftCompleted = true; - shouldStop = !_hasLeft || _rightCompleted; - _isStopped = shouldStop; - } - - if (shouldStop) - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - - private void CompleteRight() - { - var shouldStop = false; - lock (_gate) - { - if (_isStopped) - { - return; - } - - _rightCompleted = true; - shouldStop = !_hasRight || _leftCompleted; - _isStopped = shouldStop; - } - - if (shouldStop) - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - """); - - /// Writes the combined subscription's error callback and its stopped check. - /// The writer, at the level of the subscription's members. - private static void WriteCombineLatestFailure(SourceWriter writer) => - _ = writer.Lines(""" - private void Fail(Exception error) - { - lock (_gate) - { - if (_isStopped) - { - return; - } - - _isStopped = true; - } - - try - { - _onError(error); - } - finally - { - _leftSubscription.Dispose(); - _rightSubscription.Dispose(); - } - } - - private bool IsStopped() - { - lock (_gate) - { - return _isStopped; - } - } - """); - - /// Writes the nested collection that disposes the host's subscriptions together. - /// The writer, at the level of the host's members. - private static void WriteDisposableCollection(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class DisposableCollection : IDisposable - { - private readonly object _gate = new(); - private readonly List _items = new(); - private bool _isDisposed; - - public void Add(IDisposable item) - { - var disposeItem = false; - lock (_gate) - { - disposeItem = _isDisposed; - if (!disposeItem) - { - _items.Add(item); - } - } - - if (disposeItem) - { - item.Dispose(); - } - } - - public void Dispose() - { - IDisposable[] items; - lock (_gate) - { - if (_isDisposed) - { - return; - } - - _isDisposed = true; - items = _items.ToArray(); - _items.Clear(); - } - - foreach (var item in items) - { - item.Dispose(); - } - } - } - """); - - /// Writes the nested slot holding one replaceable subscription. - /// The writer, at the level of the host's members. - private static void WriteSubscriptionSlot(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class SubscriptionSlot : IDisposable - { - private readonly object _gate = new(); - private IDisposable? _subscription; - private bool _isDisposed; - - public void Set(IDisposable subscription) - { - IDisposable? previous; - var disposeSubscription = false; - lock (_gate) - { - disposeSubscription = _isDisposed; - previous = _subscription; - if (!disposeSubscription) - { - _subscription = subscription; - } - } - - previous?.Dispose(); - if (disposeSubscription) - { - subscription.Dispose(); - } - } - - public void Dispose() - { - IDisposable? subscription; - lock (_gate) - { - if (_isDisposed) - { - return; - } - - _isDisposed = true; - subscription = _subscription; - _subscription = null; - } - - subscription?.Dispose(); - } - } - """); - - /// Writes the nested disposable that does nothing. - /// The writer, at the level of the host's members. - private static void WriteEmptyDisposable(SourceWriter writer) => - _ = writer.Lines(""" - private sealed class EmptyDisposable : IDisposable - { - public static EmptyDisposable Instance { get; } = new(); - - public void Dispose() - { - } - } - """); -} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.cs b/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.cs index d17d0cdd..5c59c98a 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.cs +++ b/src/ReactiveUI.SourceGenerators.Roslyn/ViewModelControlHost/ViewModelControlHostGenerator.cs @@ -1,18 +1,82 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System; +using System.Threading; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.SourceGenerators.CodeGeneration; using ReactiveUI.SourceGenerators.Extensions; using ReactiveUI.SourceGenerators.Helpers; +using ReactiveUI.SourceGenerators.Models; namespace ReactiveUI.SourceGenerators.WinForms; /// A source generator for generating reactive properties. [Generator(LanguageNames.CSharp)] -public sealed partial class ViewModelControlHostGenerator : IIncrementalGenerator +public sealed class ViewModelControlHostGenerator : IIncrementalGenerator { + /// The fully qualified generator name written to generated-code attributes. + private static readonly string GeneratorName = typeof(ViewModelControlHostGenerator).FullName!; + + /// The generator assembly version written to generated-code attributes. + private static readonly string GeneratorVersion = typeof(ViewModelControlHostGenerator).Assembly.GetName().Version.ToString(); + + /// The GeneratedCode attribute stamped on every generated host, built once. + private static readonly string GeneratedCodeAttribute = SourceWriterExtensions.GeneratedCodeAttribute(GeneratorName, GeneratorVersion); + + /// Gets generation metadata for an attributed view-model control host. + private static readonly ViewModelControlHostInfoFactory GetClassInfo = static ( + in GeneratorAttributeSyntaxContext context, + CancellationToken token) => + { + if (!(context.TargetNode is ClassDeclarationSyntax declaredClass && declaredClass.Modifiers.Any(SyntaxKind.PartialKeyword))) + { + return default; + } + + token.ThrowIfCancellationRequested(); + var symbol = context.TargetSymbol; + var attributeData = context.Attributes[0]; + + token.ThrowIfCancellationRequested(); + if (symbol is not INamedTypeSymbol classSymbol) + { + return default; + } + + var viewModelTypeName = GetFirstConstructorArgument(attributeData); + if (viewModelTypeName is null) + { + return default; + } + + token.ThrowIfCancellationRequested(); + + // Get the containing type info + var targetInfo = TargetInfo.From(classSymbol); + + return new( + targetInfo.FileHintName, + targetInfo.TargetName, + targetInfo.TargetNamespace, + targetInfo.TargetNamespaceWithNamespace, + targetInfo.TargetVisibility, + targetInfo.TargetType, + viewModelTypeName!, + targetInfo.ParentInfo); + }; + + /// Gets view-model control host metadata from a generator attribute context. + /// The generator attribute context. + /// The cancellation token. + /// The view-model control host metadata, or when the target is invalid. + private delegate ViewModelControlHostInfo? ViewModelControlHostInfoFactory( + in GeneratorAttributeSyntaxContext context, + CancellationToken token); + /// public void Initialize(IncrementalGeneratorInitializationContext context) { @@ -30,4 +94,630 @@ public void Initialize(IncrementalGeneratorInitializationContext context) context.RegisterSourceOutput(hosts.Combine(context.ReactiveUiIntegration()), static (context, input) => context.AddSource($"{input.Left.FileHintName}.ViewModelControlHost.g.cs", GenerateSource(input.Left, input.Right))); } + + /// Gets the first string constructor argument from an attribute. + /// The attribute data. + /// The first string argument, or when none exists. + private static string? GetFirstConstructorArgument(AttributeData attributeData) + { + using var arguments = attributeData.GetConstructorArguments().GetEnumerator(); + return arguments.MoveNext() ? arguments.Current : null; + } + + /// Generates the partial declaration that turns the target into a view-model control host. + /// The view-model control host metadata. + /// The detected ReactiveUI integration. + /// The file's text. + private static string GenerateSource(ViewModelControlHostInfo info, ReactiveUiIntegration integration) + { + var exceptionHandler = integration.IsNewerThan22 + ? "RxState.DefaultExceptionHandler!.OnNext" + : "RxApp.DefaultExceptionHandler!.OnNext"; + + var writer = SourceWriter.Rent(); + WriteFileHeader(writer, integration); + + var depth = writer.OpenNamespace(info.TargetNamespace) + writer.OpenContainingTypes(info.ParentInfo); + _ = writer.Line(AttributeDefinitions.ExcludeFromCodeCoverage) + .Line("[DefaultProperty(\"ViewModel\")]") + .Line(GeneratedCodeAttribute) + .Append(info.TargetVisibility).Append(" partial ").Append(info.TargetType).Append(' ').Append(info.TargetName) + .Append(" : ").Append(info.ViewModelTypeName).Append(", IReactiveObject, ").Append(integration.ViewNamespace).Line(".IViewFor") + .OpenBlock(); + + WriteConstructor(writer, info.TargetName); + WriteProperties(writer.BlankLine(), integration); + WriteBindableProperties(writer.BlankLine()); + WriteDispose(writer.BlankLine()); + WriteSetupBindings(writer.BlankLine(), exceptionHandler, integration); + WriteUpdateContent(writer.BlankLine(), integration); + if (!integration.HasObservedProperty) + { + ControlHostExtensions.WritePropertyObservable(writer.BlankLine()); + } + + WriteObservableHelpers(writer.BlankLine()); + WriteCombineLatestSubscription(writer.BlankLine()); + WriteDisposableCollection(writer.BlankLine()); + WriteSubscriptionSlot(writer.BlankLine()); + WriteEmptyDisposable(writer.BlankLine()); + + return writer.CloseBlock() + .CloseBlocks(depth) + .RestoreNullableAndWarnings() + .ToStringAndReturn(); + } + + /// Writes the file header: the generated marker, the license, the usings, and the pragmas. + /// The writer, at the start of the file. + /// The detected ReactiveUI integration, which picks the ReactiveUI usings. + private static void WriteFileHeader(SourceWriter writer, ReactiveUiIntegration integration) => + _ = writer.AutoGenerated() + .Lines(""" + // Copyright (c) ReactiveUI and Contributors. All rights reserved. + // ReactiveUI and Contributors licenses this file to you under the MIT license. + // See the LICENSE file in the project root for full license information. + """) + .BlankLine() + .Lines(integration.UsingDirectives) + .Lines(""" + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Windows.Forms; + """) + .BlankLine() + .DisableWarningsEnableNullable(); + + /// Writes the host's fields and its constructor. + /// The writer, at the level of the host's members. + /// The host type's name. + private static void WriteConstructor(SourceWriter writer, string typeName) => + _ = writer.Lines(""" + private readonly DisposableCollection _disposables = new(); + private Control? _defaultContent; + private IObservable? _viewContractObservable; + private object? _viewModel; + private object? _content; + private bool _cacheViews; + + /// + """) + .Append("/// Initializes a new instance of the class.") + .Line("/// ") + .Append("public ").Append(typeName).Line("()") + .OpenBlock() + .Lines(""" + InitializeComponent(); + _cacheViews = DefaultCacheViewsEnabled; + SetupBindings(); + """) + .CloseBlock(); + + /// Writes the host's events and its content and view-location properties. + /// The writer, at the level of the host's members. + /// The detected ReactiveUI integration, which names the view locator's interface. + private static void WriteProperties(SourceWriter writer, ReactiveUiIntegration integration) + { + ControlHostExtensions.WritePropertyChangeEvents(writer); + _ = writer.BlankLine().Lines(""" + /// + /// Gets or sets a value indicating whether [default cache views enabled]. + /// + public static bool DefaultCacheViewsEnabled { get; set; } + + /// + /// Gets the current view. + /// + public Control? CurrentView => _content as Control; + + /// + /// Gets or sets the default content. + /// + [Category("ReactiveUI")] + [Description("The default control when no viewmodel is specified")] + public Control? DefaultContent { get => _defaultContent; set => this.RaiseAndSetIfChanged(ref _defaultContent, value); } + + /// + /// Gets or sets the view contract observable. + /// + /// + /// The view contract observable. + /// + [Browsable(false)] + public IObservable? ViewContractObservable { get => _viewContractObservable; set => this.RaiseAndSetIfChanged(ref _viewContractObservable, value); } + + /// + /// Gets or sets the view locator. + /// + [Browsable(false)] + """) + .Append("public ").Append(integration.ViewNamespace).Line(".IViewLocator? ViewLocator { get; set; }"); + } + + /// Writes the host's bindable view-model properties and its IReactiveObject implementation. + /// The writer, at the level of the host's members. + private static void WriteBindableProperties(SourceWriter writer) => + _ = writer.Lines(""" + /// + [Category("ReactiveUI")] + [Description("The viewmodel to host.")] + [Bindable(true)] + public object? ViewModel { get => _viewModel; set => this.RaiseAndSetIfChanged(ref _viewModel, value); } + + /// + /// Gets or sets the content. + /// + [Category("ReactiveUI")] + [Description("The Current View")] + [Bindable(true)] + public object? Content { get => _content; protected set => this.RaiseAndSetIfChanged(ref _content, value); } + + /// + /// Gets or sets a value indicating whether to cache views. + /// + [Category("ReactiveUI")] + [Description("Cache Views")] + [Bindable(true)] + [DefaultValue(true)] + public bool CacheViews { get => _cacheViews; set => this.RaiseAndSetIfChanged(ref _cacheViews, value); } + """); + + /// Writes the host's disposal. + /// The writer, at the level of the host's members. + private static void WriteDispose(SourceWriter writer) => + _ = writer.Lines(""" + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) + { + _disposables.Dispose(); + components?.Dispose(); + } + + base.Dispose(disposing); + } + """); + + /// Writes the bindings that swap the hosted view as the content, default content, and view model change. + /// The writer, at the level of the host's members. + /// The ReactiveUI default exception handler subscriptions report to. + /// The detected ReactiveUI integration, which picks how the host follows its properties. + private static void WriteSetupBindings(SourceWriter writer, string exceptionHandler, ReactiveUiIntegration integration) => + _ = writer.Line("private void SetupBindings()") + .OpenBlock() + .Append("AddSubscription(").AppendPropertyValue(integration, "object?", "Content").Line(", new ValueObserver(x =>") + .Lines(""" + { + if (x is not Control control) + { + return; + } + + // change the view in the ui + SuspendLayout(); + // clear out existing visible control view + foreach (Control? c in Controls) + { + c?.Dispose(); + Controls.Remove(c); + } + + control.Dock = DockStyle.Fill; + Controls.Add(control); + ResumeLayout(); + """) + .Append("}, ").Append(exceptionHandler).Line("));") + .Append("AddSubscription(").AppendPropertyValue(integration, "Control?", "DefaultContent").Line(", new ValueObserver(x =>") + .Lines(""" + { + if (x is not null) + { + Content = DefaultContent; + } + """) + .Append("}, ").Append(exceptionHandler).Line("));") + .Lines(""" + ViewContractObservable = new ReturnObservable(string.Empty); + var viewModelSubscription = new CombineLatestSubscription( + UpdateContent, + """) + .Indent().Append(exceptionHandler).Line(");").Outdent() + .Lines(""" + _disposables.Add(viewModelSubscription); + viewModelSubscription.Connect( + """) + .Indent().AppendPropertyValue(integration, "object?", "ViewModel").Line(",") + .AppendPropertyObservable(integration, "string", "ViewContractObservable").Line(");").Outdent() + .CloseBlock(); + + /// Writes the methods that register a subscription and resolve the view for a new view model. + /// The writer, at the level of the host's members. + /// The detected ReactiveUI integration, which names IViewFor and the current view locator. + private static void WriteUpdateContent(SourceWriter writer, ReactiveUiIntegration integration) => + _ = writer.Lines(""" + private void AddSubscription(IObservable observable, IObserver observer) + { + var slot = new SubscriptionSlot(); + _disposables.Add(slot); + slot.Set(observable.Subscribe(observer)); + } + + private void UpdateContent(object? viewModel, string contract) + { + // set content to default when viewmodel is null + if (viewModel is null) + { + if (DefaultContent is not null) + { + Content = DefaultContent; + } + + return; + } + + if (CacheViews) + { + // when caching views, check the current viewmodel and type + """) + .Indent().Indent() + .Append("var currentView = _content as ").Append(integration.ViewNamespace).Append(".IViewFor").EndStatement() + .Outdent().Outdent() + .Lines(""" + if (currentView?.ViewModel is not null && currentView.ViewModel.GetType() == viewModel.GetType()) + { + currentView.ViewModel = viewModel; + // return early here after setting the viewmodel + // allowing the view to update its bindings + return; + } + } + """) + .BlankLine() + .Indent() + .Append("var viewLocator = ViewLocator ?? ").Append(integration.CurrentViewLocator).EndStatement() + .Outdent() + .Lines(""" + var view = viewLocator.ResolveView(viewModel, contract); + if (view is not null) + { + view.ViewModel = viewModel; + Content = view; + } + } + """); + + /// Writes the nested observable and observer the host subscribes with, so it needs no Rx dependency. + /// The writer, at the level of the host's members. + private static void WriteObservableHelpers(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class ReturnObservable(T value) : IObservable + { + public IDisposable Subscribe(IObserver observer) + { + observer.OnNext(value); + observer.OnCompleted(); + return EmptyDisposable.Instance; + } + } + + private sealed class ValueObserver(Action onNext, Action onError, Action? onCompleted = null) : IObserver + { + public void OnCompleted() => onCompleted?.Invoke(); + + public void OnError(Exception error) => onError(error); + + public void OnNext(T value) => onNext(value); + } + """); + + /// Writes the nested subscription that combines the latest view model and contract values. + /// The writer, at the level of the host's members. + private static void WriteCombineLatestSubscription(SourceWriter writer) + { + _ = writer.Line("private sealed class CombineLatestSubscription : IDisposable").OpenBlock(); + WriteCombineLatestState(writer); + WriteCombineLatestValues(writer.BlankLine()); + WriteCombineLatestCompletion(writer.BlankLine()); + WriteCombineLatestFailure(writer.BlankLine()); + _ = writer.CloseBlock(); + } + + /// Writes the combined subscription's state, its constructor, and how it connects and disposes. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestState(SourceWriter writer) => + _ = writer.Lines(""" + private readonly object _gate = new(); + private readonly Action _onNext; + private readonly Action _onError; + private readonly SubscriptionSlot _leftSubscription = new(); + private readonly SubscriptionSlot _rightSubscription = new(); + private TLeft _left = default!; + private TRight _right = default!; + private bool _hasLeft; + private bool _hasRight; + private bool _leftCompleted; + private bool _rightCompleted; + private bool _isStopped; + + public CombineLatestSubscription( + Action onNext, + Action onError) + { + _onNext = onNext; + _onError = onError; + } + + public void Connect(IObservable left, IObservable right) + { + _leftSubscription.Set(left.Subscribe(new ValueObserver(SetLeft, Fail, CompleteLeft))); + if (IsStopped()) + { + return; + } + + _rightSubscription.Set(right.Subscribe(new ValueObserver(SetRight, Fail, CompleteRight))); + } + + public void Dispose() + { + lock (_gate) + { + _isStopped = true; + } + + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + """); + + /// Writes the combined subscription's value callbacks, which publish once both sides have a value. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestValues(SourceWriter writer) => + _ = writer.Lines(""" + private void SetLeft(TLeft value) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _left = value; + _hasLeft = true; + if (!_hasRight) + { + return; + } + + _onNext(value, _right); + } + } + + private void SetRight(TRight value) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _right = value; + _hasRight = true; + if (!_hasLeft) + { + return; + } + + _onNext(_left, value); + } + } + """); + + /// Writes the combined subscription's completion callbacks. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestCompletion(SourceWriter writer) => + _ = writer.Lines(""" + private void CompleteLeft() + { + var shouldStop = false; + lock (_gate) + { + if (_isStopped) + { + return; + } + + _leftCompleted = true; + shouldStop = !_hasLeft || _rightCompleted; + _isStopped = shouldStop; + } + + if (shouldStop) + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + + private void CompleteRight() + { + var shouldStop = false; + lock (_gate) + { + if (_isStopped) + { + return; + } + + _rightCompleted = true; + shouldStop = !_hasRight || _leftCompleted; + _isStopped = shouldStop; + } + + if (shouldStop) + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + """); + + /// Writes the combined subscription's error callback and its stopped check. + /// The writer, at the level of the subscription's members. + private static void WriteCombineLatestFailure(SourceWriter writer) => + _ = writer.Lines(""" + private void Fail(Exception error) + { + lock (_gate) + { + if (_isStopped) + { + return; + } + + _isStopped = true; + } + + try + { + _onError(error); + } + finally + { + _leftSubscription.Dispose(); + _rightSubscription.Dispose(); + } + } + + private bool IsStopped() + { + lock (_gate) + { + return _isStopped; + } + } + """); + + /// Writes the nested collection that disposes the host's subscriptions together. + /// The writer, at the level of the host's members. + private static void WriteDisposableCollection(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class DisposableCollection : IDisposable + { + private readonly object _gate = new(); + private readonly List _items = new(); + private bool _isDisposed; + + public void Add(IDisposable item) + { + var disposeItem = false; + lock (_gate) + { + disposeItem = _isDisposed; + if (!disposeItem) + { + _items.Add(item); + } + } + + if (disposeItem) + { + item.Dispose(); + } + } + + public void Dispose() + { + IDisposable[] items; + lock (_gate) + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + items = _items.ToArray(); + _items.Clear(); + } + + foreach (var item in items) + { + item.Dispose(); + } + } + } + """); + + /// Writes the nested slot holding one replaceable subscription. + /// The writer, at the level of the host's members. + private static void WriteSubscriptionSlot(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class SubscriptionSlot : IDisposable + { + private readonly object _gate = new(); + private IDisposable? _subscription; + private bool _isDisposed; + + public void Set(IDisposable subscription) + { + IDisposable? previous; + var disposeSubscription = false; + lock (_gate) + { + disposeSubscription = _isDisposed; + previous = _subscription; + if (!disposeSubscription) + { + _subscription = subscription; + } + } + + previous?.Dispose(); + if (disposeSubscription) + { + subscription.Dispose(); + } + } + + public void Dispose() + { + IDisposable? subscription; + lock (_gate) + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + subscription = _subscription; + _subscription = null; + } + + subscription?.Dispose(); + } + } + """); + + /// Writes the nested disposable that does nothing. + /// The writer, at the level of the host's members. + private static void WriteEmptyDisposable(SourceWriter writer) => + _ = writer.Lines(""" + private sealed class EmptyDisposable : IDisposable + { + public static EmptyDisposable Instance { get; } = new(); + + public void Dispose() + { + } + } + """); } diff --git a/src/ReactiveUI.SourceGenerators.Roslyn4140/ReactiveUI.SourceGenerators.Roslyn4140.csproj b/src/ReactiveUI.SourceGenerators.Roslyn4140/ReactiveUI.SourceGenerators.Roslyn4140.csproj index d3388db6..f6386146 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn4140/ReactiveUI.SourceGenerators.Roslyn4140.csproj +++ b/src/ReactiveUI.SourceGenerators.Roslyn4140/ReactiveUI.SourceGenerators.Roslyn4140.csproj @@ -1,43 +1,40 @@ - $(RoslynTfm) - enable - latest - true + netstandard2.0 + ReactiveUI.SourceGenerators.Roslyn + false true true - true false true - false - - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI - ReactiveUI.SourceGenerators.Roslyn + full + Source generators for ReactiveUI properties, commands, reactive objects, derived lists and view hosts. $(DefineConstants);ROSYLN_412 - - - - - + + - - + + - + + + + + - - + + diff --git a/src/ReactiveUI.SourceGenerators.Roslyn480/ReactiveUI.SourceGenerators.Roslyn480.csproj b/src/ReactiveUI.SourceGenerators.Roslyn480/ReactiveUI.SourceGenerators.Roslyn480.csproj index 571ad7a3..1f71cdff 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn480/ReactiveUI.SourceGenerators.Roslyn480.csproj +++ b/src/ReactiveUI.SourceGenerators.Roslyn480/ReactiveUI.SourceGenerators.Roslyn480.csproj @@ -1,42 +1,40 @@ - $(RoslynTfm) - enable - latest - true + netstandard2.0 + ReactiveUI.SourceGenerators.Roslyn + false true true - true false true - false - - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI - ReactiveUI.SourceGenerators.Roslyn - + full + Source generators for ReactiveUI properties, commands, reactive objects, derived lists and view hosts. + - - - - - + + - + + - + + + + + - - + + diff --git a/src/ReactiveUI.SourceGenerators.Roslyn5000/ReactiveUI.SourceGenerators.Roslyn5000.csproj b/src/ReactiveUI.SourceGenerators.Roslyn5000/ReactiveUI.SourceGenerators.Roslyn5000.csproj index 50ed7c1f..008b4e7f 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn5000/ReactiveUI.SourceGenerators.Roslyn5000.csproj +++ b/src/ReactiveUI.SourceGenerators.Roslyn5000/ReactiveUI.SourceGenerators.Roslyn5000.csproj @@ -1,34 +1,39 @@ + - $(RoslynTfm) - enable - latest - true + netstandard2.0 + ReactiveUI.SourceGenerators.Roslyn + false true true - true false true - false - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI - ReactiveUI.SourceGenerators.Roslyn + full + Source generators for ReactiveUI properties, commands, reactive objects, derived lists and view hosts. $(DefineConstants);ROSYLN_500 + - - - - - + + + - + + + - + + + + + + - - + + + diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/PooledBuilder.cs b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledBuilder.cs similarity index 94% rename from src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/PooledBuilder.cs rename to src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledBuilder.cs index bfd49f41..06fa4811 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/PooledBuilder.cs +++ b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledBuilder.cs @@ -1,8 +1,7 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. -using System; using System.Text; namespace ReactiveUI.SourceGenerators.CodeGeneration; diff --git a/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledStringBuilder.cs b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledStringBuilder.cs new file mode 100644 index 00000000..6388e053 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/PooledStringBuilder.cs @@ -0,0 +1,246 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace ReactiveUI.SourceGenerators.CodeGeneration; + +/// A fluent string builder for short generated fragments, backed by thread-local pooled buffers. +/// +/// +/// The emitters build a great many small, transient fragments - grouping keys, type argument lists, property +/// access chains - one per invocation or per group. Each of those was a fresh builder and its own chunk chain. +/// Accumulating into a pooled char[] instead lets the buffer be reused across fragments, so the steady +/// state for the whole emission is a handful of arrays rather than one allocation per fragment. +/// +/// +/// The free list is thread-local rather than a shared array pool: the emitters nest fragment builders inside +/// one another, which exhausts a shared pool's lock-free tier and would put renting on a contended path for no +/// benefit. Nothing here needs to be visible across threads, because a builder never outlives the call that +/// rented it. +/// +/// +/// Unlike a single-use design, leaves the buffer in place so the builder can be cleared +/// and reused across a loop, which is how the grouping keys are built. Call when finished. +/// Forgetting to costs reuse, never correctness. +/// +/// +internal sealed class PooledStringBuilder +{ + /// The default rented capacity, sized to hold a typical fragment without growing. + private const int DefaultCapacity = 256; + + /// The factor the buffer grows by when exhausted. + private const int GrowthFactor = 2; + + /// The number of buffers cached per thread, covering the emitters' fragment nesting depth. + private const int MaxPooledPerThread = 16; + + /// The base of the decimal rendering used by . + private const int DecimalBase = 10; + + /// The widest decimal rendering of an , including the sign. + private const int MaxIntegerDigits = 11; + + /// The per-thread free list of reusable buffers. + [ThreadStatic] + private static char[][]? _pool; + + /// The number of populated slots in . + [ThreadStatic] + private static int _pooledCount; + + /// The pooled array currently backing this builder. + private char[] _buffer; + + /// The write position within . + private int _position; + + /// Initializes a new instance of the class. + internal PooledStringBuilder() + : this(DefaultCapacity) + { + } + + /// Initializes a new instance of the class. + /// The capacity to rent up front. + internal PooledStringBuilder(int capacity) => + _buffer = RentBuffer(capacity < DefaultCapacity ? DefaultCapacity : capacity); + + /// Gets the number of characters accumulated so far. + internal int Length => _position; + + /// Materializes the accumulated content, leaving the builder usable. + /// The accumulated string. + public override string ToString() => _position == 0 ? string.Empty : new string(_buffer, 0, _position); + + /// Appends a string. + /// The string to append, which may be null or empty. + /// This builder, for chaining. + internal PooledStringBuilder Append(string? value) + { + if (string.IsNullOrEmpty(value)) + { + return this; + } + + EnsureCapacity(_position + value!.Length); + value.CopyTo(0, _buffer, _position, value.Length); + _position += value.Length; + return this; + } + + /// Appends a single character. + /// The character to append. + /// This builder, for chaining. + internal PooledStringBuilder Append(char value) + { + EnsureCapacity(_position + 1); + _buffer[_position] = value; + _position++; + return this; + } + + /// Appends a boolean, rendered the way the framework builder renders it. + /// The value to append. + /// This builder, for chaining. + /// + /// Matches the framework rendering exactly, because these appends land in the grouping keys that decide + /// which invocations share a generated overload. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal PooledStringBuilder Append(bool value) => Append(value ? "True" : "False"); + + /// Appends the invariant decimal rendering of an integer. + /// The value to append. + /// This builder, for chaining. + /// + /// Formats digits straight into the buffer. These appends sit in per-property loops, so going through + /// ToString would allocate a string per index for a value that is almost always one or two digits. + /// + internal PooledStringBuilder Append(int value) + { + EnsureCapacity(_position + MaxIntegerDigits); + + if (value < 0) + { + _buffer[_position] = '-'; + _position++; + } + + // Accumulated in the negative range rather than the positive one, so int.MinValue needs no special case. + var remaining = value < 0 ? value : -value; + var digitStart = _position; + + do + { + _buffer[_position] = (char)('0' - (remaining % DecimalBase)); + _position++; + remaining /= DecimalBase; + } + while (remaining != 0); + + ReverseDigits(digitStart); + return this; + } + + /// Empties the builder, keeping its buffer for the next fragment. + /// This builder, for chaining. + internal PooledStringBuilder Clear() + { + _position = 0; + return this; + } + + /// Hands the buffer back to the thread's free list. + /// The builder must not be appended to afterwards. + internal void Return() + { + var toReturn = _buffer; + _buffer = []; + _position = 0; + ReturnBuffer(toReturn); + } + + /// Materializes the accumulated content and hands the buffer back. + /// The accumulated string. + internal string ToStringAndReturn() + { + var result = ToString(); + Return(); + return result; + } + + /// Takes a buffer of at least the requested length from the thread's free list, or allocates one. + /// The minimum length required. + /// A buffer at least long. + private static char[] RentBuffer(int minimumLength) + { + var pool = _pool; + if (pool is not null) + { + for (var i = _pooledCount - 1; i >= 0; i--) + { + var candidate = pool[i]; + if (candidate.Length < minimumLength) + { + continue; + } + + _pooledCount--; + pool[i] = pool[_pooledCount]; + pool[_pooledCount] = null!; + return candidate; + } + } + + return new char[minimumLength]; + } + + /// Puts a buffer back on the thread's free list, dropping it when the list is full. + /// The buffer to return. + private static void ReturnBuffer(char[] buffer) + { + if (buffer.Length == 0) + { + return; + } + + var pool = _pool ??= new char[MaxPooledPerThread][]; + if (_pooledCount >= MaxPooledPerThread) + { + return; + } + + pool[_pooledCount] = buffer; + _pooledCount++; + } + + /// Grows the buffer when the requested length no longer fits. + /// The total capacity required. + private void EnsureCapacity(int required) + { + if (required <= _buffer.Length) + { + return; + } + + var grown = _buffer.Length * GrowthFactor; + var next = RentBuffer(required > grown ? required : grown); + Array.Copy(_buffer, next, _position); + var toReturn = _buffer; + _buffer = next; + ReturnBuffer(toReturn); + } + + /// Reverses the digits written from the given position, which were emitted least significant first. + /// The index the digits start at. + private void ReverseDigits(int start) + { + for (var end = _position - 1; start < end; start++, end--) + { + (_buffer[end], _buffer[start]) = (_buffer[start], _buffer[end]); + } + } +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriter.cs b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/SourceWriter.cs similarity index 97% rename from src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriter.cs rename to src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/SourceWriter.cs index 284455db..2bc111bb 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Core/CodeGeneration/SourceWriter.cs +++ b/src/ReactiveUI.SourceGenerators.Shared/CodeGeneration/SourceWriter.cs @@ -1,8 +1,7 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. -using System; using System.Runtime.CompilerServices; using System.Text; @@ -298,12 +297,10 @@ private static string[] BuildIndents() [MethodImpl(MethodImplOptions.AggressiveInlining)] private void StartLine() { - if (_builder.Length != _lineStart || Level == 0) + if (_builder.Length == _lineStart && Level != 0) { - return; + WriteIndent(); } - - WriteIndent(); } /// Writes the indentation for the current level. diff --git a/src/ReactiveUI.SourceGenerators.Shared/Collections/EquatableArray.cs b/src/ReactiveUI.SourceGenerators.Shared/Collections/EquatableArray.cs new file mode 100644 index 00000000..220d353b --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Shared/Collections/EquatableArray.cs @@ -0,0 +1,152 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections; +using System.Collections.Immutable; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.SourceGenerators.Helpers; + +/// +/// A value-equatable wrapper around an array for use in incremental generator pipelines. +/// This enables structural equality comparisons of arrays in record types. +/// +/// The type of elements in the array, must be equatable. +internal readonly struct EquatableArray : IEquatable>, IEnumerable + where T : IEquatable +{ + /// The multiplier used in the deterministic hash-combine loop. + private const int HashMultiplier = 31; + + /// The seed of the hash-combine loop. + private const int HashSeed = 17; + + /// The underlying array, or null if default-constructed. + private readonly T[]? _array; + + /// Cached hash code computed once at construction. + private readonly int _cachedHashCode; + + /// Initializes a new instance of the struct. + /// The array to wrap. The caller keeps no other reference that mutates it. + public EquatableArray(T[] array) + { + _array = array; + _cachedHashCode = ComputeHashCode(array); + } + + /// Gets the number of elements. + internal int Length + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _array?.Length ?? 0; + } + + /// Gets a value indicating whether the array holds no elements. + internal bool IsEmpty + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => (_array?.Length ?? 0) == 0; + } + + /// Gets a reference to the element at the specified index. + /// The zero-based index of the element to get. + internal ref readonly T this[int index] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => ref _array![index]; + } + + /// Determines whether two arrays are equal. + /// The first array to compare. + /// The second array to compare. + /// true if the arrays are equal; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(EquatableArray left, EquatableArray right) => left.Equals(right); + + /// Determines whether two arrays are not equal. + /// The first array to compare. + /// The second array to compare. + /// true if the arrays are not equal; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(EquatableArray left, EquatableArray right) => !left.Equals(right); + + /// Indicates whether the current array is equal to another array. + /// An array to compare with this array. + /// true if the arrays are equal; otherwise, false. + public bool Equals(EquatableArray other) + { + var left = _array ?? []; + var right = other._array ?? []; + if (left.Length != right.Length) + { + return false; + } + + for (var i = 0; i < left.Length; i++) + { + if (!left[i].Equals(right[i])) + { + return false; + } + } + + return true; + } + + /// Determines whether the specified object is equal to the current array. + /// The object to compare with the current array. + /// true if the specified object is equal to the current array; otherwise, false. + public override bool Equals(object? obj) => obj is EquatableArray other && Equals(other); + + /// Returns the cached hash code for this array. + /// A hash code for the current array. + public override int GetHashCode() => _cachedHashCode; + + /// Wraps the array a Roslyn API returned without copying it. + /// The Roslyn-owned array. Roslyn never mutates it. + /// The wrapped array. + /// This is the one place an enters the pipeline: Roslyn hands them out. + internal static EquatableArray FromRoslyn(ImmutableArray array) => + new(Unsafe.As, T[]?>(ref array) ?? []); + + /// Gets the elements as a read-only span. + /// A span over the elements. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal ReadOnlySpan AsSpan() => _array; + + /// Copies the elements to a new array. + /// A new array holding the elements. + internal T[] ToArray() => _array is null || _array.Length == 0 ? [] : (T[])_array.Clone(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)(_array ?? [])).GetEnumerator(); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)this).GetEnumerator(); + + /// Computes a deterministic hash code for the given array. + /// The array to hash. + /// A hash code for the array. + private static int ComputeHashCode(T[]? array) + { + if (array is null) + { + return 0; + } + + unchecked + { + var hash = HashSeed; + for (var i = 0; i < array.Length; i++) + { + hash = (hash * HashMultiplier) + (array[i]?.GetHashCode() ?? 0); + } + + return hash; + } + } +} diff --git a/src/ReactiveUI.SourceGenerators.Shared/Collections/RoslynArray.cs b/src/ReactiveUI.SourceGenerators.Shared/Collections/RoslynArray.cs new file mode 100644 index 00000000..693c49dd --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Shared/Collections/RoslynArray.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.SourceGenerators.Helpers; + +/// Reads the arrays Roslyn returns as plain arrays. +/// Roslyn hands out from Collect() and its symbol APIs. Everything past that boundary uses arrays. +internal static class RoslynArray +{ + /// Reads the array a Roslyn API returned as a plain array, without copying it. + /// The element type. + /// The Roslyn-owned array. Callers must not write to the result. + /// The array behind it, or an empty array for a default value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static T[] Unwrap(ImmutableArray array) => + Unsafe.As, T[]?>(ref array) ?? []; +} diff --git a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/UnscopedRefAttribute.cs b/src/ReactiveUI.SourceGenerators.Shared/Polyfills/UnscopedRefAttribute.cs similarity index 84% rename from src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/UnscopedRefAttribute.cs rename to src/ReactiveUI.SourceGenerators.Shared/Polyfills/UnscopedRefAttribute.cs index a2356ce5..ca40215c 100644 --- a/src/ReactiveUI.SourceGenerators.Roslyn/Polyfills/UnscopedRefAttribute.cs +++ b/src/ReactiveUI.SourceGenerators.Shared/Polyfills/UnscopedRefAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. // Polyfill implementation adapted from SimonCropp/Polyfill diff --git a/src/ReactiveUI.SourceGenerators.Uno.slnf b/src/ReactiveUI.SourceGenerators.Uno.slnf new file mode 100644 index 00000000..172c8e95 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.Uno.slnf @@ -0,0 +1,10 @@ +{ + "solution": { + "path": "ReactiveUI.SourceGenerators.slnx", + "projects": [ + "ReactiveUI.Binding.Uno\\ReactiveUI.Binding.Uno.csproj", + "ReactiveUI.Binding.Uno.Reactive\\ReactiveUI.Binding.Uno.Reactive.csproj", + "tests\\ReactiveUI.Binding.Uno.Tests\\ReactiveUI.Binding.Uno.Tests.csproj" + ] + } +} diff --git a/src/ReactiveUI.SourceGenerators.V23.Tests/ReactiveUI.SourceGenerators.V23.Tests.csproj b/src/ReactiveUI.SourceGenerators.V23.Tests/ReactiveUI.SourceGenerators.V23.Tests.csproj deleted file mode 100644 index b24f216b..00000000 --- a/src/ReactiveUI.SourceGenerators.V23.Tests/ReactiveUI.SourceGenerators.V23.Tests.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - $(TestTfms) - enable - enable - 13.0 - Exe - false - true - true - false - - - - - - - - - - - - - - - - diff --git a/src/ReactiveUI.SourceGenerators.slnf b/src/ReactiveUI.SourceGenerators.slnf new file mode 100644 index 00000000..3c583b7c --- /dev/null +++ b/src/ReactiveUI.SourceGenerators.slnf @@ -0,0 +1,73 @@ +{ + "solution": { + "path": "ReactiveUI.SourceGenerators.slnx", + "projects": [ + "ReactiveUI.Binding\\ReactiveUI.Binding.csproj", + "ReactiveUI.Binding.Reactive\\ReactiveUI.Binding.Reactive.csproj", + "ReactiveUI.Binding.SourceGenerators\\ReactiveUI.Binding.SourceGenerators.csproj", + "ReactiveUI.Binding.SourceGenerators.Roslyn413\\ReactiveUI.Binding.SourceGenerators.Roslyn413.csproj", + "ReactiveUI.Binding.Analyzer\\ReactiveUI.Binding.Analyzer.csproj", + "ReactiveUI.Binding.Analyzer.Roslyn413\\ReactiveUI.Binding.Analyzer.Roslyn413.csproj", + "ReactiveUI.Binding.Wpf\\ReactiveUI.Binding.Wpf.csproj", + "ReactiveUI.Binding.Wpf.Reactive\\ReactiveUI.Binding.Wpf.Reactive.csproj", + "ReactiveUI.Binding.WinForms\\ReactiveUI.Binding.WinForms.csproj", + "ReactiveUI.Binding.WinForms.Reactive\\ReactiveUI.Binding.WinForms.Reactive.csproj", + "ReactiveUI.Binding.Maui\\ReactiveUI.Binding.Maui.csproj", + "ReactiveUI.Binding.Maui.Reactive\\ReactiveUI.Binding.Maui.Reactive.csproj", + "ReactiveUI.Binding.Avalonia\\ReactiveUI.Binding.Avalonia.csproj", + "ReactiveUI.Binding.Avalonia.Reactive\\ReactiveUI.Binding.Avalonia.Reactive.csproj", + "ReactiveUI.SourceGenerators\\ReactiveUI.SourceGenerators.csproj", + "ReactiveUI.SourceGenerators.Roslyn480\\ReactiveUI.SourceGenerators.Roslyn480.csproj", + "ReactiveUI.SourceGenerators.Roslyn4140\\ReactiveUI.SourceGenerators.Roslyn4140.csproj", + "ReactiveUI.SourceGenerators.Roslyn5000\\ReactiveUI.SourceGenerators.Roslyn5000.csproj", + "ReactiveUI.SourceGenerators.Analyzers.CodeFixes\\ReactiveUI.SourceGenerators.Analyzers.CodeFixes.csproj", + "examples\\Documentation\\Pages\\index\\index.csproj", + "examples\\Documentation\\Pages\\observing\\observing.csproj", + "examples\\Documentation\\Pages\\properties\\properties.csproj", + "examples\\Documentation\\Pages\\bindings\\bindings.csproj", + "examples\\Documentation\\Pages\\converters\\converters.csproj", + "examples\\Documentation\\Pages\\custom-converters\\custom-converters.csproj", + "examples\\Documentation\\Pages\\mechanisms\\mechanisms.csproj", + "examples\\Documentation\\Pages\\views\\views.csproj", + "examples\\Documentation\\Pages\\threading\\threading.csproj", + "examples\\Documentation\\Pages\\setup\\setup.csproj", + "examples\\Documentation\\Pages\\setup\\aot\\aot.csproj", + "examples\\Documentation\\Pages\\unsafe\\unsafe.csproj", + "examples\\Documentation\\Pages\\sourcegenerators\\sourcegenerators.csproj", + "examples\\Documentation\\Pages\\xaml\\xaml.csproj", + "examples\\Platforms\\PlatformBindingsVerification\\PlatformBindingsVerification.csproj", + "examples\\Platforms\\ToPropertyVerification\\ToPropertyVerification.csproj", + "benchmarks\\ReactiveUI.Binding.Benchmarks\\ReactiveUI.Binding.Benchmarks.csproj", + "benchmarks\\ReactiveUI.Binding.Benchmarks.ReactiveUI\\ReactiveUI.Binding.Benchmarks.ReactiveUI.csproj", + "benchmarks\\ReactiveUI.Binding.Generator.Benchmarks\\ReactiveUI.Binding.Generator.Benchmarks.csproj", + "benchmarks\\ReactiveUI.Binding.Generator.Benchmarks.Roslyn413\\ReactiveUI.Binding.Generator.Benchmarks.Roslyn413.csproj", + "benchmarks\\ReactiveUI.Binding.Analyzer.Benchmarks\\ReactiveUI.Binding.Analyzer.Benchmarks.csproj", + "benchmarks\\ReactiveUI.SourceGenerators.Benchmarks\\ReactiveUI.SourceGenerators.Benchmarks.csproj", + "benchmarks\\ReactiveUI.SourceGenerators.Runtime.Benchmarks\\ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj", + "tests\\ReactiveUI.Binding.Tests\\ReactiveUI.Binding.Tests.csproj", + "tests\\ReactiveUI.Binding.SourceGenerators.Tests\\ReactiveUI.Binding.SourceGenerators.Tests.csproj", + "tests\\ReactiveUI.Binding.SourceGenerators.Tests.Roslyn413\\ReactiveUI.Binding.SourceGenerators.Tests.Roslyn413.csproj", + "tests\\ReactiveUI.Binding.Analyzer.Tests\\ReactiveUI.Binding.Analyzer.Tests.csproj", + "tests\\ReactiveUI.Binding.Analyzer.Tests.Roslyn413\\ReactiveUI.Binding.Analyzer.Tests.Roslyn413.csproj", + "tests\\ReactiveUI.Binding.GeneratedCode.TestModels\\ReactiveUI.Binding.GeneratedCode.TestModels.csproj", + "tests\\ReactiveUI.Binding.GeneratedCode.Tests\\ReactiveUI.Binding.GeneratedCode.Tests.csproj", + "tests\\ReactiveUI.Binding.AotValidation\\ReactiveUI.Binding.AotValidation.csproj", + "tests\\ReactiveUI.Binding.TrimValidation\\ReactiveUI.Binding.TrimValidation.csproj", + "tests\\ReactiveUI.Binding.Wpf.Tests\\ReactiveUI.Binding.Wpf.Tests.csproj", + "tests\\ReactiveUI.Binding.Wpf.Tests.Reactive\\ReactiveUI.Binding.Wpf.Tests.Reactive.csproj", + "tests\\ReactiveUI.Binding.WinForms.Tests\\ReactiveUI.Binding.WinForms.Tests.csproj", + "tests\\ReactiveUI.Binding.WinForms.Tests.Reactive\\ReactiveUI.Binding.WinForms.Tests.Reactive.csproj", + "tests\\ReactiveUI.Binding.Maui.Tests\\ReactiveUI.Binding.Maui.Tests.csproj", + "tests\\ReactiveUI.Binding.Maui.Tests.Reactive\\ReactiveUI.Binding.Maui.Tests.Reactive.csproj", + "tests\\ReactiveUI.Binding.Avalonia.Tests\\ReactiveUI.Binding.Avalonia.Tests.csproj", + "tests\\ReactiveUI.Binding.Avalonia.Tests.Reactive\\ReactiveUI.Binding.Avalonia.Tests.Reactive.csproj", + "tests\\ReactiveUI.SourceGenerators.Tests\\ReactiveUI.SourceGenerators.Tests.csproj", + "tests\\ReactiveUI.SourceGenerators.V23.Tests\\ReactiveUI.SourceGenerators.V23.Tests.csproj", + "tests\\ReactiveUI.SourceGenerators.Execute\\ReactiveUI.SourceGenerators.Execute.csproj", + "tests\\ReactiveUI.SourceGenerators.Execute.Maui\\ReactiveUI.SourceGenerators.Execute.Maui.csproj", + "tests\\ReactiveUI.SourceGenerators.Execute.Nested1\\ReactiveUI.SourceGenerators.Execute.Nested1.csproj", + "tests\\ReactiveUI.SourceGenerators.Execute.Nested2\\ReactiveUI.SourceGenerators.Execute.Nested2.csproj", + "tests\\ReactiveUI.SourceGenerators.Execute.Nested3\\ReactiveUI.SourceGenerators.Execute.Nested3.csproj" + ] + } +} diff --git a/src/ReactiveUI.SourceGenerators.slnx b/src/ReactiveUI.SourceGenerators.slnx index f5d83bdd..aa1310e6 100644 --- a/src/ReactiveUI.SourceGenerators.slnx +++ b/src/ReactiveUI.SourceGenerators.slnx @@ -1,33 +1,103 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ReactiveUI.SourceGenerators/AccessModifier.cs b/src/ReactiveUI.SourceGenerators/AccessModifier.cs index 19fe9737..9aa0cad8 100644 --- a/src/ReactiveUI.SourceGenerators/AccessModifier.cs +++ b/src/ReactiveUI.SourceGenerators/AccessModifier.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators; @@ -8,23 +8,23 @@ namespace ReactiveUI.SourceGenerators; public enum AccessModifier { /// A public accessor. - Public, + Public = 0, /// A protected accessor. - Protected, + Protected = 1, /// An internal accessor. - Internal, + Internal = 2, /// A private accessor. - Private, + Private = 3, /// A protected internal accessor. - InternalProtected, + InternalProtected = 4, /// A private protected accessor. - PrivateProtected, + PrivateProtected = 5, /// An init accessor. - Init, + Init = 6, } diff --git a/src/ReactiveUI.SourceGenerators/BindableDerivedListAttribute.cs b/src/ReactiveUI.SourceGenerators/BindableDerivedListAttribute.cs index e59db005..a6817ff0 100644 --- a/src/ReactiveUI.SourceGenerators/BindableDerivedListAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/BindableDerivedListAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -10,6 +10,7 @@ namespace ReactiveUI.SourceGenerators; /// Generates a property that exposes the annotated ReadOnlyObservableCollection<T> field. [Conditional(KeepAttributes.Symbol)] [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] public sealed class BindableDerivedListAttribute : Attribute { /// Gets or sets the accessibility of the generated property. diff --git a/src/ReactiveUI.SourceGenerators/IReactiveObjectAttribute.cs b/src/ReactiveUI.SourceGenerators/IReactiveObjectAttribute.cs index a6768928..46398a91 100644 --- a/src/ReactiveUI.SourceGenerators/IReactiveObjectAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/IReactiveObjectAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; diff --git a/src/ReactiveUI.SourceGenerators/IViewForAttribute.cs b/src/ReactiveUI.SourceGenerators/IViewForAttribute.cs new file mode 100644 index 00000000..73b5557d --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/IViewForAttribute.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Diagnostics; + +namespace ReactiveUI.SourceGenerators; + +/// Makes a partial UI control implement IViewFor<TViewModel> for a view model named by its type name. +/// The view model's type name; use the full name including the namespace when it is not in scope. +[Conditional(KeepAttributes.Symbol)] +[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] +public sealed class IViewForAttribute(string? viewModelType) : Attribute +{ + /// Gets the view model's type name. + public string? ViewModelType { get; } = viewModelType; +} diff --git a/src/ReactiveUI.SourceGenerators/IViewForAttribute{T}.cs b/src/ReactiveUI.SourceGenerators/IViewForAttribute{T}.cs new file mode 100644 index 00000000..71caf282 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/IViewForAttribute{T}.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Diagnostics; + +namespace ReactiveUI.SourceGenerators; + +/// Makes a partial UI control implement IViewFor<TViewModel>, with a bindable ViewModel property. +/// The view model type the control shows. +[Conditional(KeepAttributes.Symbol)] +[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] +public sealed class IViewForAttribute : Attribute +{ + /// Gets the view model type the control shows. + public Type ViewModelType => typeof(T); +} diff --git a/src/ReactiveUI.SourceGenerators/InheritanceModifier.cs b/src/ReactiveUI.SourceGenerators/InheritanceModifier.cs index a813e0bb..41ad5fa9 100644 --- a/src/ReactiveUI.SourceGenerators/InheritanceModifier.cs +++ b/src/ReactiveUI.SourceGenerators/InheritanceModifier.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators; @@ -8,14 +8,14 @@ namespace ReactiveUI.SourceGenerators; public enum InheritanceModifier { /// No modifier. - None, + None = 0, /// A virtual property. - Virtual, + Virtual = 1, /// An override property. - Override, + Override = 2, /// A new property. - New, + New = 3, } diff --git a/src/ReactiveUI.SourceGenerators/KeepAttributes.cs b/src/ReactiveUI.SourceGenerators/KeepAttributes.cs index fcba5e1b..5b12a48e 100644 --- a/src/ReactiveUI.SourceGenerators/KeepAttributes.cs +++ b/src/ReactiveUI.SourceGenerators/KeepAttributes.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators; diff --git a/src/ReactiveUI.SourceGenerators/PropertyAccessModifier.cs b/src/ReactiveUI.SourceGenerators/PropertyAccessModifier.cs index b617291b..ec0af23b 100644 --- a/src/ReactiveUI.SourceGenerators/PropertyAccessModifier.cs +++ b/src/ReactiveUI.SourceGenerators/PropertyAccessModifier.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators; @@ -8,20 +8,20 @@ namespace ReactiveUI.SourceGenerators; public enum PropertyAccessModifier { /// A public property. - Public, + Public = 0, /// A protected property. - Protected, + Protected = 1, /// An internal property. - Internal, + Internal = 2, /// A private property. - Private, + Private = 3, /// A protected internal property. - InternalProtected, + InternalProtected = 4, /// A private protected property. - PrivateProtected, + PrivateProtected = 5, } diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net10.0/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net10.0/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net11.0/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net11.0/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net462/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net462/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net47/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net47/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net47/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net471/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net471/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net471/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net472/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net472/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net48/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net48/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net48/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net481/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net481/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net8.0/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net8.0/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.SourceGenerators/PublicAPI/net9.0/PublicAPI.txt new file mode 100644 index 00000000..6992b2b1 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/PublicAPI/net9.0/PublicAPI.txt @@ -0,0 +1,107 @@ +namespace ReactiveUI.SourceGenerators +{ + public enum AccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + Init = 6, + } + [System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("BindableDerivedListAttribute: AccessModifier = {AccessModifier}")] + public sealed class BindableDerivedListAttribute : System.Attribute + { + public BindableDerivedListAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class IReactiveObjectAttribute : System.Attribute + { + public IReactiveObjectAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute: ViewModelType = {ViewModelType}")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute(string? viewModelType) { } + public string? ViewModelType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("IViewForAttribute<{ViewModelType.Name}>")] + public sealed class IViewForAttribute : System.Attribute + { + public IViewForAttribute() { } + public System.Type ViewModelType { get; } + } + public enum InheritanceModifier + { + None = 0, + Virtual = 1, + Override = 2, + New = 3, + } + public enum PropertyAccessModifier + { + Public = 0, + Protected = 1, + Internal = 2, + Private = 3, + InternalProtected = 4, + PrivateProtected = 5, + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] + public sealed class ReactiveAttribute : System.Attribute + { + public ReactiveAttribute(params string[] alsoNotify) { } + public string[]? AlsoNotify { get; } + public ReactiveUI.SourceGenerators.InheritanceModifier Inheritance { get; set; } + public ReactiveUI.SourceGenerators.AccessModifier SetModifier { get; set; } + public bool UseRequired { get; set; } + } + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + public sealed class ReactiveCollectionAttribute : System.Attribute + { + public ReactiveCollectionAttribute() { } + } + [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] + public sealed class ReactiveCommandAttribute : System.Attribute + { + public ReactiveCommandAttribute() { } + public ReactiveUI.SourceGenerators.PropertyAccessModifier AccessModifier { get; set; } + public string? BackgroundScheduler { get; set; } + public string? CanExecute { get; set; } + public string? OutputScheduler { get; set; } + public bool RunInBackground { get; set; } + } +} +namespace ReactiveUI.SourceGenerators.WinForms +{ + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] + public sealed class RoutedControlHostAttribute : System.Attribute + { + public RoutedControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] + [System.Diagnostics.Conditional("REACTIVEUI_SOURCEGENERATORS_KEEP_ATTRIBUTES")] + [System.Diagnostics.DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] + public sealed class ViewModelControlHostAttribute : System.Attribute + { + public ViewModelControlHostAttribute(string? baseType) { } + public string? BaseType { get; } + } +} diff --git a/src/ReactiveUI.SourceGenerators/README.md b/src/ReactiveUI.SourceGenerators/README.md new file mode 100644 index 00000000..6b2ed101 --- /dev/null +++ b/src/ReactiveUI.SourceGenerators/README.md @@ -0,0 +1,310 @@ +# ReactiveUI.SourceGenerators + +ReactiveUI.SourceGenerators writes ReactiveUI boilerplate for you when you build: reactive properties, commands, +`IReactiveObject` implementations, `IViewFor` views, derived lists, reactive collections and WinForms control hosts. +The generated code uses no reflection, so it works with trimming and Native AOT. + +The same repository also builds [ReactiveUI.Binding](https://github.com/reactiveui/ReactiveUI.SourceGenerators#readme), +which generates the code behind `WhenAnyValue`, `Bind`, `BindCommand`, `ToProperty` and `[ObservableAsProperty]`. +The two packages work together and share their infrastructure. + +- **Minimum requirements** + - C# 12.0 + - Visual Studio 17.8 (Roslyn 4.8) or the .NET 8 SDK; partial properties need Visual Studio 17.14 or later + - ReactiveUI 23.2.28 or later + +## Table of contents + +- [Installation](#installation) +- [Overview](#overview) +- [Roslyn and Visual Studio support](#roslyn-and-visual-studio-support) +- [Migration from ReactiveUI.Fody](#migration-from-reactiveuifody) +- [Reactive properties](#reactive-properties) +- [Reactive commands](#reactive-commands) +- [Views](#views) +- [Derived lists and collections](#derived-lists-and-collections) +- [WinForms control hosts](#winforms-control-hosts) +- [Working with ReactiveUI.Binding](#working-with-reactiveuibinding) +- [Credits](#credits) + +## Installation + +```bash +dotnet add package ReactiveUI.SourceGenerators +``` + +Load the package with `PrivateAssets="all"` so the generator does not flow to projects that reference yours: + +```xml + +``` + +The attributes (`[Reactive]`, `[ReactiveCommand]` and the rest) are public types in the package's +`ReactiveUI.SourceGenerators` assembly. The generators do not declare them in your project, so assemblies that share +internals through `InternalsVisibleTo` never see two copies. Your project compiles against that assembly but keeps no +reference to it. If an older install added an `` line without `compile`, remove it. + +ReactiveUI 24 consumers can reference either `ReactiveUI`, for the API without System.Reactive, or `ReactiveUI.Reactive`, +for the System.Reactive API. The generators detect the API you reference. + +For .NET Framework 4.8 and older, add [Polyfill](https://github.com/SimonCropp/Polyfill) or +[PolySharp](https://github.com/Sergio0694/PolySharp) and set `LangVersion` to 12.0 or later. + +## Overview + +| Attribute | What it generates | +|-----------|-------------------| +| `[Reactive]` | A property with change notification, from a field or from a partial property | +| `[ReactiveCommand]` | A `ReactiveCommand` property for a method, with `CanExecute`, schedulers and background options | +| `[IReactiveObject]` | The `IReactiveObject` implementation, for classes that cannot derive from `ReactiveObject` | +| `[IViewFor]`, `[IViewFor]` | The `ViewModel` property and the `IViewFor` implementation of a view | +| `[BindableDerivedList]` | A derived list for a `ReadOnlyObservableCollection` field | +| `[ReactiveCollection]` | Change notifications for an `ObservableCollection` field | +| `[RoutedControlHost]`, `[ViewModelControlHost]` | WinForms hosts that show the view for a view model | + +## Roslyn and Visual Studio support + +The package ships three analyzer bands. Your compiler picks the highest band at or below its own Roslyn version. + +| Band (`analyzers/dotnet/...`) | Roslyn | Minimum tooling | Covers | +| --- | --- | --- | --- | +| `roslyn4.8` | 4.8 | Visual Studio 2022 17.8, .NET 8 SDK | The whole .NET 8 SDK line (Roslyn 4.8 to 4.11) and Visual Studio 17.12 and 17.13 | +| `roslyn4.14` | 4.14 | Visual Studio 2022 17.14, .NET 9 SDK | Partial-property `[Reactive]` | +| `roslyn5.0` | 5.0 | Visual Studio 2026, .NET 10 SDK | Partial-property `[Reactive]` | + +The `roslyn4.8` band compiles against the Roslyn 4.8 API only, so it loads on every .NET 8 SDK band without the +`CS9057` error. See the +[Roslyn package version mappings](https://learn.microsoft.com/en-us/visualstudio/extensibility/roslyn-version-support). + +## Migration from ReactiveUI.Fody + +1. Remove the ReactiveUI.Fody package, `FodyWeavers.xml` and `FodyWeavers.xsd`. +2. Add the ReactiveUI.SourceGenerators package. +3. Declare your classes and properties `partial`, put `[Reactive]` on them, and replace the + `ReactiveUI.Fody.Helpers` using with `ReactiveUI.SourceGenerators`. `[Reactive]` also works on a backing field. +4. Replace Fody's `[ObservableAsProperty]` with [ReactiveUI.Binding's](#working-with-reactiveuibinding). +5. Rebuild and check the generated code. + +## Reactive properties + +```csharp +using ReactiveUI.SourceGenerators; + +public partial class MyReactiveClass : ReactiveObject +{ + [Reactive] + private string _myProperty; +} +``` + +Options: + +```csharp +// Access modifier of the set accessor (not needed for a partial property: declare it on the property). +[Reactive(SetModifier = AccessModifier.Protected)] +private string _first; + +// A virtual property. +[Reactive(Inheritance = InheritanceModifier.Virtual)] +private string _second; + +// Also raise notifications for other properties. +[Reactive(nameof(Other1), nameof(Other2))] +private string _third; + +// Pass an attribute to the generated property. +[Reactive] +[property: JsonIgnore] +private string _fourth; +``` + +### From a partial property + +Partial properties need C# 13 and Visual Studio 17.14 or later. Leave both accessors empty. `virtual`, `override`, +`required` and a `private` or `protected` set accessor are written on the property itself. C# 14 also allows an +initializer. + +```csharp +public partial class MyReactiveClass : ReactiveObject +{ + [Reactive] + public partial string MyProperty { get; set; } +} +``` + +### With other source generators + +Roslyn does not order generators, and each one sees the original compilation. Code that one generator writes is +invisible to the others in the same project. For example, the `System.Text.Json` generator does not see a +`[JsonPropertyName]` that `[Reactive]` adds. To serialize `[Reactive]` properties with that generator, define the types +in assembly `A` and the `JsonSerializerContext` in assembly `B`, which references `A`. + +## Reactive commands + +```csharp +public partial class MyReactiveClass +{ + [ReactiveCommand] + private void Execute() { } // ExecuteCommand + + [ReactiveCommand] + private string Echo(string parameter) => parameter; // parameter and result + + [ReactiveCommand] + private async Task LoadAsync(string id) => await Task.FromResult(id); // LoadCommand: Async is dropped + + [ReactiveCommand] + private IObservable Watch(string id) => Observable.Return(id); + + [ReactiveCommand] + private async Task Delay(CancellationToken token) => await Task.Delay(1000, token); +} +``` + +### CanExecute + +```csharp +private IObservable _canSearch; + +[ReactiveCommand(CanExecute = nameof(_canSearch))] +private void Search() { } +``` + +### Schedulers and background work + +`RunInBackground` runs a synchronous method on ReactiveUI's background scheduler. A task-returning method starts with +`Task.Run`, so the code before its first `await` leaves the calling thread. The command parameter and +`CancellationToken` are passed through. `BackgroundScheduler` chooses the scheduler a synchronous method runs on and +implies `RunInBackground`. + +`OutputScheduler` and `BackgroundScheduler` name a scheduler as you would write it in the class: a field, property or +parameterless method of the class, or a static one elsewhere, such as `RxSchedulers.MainThreadScheduler`. A name that +does not resolve to a scheduler is reported as RXUISG0021. + +```csharp +[ReactiveCommand(RunInBackground = true)] +private void Crunch() { } + +[ReactiveCommand(BackgroundScheduler = nameof(_workScheduler))] +private void CrunchOnMine() { } + +[ReactiveCommand(OutputScheduler = "RxSchedulers.MainThreadScheduler")] +private void ShowResult() { } + +[ReactiveCommand(AccessModifier = PropertyAccessModifier.Internal)] +private void Hidden() { } + +[ReactiveCommand] +[property: JsonIgnore] +private void Save() { } +``` + +A `[ReactiveCommand]` method with more than one parameter besides a `CancellationToken` (RXUISG0002), an `async void` +method (RXUISG0008) and a scheduler name that does not resolve (RXUISG0021) are reported, because the generator skips +them. + +## Views + +`[IViewFor]` makes a partial control implement `IViewFor`. It writes the `ViewModel` property and the +interface members, and registers the view with ReactiveUI.Binding's view locator at compile time. + +```csharp +using ReactiveUI.SourceGenerators; + +[IViewFor] +public partial class LoginView : UserControl +{ +} + +// The view model by name, when its type is not in scope or is generic. +[IViewFor("Contracts.LoginViewModel")] +public partial class OtherView : UserControl +{ +} +``` + +## Derived lists and collections + +```csharp +public partial class MyReactiveClass : ReactiveObject +{ + // A ReadOnlyObservableCollection property bound to a source list. + [BindableDerivedList] + private readonly ReadOnlyObservableCollection _myList; + + // Change notifications on add, remove and replace. + [ReactiveCollection] + private ObservableCollection _myCollection; +} +``` + +### `IReactiveObject` for classes that cannot derive from `ReactiveObject` + +```csharp +[IReactiveObject] +public partial class MyReactiveClass +{ + [Reactive] + private string _myProperty; +} +``` + +## WinForms control hosts + +```csharp +using ReactiveUI.SourceGenerators.WinForms; + +[RoutedControlHost("YourNameSpace.CustomControl")] +public partial class MyCustomRoutedControlHost; + +[ViewModelControlHost("YourNameSpace.CustomControl")] +public partial class MyCustomViewModelControlHost; +``` + +Both resolve views through ReactiveUI's view locator, or through ReactiveUI.Binding's when your ReactiveUI is built on +it. With ReactiveUI.Binding 8.4.0 or later they follow their own properties through Binding's `ObservedProperty`. + +## Working with ReactiveUI.Binding + +ReactiveUI.Binding generates the code behind `[ObservableAsProperty]` and view registration. Use it for both. + +### A read-only property backed by an observable + +Mark a `partial` property `[ObservableAsProperty]` (C# 13 or later). The generator writes the property body and a helper +field named after it, which you assign with `ToProperty`: + +```csharp +using ReactiveUI; +using ReactiveUI.Binding; + +public partial class MyReactiveClass : ReactiveObject +{ + public MyReactiveClass(IObservable source) => + _myPropertyHelper = source.ToProperty(this, x => x.MyProperty, initialValue: "Default Value"); + + [ObservableAsProperty] + public partial string MyProperty { get; } +} +``` + +ReactiveUI.Binding needs a ReactiveUI release built on it. On ReactiveUI 24.3 and earlier, write the helper by hand: + +```csharp +private readonly ObservableAsPropertyHelper _myPropertyHelper; + +public string MyProperty => _myPropertyHelper.Value; +``` + +### Generated code and intercepted calls + +One generator cannot see another generator's output. The attribute generators therefore never write a call that +ReactiveUI.Binding has to intercept (`WhenAny*`, `Bind`, `OneWayBind`, `BindCommand`). Generated code that follows a +property uses Binding's `ObservedProperty` when it is available, and `PropertyChanged` otherwise. + +# Credits + +Portions of this code base are based on and derived from +* [PolySharp](https://github.com/Sergio0694/PolySharp) library. Thanks go to @Sergio0694 +* [Microsoft MVVM Community Toolkit](https://github.com/CommunityToolkit/dotnet) + +See [our sponsors](https://www.reactiveui.net/sponsors/) for the people and companies that support the project. diff --git a/src/ReactiveUI.SourceGenerators/ReactiveAttribute.cs b/src/ReactiveUI.SourceGenerators/ReactiveAttribute.cs index 1d68a791..df96d29f 100644 --- a/src/ReactiveUI.SourceGenerators/ReactiveAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/ReactiveAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -11,6 +11,7 @@ namespace ReactiveUI.SourceGenerators; /// The names of other properties to raise change notifications for. [Conditional(KeepAttributes.Symbol)] [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("ReactiveAttribute: SetModifier = {SetModifier}, Inheritance = {Inheritance}, UseRequired = {UseRequired}")] public sealed class ReactiveAttribute(params string[] alsoNotify) : Attribute { /// Gets or sets the accessibility of the generated set accessor. diff --git a/src/ReactiveUI.SourceGenerators/ReactiveCollectionAttribute.cs b/src/ReactiveUI.SourceGenerators/ReactiveCollectionAttribute.cs index df6bb55d..04c6df68 100644 --- a/src/ReactiveUI.SourceGenerators/ReactiveCollectionAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/ReactiveCollectionAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; diff --git a/src/ReactiveUI.SourceGenerators/ReactiveCommandAttribute.cs b/src/ReactiveUI.SourceGenerators/ReactiveCommandAttribute.cs index 7e4256ac..95376755 100644 --- a/src/ReactiveUI.SourceGenerators/ReactiveCommandAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/ReactiveCommandAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -10,6 +10,7 @@ namespace ReactiveUI.SourceGenerators; /// Generates a ReactiveCommand property that executes the annotated method. [Conditional(KeepAttributes.Symbol)] [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("ReactiveCommandAttribute: CanExecute = {CanExecute}, RunInBackground = {RunInBackground}, AccessModifier = {AccessModifier}")] public sealed class ReactiveCommandAttribute : Attribute { /// Gets or sets the name of the IObservable<bool> member that decides whether the command can execute. diff --git a/src/ReactiveUI.SourceGenerators/ReactiveUI.SourceGenerators.csproj b/src/ReactiveUI.SourceGenerators/ReactiveUI.SourceGenerators.csproj index fb223c48..c434d2c0 100644 --- a/src/ReactiveUI.SourceGenerators/ReactiveUI.SourceGenerators.csproj +++ b/src/ReactiveUI.SourceGenerators/ReactiveUI.SourceGenerators.csproj @@ -5,7 +5,7 @@ assembly granted InternalsVisibleTo never sees two. They are [Conditional], so a consumer keeps no reference to this assembly. --> - $(LibraryTfms) + $(BindingRuntimeTargets) A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. This is the Source Generators package for ReactiveUI @@ -13,6 +13,12 @@ True + + + + + + diff --git a/src/ReactiveUI.SourceGenerators/WinForms/RoutedControlHostAttribute.cs b/src/ReactiveUI.SourceGenerators/WinForms/RoutedControlHostAttribute.cs index 02ec70be..78a2379e 100644 --- a/src/ReactiveUI.SourceGenerators/WinForms/RoutedControlHostAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/WinForms/RoutedControlHostAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -11,6 +11,7 @@ namespace ReactiveUI.SourceGenerators.WinForms; /// The fully qualified name of the control type the generated host derives from. [Conditional(KeepAttributes.Symbol)] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("RoutedControlHostAttribute: BaseType = {BaseType}")] public sealed class RoutedControlHostAttribute(string? baseType) : Attribute { /// Gets the fully qualified name of the control type the generated host derives from. diff --git a/src/ReactiveUI.SourceGenerators/WinForms/ViewModelControlHostAttribute.cs b/src/ReactiveUI.SourceGenerators/WinForms/ViewModelControlHostAttribute.cs index e648c268..82e8c148 100644 --- a/src/ReactiveUI.SourceGenerators/WinForms/ViewModelControlHostAttribute.cs +++ b/src/ReactiveUI.SourceGenerators/WinForms/ViewModelControlHostAttribute.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System; @@ -11,6 +11,7 @@ namespace ReactiveUI.SourceGenerators.WinForms; /// The fully qualified name of the control type the generated host derives from. [Conditional(KeepAttributes.Symbol)] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] +[DebuggerDisplay("ViewModelControlHostAttribute: BaseType = {BaseType}")] public sealed class ViewModelControlHostAttribute(string? baseType) : Attribute { /// Gets the fully qualified name of the control type the generated host derives from. diff --git a/src/TestApps/TestAvaloniaApplication.Desktop/Program.cs b/src/TestApps/TestAvaloniaApplication.Desktop/Program.cs deleted file mode 100644 index 12bc279a..00000000 --- a/src/TestApps/TestAvaloniaApplication.Desktop/Program.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System; - -using Avalonia; -using ReactiveUI.Avalonia; - -namespace AvaloniaApplication1.Desktop; - -/// The desktop entry point for the Avalonia sample application. -internal static class Program -{ - /// Starts the application with the classic desktop lifetime. - /// - /// Don't use any Avalonia, third-party APIs or any SynchronizationContext-reliant code - /// before AppMain is called: things aren't initialized yet and stuff might break. - /// - /// The command line arguments. - [STAThread] - internal static void Main(string[] args) => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - /// Configures the Avalonia application builder with ReactiveUI support. - /// Don't remove; this is also used by the visual designer. - /// The configured . - internal static AppBuilder BuildAvaloniaApp() => - AppBuilder.Configure() - .UsePlatformDetect() - .WithInterFont() - .LogToTrace() - .UseReactiveUI(static _ => { }); -} diff --git a/src/TestApps/TestAvaloniaApplication/TestAvaloniaApplication.csproj b/src/TestApps/TestAvaloniaApplication/TestAvaloniaApplication.csproj deleted file mode 100644 index acfab463..00000000 --- a/src/TestApps/TestAvaloniaApplication/TestAvaloniaApplication.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - net8.0 - enable - latest - false - - - - - - - - - - - - - - - - - - - - diff --git a/src/TestApps/TestAvaloniaApplication/ViewModels/MainViewModel.cs b/src/TestApps/TestAvaloniaApplication/ViewModels/MainViewModel.cs deleted file mode 100644 index 293b976e..00000000 --- a/src/TestApps/TestAvaloniaApplication/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -namespace AvaloniaApplication1.ViewModels; - -/// The view model for the main view. -/// -public class MainViewModel : ViewModelBase -{ - /// Gets the greeting. - /// - /// The greeting. - /// - public string Greeting => "Welcome to Avalonia!"; -} diff --git a/src/TestApps/TestAvaloniaApplication/ViewModels/ViewModelBase.cs b/src/TestApps/TestAvaloniaApplication/ViewModels/ViewModelBase.cs deleted file mode 100644 index 0fd64107..00000000 --- a/src/TestApps/TestAvaloniaApplication/ViewModels/ViewModelBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI; - -namespace AvaloniaApplication1.ViewModels; - -/// The base class for the application's view models. -/// -public class ViewModelBase : ReactiveObject; diff --git a/src/TestApps/TestAvaloniaApplication/Views/MainView.axaml.cs b/src/TestApps/TestAvaloniaApplication/Views/MainView.axaml.cs deleted file mode 100644 index 6ddab814..00000000 --- a/src/TestApps/TestAvaloniaApplication/Views/MainView.axaml.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using Avalonia.Controls; -using ReactiveUI; - -namespace AvaloniaApplication1.Views; - -/// The main view. -/// -public partial class MainView : UserControl, IViewFor -{ - /// Initializes a new instance of the class. - public MainView() - { - InitializeComponent(); - ViewModel = new(); - } - - /// - public ViewModels.MainViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (ViewModels.MainViewModel?)value; } -} diff --git a/src/TestApps/TestAvaloniaApplication/Views/MainWindow.axaml.cs b/src/TestApps/TestAvaloniaApplication/Views/MainWindow.axaml.cs deleted file mode 100644 index 0f3c347b..00000000 --- a/src/TestApps/TestAvaloniaApplication/Views/MainWindow.axaml.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using Avalonia.Controls; - -namespace AvaloniaApplication1.Views; - -/// The main application window for desktop platforms. -/// -public partial class MainWindow : Window -{ - /// Initializes a new instance of the class. - public MainWindow() - { - InitializeComponent(); - } -} diff --git a/src/TestApps/TestMauiApplication/App.xaml.cs b/src/TestApps/TestMauiApplication/App.xaml.cs deleted file mode 100644 index 013567db..00000000 --- a/src/TestApps/TestMauiApplication/App.xaml.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -namespace MauiApp1; - -/// The MAUI application entry point that hosts the application shell. -/// -public partial class App : Application -{ - /// Initializes a new instance of the class. - public App() - { - InitializeComponent(); - } - - /// Creates the application window hosting the . - /// The activation state supplied by the platform. - /// The window that displays the application shell. - protected override Window CreateWindow(IActivationState? activationState) => new(new AppShell()); -} diff --git a/src/TestApps/TestMauiApplication/AppShell.xaml.cs b/src/TestApps/TestMauiApplication/AppShell.xaml.cs deleted file mode 100644 index baa771d0..00000000 --- a/src/TestApps/TestMauiApplication/AppShell.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -namespace MauiApp1; - -/// The application shell that provides navigation to the sample pages. -/// -public partial class AppShell : Shell -{ - /// Initializes a new instance of the class. - public AppShell() - { - InitializeComponent(); - } -} diff --git a/src/TestApps/TestMauiApplication/MainPage.xaml.cs b/src/TestApps/TestMauiApplication/MainPage.xaml.cs deleted file mode 100644 index 61ded8ad..00000000 --- a/src/TestApps/TestMauiApplication/MainPage.xaml.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI; - -namespace MauiApp1; - -/// The main page. -/// -public partial class MainPage : ContentPage, IViewFor -{ - /// Initializes a new instance of the class. - public MainPage() - { - InitializeComponent(); - ViewModel = new(); - } - - /// - public MainViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (MainViewModel?)value; } -} diff --git a/src/TestApps/TestMauiApplication/MainViewModel.cs b/src/TestApps/TestMauiApplication/MainViewModel.cs deleted file mode 100644 index 68ca6ca2..00000000 --- a/src/TestApps/TestMauiApplication/MainViewModel.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI; -using ReactiveUI.SourceGenerators; - -namespace MauiApp1; - -/// The view model for that counts button clicks. -/// -public partial class MainViewModel : ReactiveObject -{ - /// Stores the number of times the counter button has been clicked. - [Reactive] - private int _count; - - /// Stores the text displayed on the counter button. - [Reactive] - private string _counterText = "Click me"; - - /// Increments the click count and updates the counter button text. - [ReactiveCommand] - private void IncrementCount() - { - Count++; - CounterText = Count == 1 ? $"Clicked {Count} time" : $"Clicked {Count} times"; - SemanticScreenReader.Announce(CounterText); - } -} diff --git a/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/AppDelegate.cs b/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/AppDelegate.cs deleted file mode 100644 index 8f28ee04..00000000 --- a/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/AppDelegate.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using Foundation; - -namespace MauiApp1 -{ - /// - /// AppDelegate. - /// - [Register("AppDelegate")] - public class AppDelegate : MauiUIApplicationDelegate - { - /// - /// Creates the maui application. - /// - /// MauiApp. - protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); - } -} diff --git a/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/Program.cs b/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/Program.cs deleted file mode 100644 index 86f7bf12..00000000 --- a/src/TestApps/TestMauiApplication/Platforms/MacCatalyst/Program.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using UIKit; - -namespace MauiApp1 -{ - /// - /// Program. - /// - public static class Program - { - /// - /// Defines the entry point of the application. - /// - /// The arguments. - private static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, typeof(AppDelegate)); - } - } -} diff --git a/src/TestApps/TestMauiApplication/Platforms/Windows/App.xaml.cs b/src/TestApps/TestMauiApplication/Platforms/Windows/App.xaml.cs deleted file mode 100644 index 1517aad2..00000000 --- a/src/TestApps/TestMauiApplication/Platforms/Windows/App.xaml.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -namespace MauiApp1.WinUI -{ - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - public partial class App : MauiWinUIApplication - { - /// - /// Initializes a new instance of the class. - /// - public App() - { - InitializeComponent(); - } - - /// - /// Creates the maui application. - /// - /// MauiApp. - protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); - } -} diff --git a/src/TestApps/TestMauiApplication/Platforms/iOS/AppDelegate.cs b/src/TestApps/TestMauiApplication/Platforms/iOS/AppDelegate.cs deleted file mode 100644 index 8f28ee04..00000000 --- a/src/TestApps/TestMauiApplication/Platforms/iOS/AppDelegate.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using Foundation; - -namespace MauiApp1 -{ - /// - /// AppDelegate. - /// - [Register("AppDelegate")] - public class AppDelegate : MauiUIApplicationDelegate - { - /// - /// Creates the maui application. - /// - /// MauiApp. - protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); - } -} diff --git a/src/TestApps/TestMauiApplication/Platforms/iOS/Program.cs b/src/TestApps/TestMauiApplication/Platforms/iOS/Program.cs deleted file mode 100644 index 86f7bf12..00000000 --- a/src/TestApps/TestMauiApplication/Platforms/iOS/Program.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using UIKit; - -namespace MauiApp1 -{ - /// - /// Program. - /// - public static class Program - { - /// - /// Defines the entry point of the application. - /// - /// The arguments. - private static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, typeof(AppDelegate)); - } - } -} diff --git a/src/TestApps/TestWinFormsApplication/BasePackageRoutedHost.cs b/src/TestApps/TestWinFormsApplication/BasePackageRoutedHost.cs deleted file mode 100644 index c431f67b..00000000 --- a/src/TestApps/TestWinFormsApplication/BasePackageRoutedHost.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators.WinForms; - -namespace TestWinFormsApplication; - -/// Verifies the routed host generator against the ReactiveUI base package. -[RoutedControlHost(nameof(UserControl))] -public partial class BasePackageRoutedHost -{ - /// Gets a value indicating whether this host uses the base ReactiveUI package. - internal static bool UsesBaseReactiveUiPackage => true; -} diff --git a/src/TestApps/TestWinFormsApplication/BasePackageViewModelHost.cs b/src/TestApps/TestWinFormsApplication/BasePackageViewModelHost.cs deleted file mode 100644 index 7772dceb..00000000 --- a/src/TestApps/TestWinFormsApplication/BasePackageViewModelHost.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI.SourceGenerators.WinForms; - -namespace TestWinFormsApplication; - -/// Verifies the view-model host generator against the ReactiveUI base package. -[ViewModelControlHost(nameof(UserControl))] -public partial class BasePackageViewModelHost -{ - /// Gets a value indicating whether this host uses the base ReactiveUI package. - internal static bool UsesBaseReactiveUiPackage => true; -} diff --git a/src/TestApps/TestWinFormsApplication/Form1.cs b/src/TestApps/TestWinFormsApplication/Form1.cs deleted file mode 100644 index 3f822eb7..00000000 --- a/src/TestApps/TestWinFormsApplication/Form1.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.ComponentModel; -using ReactiveUI; - -namespace WinFormsApp1; - -/// Represents the primary form for the Windows Forms sample application. -/// -public partial class Form1 : Form, IViewFor -{ - /// Initializes a new instance of the class. - public Form1() - { - InitializeComponent(); - ViewModel = new(); - } - - /// - [Browsable(false)] - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public MainViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (MainViewModel?)value; } -} diff --git a/src/TestApps/TestWinFormsApplication/MainViewModel.cs b/src/TestApps/TestWinFormsApplication/MainViewModel.cs deleted file mode 100644 index b03379ae..00000000 --- a/src/TestApps/TestWinFormsApplication/MainViewModel.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI; - -namespace WinFormsApp1; - -/// Represents the primary view model for the Windows Forms sample application. -/// -public class MainViewModel : ReactiveObject; diff --git a/src/TestApps/TestWinFormsApplication/Program.cs b/src/TestApps/TestWinFormsApplication/Program.cs deleted file mode 100644 index 729c0410..00000000 --- a/src/TestApps/TestWinFormsApplication/Program.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -namespace WinFormsApp1; - -/// Provides the entry point for the Windows Forms sample application. -internal static class Program -{ - /// Starts the Windows Forms sample application. - [STAThread] - private static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); - } -} diff --git a/src/TestApps/TestWinFormsApplication/TestWinFormsApplication.csproj b/src/TestApps/TestWinFormsApplication/TestWinFormsApplication.csproj deleted file mode 100644 index eaaa516a..00000000 --- a/src/TestApps/TestWinFormsApplication/TestWinFormsApplication.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - WinExe - net8.0-windows - enable - true - enable - false - - - - - - - - - - - - diff --git a/src/TestApps/TestWpfApplication/App.xaml.cs b/src/TestApps/TestWpfApplication/App.xaml.cs deleted file mode 100644 index 5fae58c3..00000000 --- a/src/TestApps/TestWpfApplication/App.xaml.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Windows; - -namespace WpfApp1; - -/// Provides the interaction logic for App.xaml. -public partial class App : Application; diff --git a/src/TestApps/TestWpfApplication/AssemblyInfo.cs b/src/TestApps/TestWpfApplication/AssemblyInfo.cs deleted file mode 100644 index 72456726..00000000 --- a/src/TestApps/TestWpfApplication/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Windows; - -[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)] diff --git a/src/TestApps/TestWpfApplication/MainViewModel.cs b/src/TestApps/TestWpfApplication/MainViewModel.cs deleted file mode 100644 index 575ab2a8..00000000 --- a/src/TestApps/TestWpfApplication/MainViewModel.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using ReactiveUI; -using ReactiveUI.Primitives.Concurrency; -using ReactiveUI.SourceGenerators; - -namespace WpfApp1; - -/// Represents the primary view model for the WPF sample application. -public partial class MainViewModel : ReactiveObject -{ - /// Provides the scheduler used by the generated command. - private readonly ISequencer _scheduler = RxSchedulers.MainThreadScheduler; - - /// Stores the editable display name. - [Reactive] - private string? _name; - - /// Saves the current display name. - [ReactiveCommand(OutputScheduler = nameof(_scheduler))] - private void Save() => Name = Name?.Trim(); -} diff --git a/src/TestApps/TestWpfApplication/MainWindow.xaml.cs b/src/TestApps/TestWpfApplication/MainWindow.xaml.cs deleted file mode 100644 index 2a4794a4..00000000 --- a/src/TestApps/TestWpfApplication/MainWindow.xaml.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Windows; -using ReactiveUI; - -namespace WpfApp1; - -/// Provides the interaction logic for MainWindow.xaml. -public partial class MainWindow : Window, IViewFor -{ - /// Initializes a new instance of the class. - public MainWindow() - { - InitializeComponent(); - ViewModel = new(); - DataContext = ViewModel; - } - - /// - public MainViewModel? ViewModel { get; set; } - - /// - object? IViewFor.ViewModel { get => ViewModel; set => ViewModel = (MainViewModel?)value; } -} diff --git a/src/TestApps/TestWpfApplication/TestWpfApplication.csproj b/src/TestApps/TestWpfApplication/TestWpfApplication.csproj deleted file mode 100644 index 0e4d18b7..00000000 --- a/src/TestApps/TestWpfApplication/TestWpfApplication.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - WinExe - net8.0-windows10.0.19041.0 - enable - enable - true - false - - - - - - - - - - - - diff --git a/src/benchmarks/.editorconfig b/src/benchmarks/.editorconfig index 10d589d2..037829b5 100644 --- a/src/benchmarks/.editorconfig +++ b/src/benchmarks/.editorconfig @@ -3,8 +3,8 @@ ################### # Benchmark harness relaxations # -# The benchmark host is a console tool: it reports to the console rather than through a logging abstraction. +# A benchmark class is a harness the runner instantiates and drives; nobody stops on one in a +# debugger to read a summary of it. The models these benchmarks observe still carry a display +# attribute where it earns its place. ################### -dotnet_diagnostic.SST1449.severity = none # Console output is the harness's report -dotnet_diagnostic.PSH1021.severity = none # The allocation harness collects before each traced session so earlier garbage is not counted -dotnet_diagnostic.PSH1315.severity = none # The harness is a synchronous console tool; it waits for the trace copy to finish +dotnet_diagnostic.SST2334.severity = none # Harness types are driven by the runner, not inspected diff --git a/src/benchmarks/Directory.Build.props b/src/benchmarks/Directory.Build.props new file mode 100644 index 00000000..27a62728 --- /dev/null +++ b/src/benchmarks/Directory.Build.props @@ -0,0 +1,33 @@ + + + + + + $([MSBuild]::NormalizeDirectory($(MSBuildProjectDirectory), '..')) + false + true + + + + Exe + false + + windows + unix + + + + + + + + + + + + + + + + + diff --git a/src/benchmarks/README.md b/src/benchmarks/README.md index 93e26b4d..50bd5329 100644 --- a/src/benchmarks/README.md +++ b/src/benchmarks/README.md @@ -1,114 +1,290 @@ -# Generator benchmarks +# Benchmarks -Two projects measure what the generators allocate: the generators while they run, and the code they generate while a -consumer's app runs it. Allocation is the figure to watch: it varies far less between runs than time does. +This folder measures two different things. One is what a consumer's application pays at run time when a +binding fires. The other is what a consumer's build pays while the generator runs. + +## What it costs + +Measured by the `Benchmarks` workflow on a GitHub-hosted Windows runner: two physical cores under Hyper-V, +.NET 10.0.12. Each case drives a thousand property changes through one subscription or binding. + +Allocation is deterministic and compares directly. The timings carry real spread on a runner that size - the +observation cases move by twenty to thirty per cent between iterations - so read them as the shape of the +difference rather than as a score, and run the suite on your own hardware for a number you can hold someone +to. + +| Observation | ReactiveUI's engine | `WhenChanged` | `WhenAnyValue` | +|-------------|--------------------:|--------------:|---------------:| +| One property | 145.6 us / 105.5 KB | 81.7 us / 65.5 KB | 79.5 us / 65.5 KB | +| A deep chain | 120.9 us / 106.2 KB | 108.5 us / 66.2 KB | 107.6 us / 66.2 KB | +| Two properties | 340.5 us / 195.6 KB | 182.4 us / 90.5 KB | 142.3 us / 90.5 KB | +| Creating the subscription | 9.8 us / 1.5 KB | 9.9 us / 1.4 KB | 9.0 us / 1.4 KB | + +| Binding | ReactiveUI's engine | Generated | +|---------|--------------------:|----------:| +| `OneWayBind` | 287.8 us / 130.4 KB | 114.5 us / 88.5 KB | +| `Bind` | 686.5 us / 932.3 KB | 53.6 us / 42.2 KB | +| Creating a one-way binding | 22.5 us / 5.4 KB | 11.3 us / 2.6 KB | + +`BindOneWay` and `BindTwoWay` have no counterpart in the other engine to read against. They cost +93.1 us / 65.4 KB and 105.9 us / 87.8 KB, and naming a scheduler lowers both rather than raising them +(71.1 us and 90.9 us), because the write is then queued instead of applied inline. + +Published ahead of time, the generated path measures within a few per cent of the same code on the JIT: +`WhenAnyValue` 83.6 us against 79.5 us, `BindOneWay` 93.3 us against 93.1 us, `Bind` 53.8 us against +53.6 us. The expression-tree engine has no figure here because it cannot run under NativeAOT at all. + +The `Unsafe` overloads are the price of an expression the generator could not read: `WhenChanged` 146.5 us / +103.1 KB against 81.7 us / 65.5 KB generated, `BindOneWay` 223.2 us / 221.4 KB against 93.1 us / 65.4 KB, +`Bind` 405.5 us / 402.7 KB against 53.6 us / 42.2 KB. + +A generation pass costs 3.6 ms and 1.9 MB for one view-model and view pair, 52.3 ms and 29.5 MB for sixteen, +and 213.6 ms and 118.1 MB for sixty-four. Whether the build claims call sites outright or offers a competing +overload makes no measurable difference. + +## The projects | Project | Measures | -| --- | --- | -| `ReactiveUI.SourceGenerators.Benchmarks` | Generation: a cold run per generator's mock corpus, the whole corpus, and warm reruns after an edit. Also the attribute-discovery strategies against each other. | -| `ReactiveUI.SourceGenerators.Runtime.Benchmarks` | Generated code: a view model the generators write for, exercised as an app would. | +|---------|----------| +| `ReactiveUI.Binding.Benchmarks` | The generated observation and binding path. | +| `ReactiveUI.Binding.Benchmarks.ReactiveUI` | The same scenarios on ReactiveUI's expression-tree engine, as the baseline. | +| `ReactiveUI.Binding.Generator.Benchmarks` | A whole generation pass over a corpus of consumer code. | +| `ReactiveUI.Binding.Generator.Benchmarks.Roslyn413` | The same generation pass against Roslyn 4.13. | +| `ReactiveUI.Binding.Analyzer.Benchmarks` | What each binding analyzer costs a compilation, on startup, clean and violating source. | +| `ReactiveUI.SourceGenerators.Benchmarks` | A generation pass for each attribute generator (`[Reactive]`, `[ReactiveCommand]`, `[IViewFor]` and the rest), and what the attribute analyzers and suppressors cost. | +| `ReactiveUI.SourceGenerators.Runtime.Benchmarks` | The code the attribute generators write, as an application runs it. | + +The baseline lives in its own project because it needs ReactiveUI's own binding surface. Keeping the two +apart stops one engine's imports reaching the other's call sites. + +## What the runtime benchmarks cover + +Each case creates one observation or binding and then drives a thousand property changes through it. The +cost of creating the subscription is measured separately, by the `First...` cases. + +| Benchmark | Operator | Cases | +|-----------|----------|-------| +| `WhenChangedBenchmark` | `WhenChanged` | `SingleProperty`, `DeepChain`, `TwoProperties`, `FirstObservation` | +| `WhenChangingBenchmark` | `WhenChanging` | `SingleProperty`, `TwoProperties`, `FirstObservation` | +| `WhenAnyValueBenchmark` | `WhenAnyValue` | `SingleProperty`, `DeepChain`, `TwoProperties`, `FirstObservation` | +| `WhenAnyBenchmark` | `WhenAny` | `SingleProperty`, `TwoProperties`, `FirstObservation` | +| `WhenAnyObservableBenchmark` | `WhenAnyObservable` | `SingleStream`, `TwoStreams`, `FirstObservation` | +| `WhenAnyDynamicBenchmark` | `WhenAnyDynamic` | `SingleChain`, `TwoChains`, `DeepChain`, `FirstObservation`, `SingleChainGenerated` | +| `BindOneWayBenchmark` | `BindOneWay` | `Standard`, `WithScheduler`, `FirstBinding`, `SetupTeardown` | +| `BindTwoWayBenchmark` | `BindTwoWay` | `Standard`, `WithScheduler`, `Bidirectional` | +| `BindTwoWayQueuedBenchmark` | `BindTwoWay` through a sequencer that queues | `InitialDelivery`, `ModelToView`, `ViewToModel` | +| `BindBenchmark` | `Bind` | `Standard`, `Bidirectional`, `WithObservedChanges` | +| `OneWayBindBenchmark` | `OneWayBind` | `Standard`, `FirstBinding` | +| `BindToBenchmark` | `BindTo` | `Standard`, `FirstBinding` | +| `TypedAdapterBenchmark` | `BindTo` conversions | `NullableValues`, `FormattedValues` | +| `InvokeCommandBenchmark` | `InvokeCommand` | `Standard`, `FirstInvocation` | +| `BindCommandBenchmark` | `BindCommand` | Subscription and command replacement through an established binding | +| `BindInteractionBenchmark` | `BindInteraction` | Subscription and handler migration between existing interactions | +| `ObservationDeliveryBenchmark` | After-change, before-change and plugin observations | Subscription and steady delivery of integer values | +| `ObservationContentionBenchmark` | The three observation delivery contracts | Competing producer latency and slow-subscriber delivery-thread occupancy | +| `CombineLatestArityBenchmark` | 2–16-source `CombineLatest` | Public concrete constructor versus extension, including subscription and disposal | +| `UnsafeFallbackBenchmark` | the `Unsafe` overloads | `WhenChangedUnsafe`, `WhenChangedUnsafe deep chain`, `WhenAnyValueUnsafe`, `BindOneWayUnsafe`, `BindUnsafe` | +| `ViewLocatorBenchmark` | `DefaultViewLocator.ResolveView` | `SingleLookupHit`, `HitInFirstOfThreeLookups`, `HitInLastOfThreeLookups`, `MissInEveryLookup`, `AssemblyGeneratedLookup` | +| `RxUiDynamicChainBaseline` | ReactiveUI's dynamic chain | `SingleChain`, `TwoChains`, `DeepChain`, `FirstObservation` | + +`WhenAnyValueBenchmark` and `OneWayBindBenchmark` exist so the two operators the ReactiveUI baseline measures +have a counterpart here. Read each against `ReactiveUIObservationBenchmark` and `ReactiveUIBindingBenchmark`. + +`WhenAnyDynamicBenchmark` carries `SingleChainGenerated` so the two halves of the same scenario sit in one +table. A chain named at run time is walked by reflection; the same chain written as a lambda is resolved at +compile time. + +Each class declares a job per runtime: .NET 10 and 11, and NativeAOT 10 and 11 where the code can run +ahead of time. A class that walks a chain by reflection declares no NativeAOT job, because it cannot run +there. + +## What the generation benchmark covers + +`GenerationBenchmarks.Generate` runs a cold pass: syntax scan, extraction and emission. Two parameters +vary. + +| Parameter | Values | Meaning | +|-----------|--------|---------| +| `Pairs` | 1, 16, 64 | How many view-model and view pairs the corpus holds. | +| `Intercept` | false, true | Whether the build claims each call site outright or offers an overload that competes for them all. | + +A fresh generator driver is built for every iteration. A reused driver would serve the next iteration from +its incremental caches, which measures the cache rather than the pass a consumer's build actually pays for. +The corpus is built once per parameter set, because loading a framework's worth of metadata references +costs far more than the pass under measurement. + +The `GcVerbose` EventPipe profiler records allocations. Analysis uses the measured workload windows and their +operation counts to report sampled bytes per generation and the allocation sites. NativeAOT timing runs remain +separate where EventPipe capture is unavailable. + +## Views that name their controls in XAML + +`XamlViewGenerationBenchmarks` measures four views with controls named in XAML. +The generation rows use 100 bindings per view. The rebuild rows use v2rayN. + +| Measurement | Before | After | +| --- | ---: | ---: | +| Generation (.NET 10) | 11.95 s | 228 ms | +| Generation (.NET 11) | 12.79 s | 204 ms | +| Allocation (.NET 10) | 3,703 MB | 61 MB | +| Allocation (.NET 11) | 3,702 MB | 61 MB | +| v2rayN generator | 10.97 s | 441 ms | +| v2rayN rebuild | 17.45 s | 5.81 s | + +## What the analyzer benchmark covers -## How allocations are measured +`AnalyzerBenchmarks` runs each analyzer over a corpus through `CompilationWithAnalyzers`. It has one case for +every analyzer the package ships, such as `AnalyzeInvocations` for `BindingInvocationAnalyzer` and +`AnalyzeToProperty` for `ToPropertyAnalyzer`. One parameter varies. -Figures come from EventPipe, not BenchmarkDotNet's memory diagnoser. `--eventpipe ` runs each scenario a fixed -number of times inside an EventPipe session on its own process, with the runtime provider's GC keyword at verbose -level. The runtime raises a `GCAllocationTick` event about every 100 KB allocated, carrying the amount, the type and the -call stack. The sum of the amounts divided by the number of operations is the allocation per operation. Its sampling -error is about one tick over the whole session, so sessions run enough operations for that to be small. Each scenario's -trace is kept for breaking down by type and frame: +| `Corpus` | Meaning | +|----------|---------| +| `Startup` | One empty class. This is the fixed cost every compilation pays before an analyzer has anything to decide. | +| `Clean` | Calls to `WhenChanged`, `BindOneWay`, `BindTwoWay`, `BindTo` and `InvokeCommand` with nothing to report. | +| `CleanNullForgiving` | The `Clean` calls with a `!` after each link of each path. | +| `Violating` | Calls that report a private member, an unsupported segment, a silent link and a type that never notifies. | +| `ViolatingNullForgiving` | The `Violating` calls with a `!` after each link. | +| `UnsafeTargets` | Calls to `BindToUnsafe`, `InvokeCommandUnsafe` and `OneWayBindUnsafe`, whose first type argument is not the object they observe. | + +`Clean` minus `Startup` is the cost of deciding there is nothing to report. Report it apart from the +`Violating` figure, which adds the cost of the diagnostics themselves. Setup fails when a corpus does not bind, +when `Startup`, `Clean` or `CleanNullForgiving` reports anything, or when `Violating` reports nothing. Setup +logs the diagnostic count of every corpus. + +To compare two checkouts, build this project in each and run the same filter in the same session: ```bash -cd src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks -dotnet run -c Release -- --smoke # every corpus generates and compiles; discovery strategies agree -dotnet run -c Release -- --eventpipe # generation scenarios -dotnet run -c Release -- --eventpipe-discovery # attribute discovery strategies -cd ../ReactiveUI.SourceGenerators.Runtime.Benchmarks -dotnet run -c Release -- --eventpipe # generated code +dotnet run -c Release --project benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks -f net10.0 -- --filter '*AnalyzerBenchmarks*' ``` -Each scenario writes `/.nettrace`. To see which frames allocate, open it in PerfView and use the -"GC Heap Alloc Ignore Free (Coarse Sampling) Stacks" view. +## Focused adapter measurements -The BenchmarkDotNet entry points remain for timings; they attach the same EventPipe profiler to each benchmark. +`AdapterGenerationBenchmarks` covers native observation, Android/UIKit/AppKit commands, WinForms collection +bindings and typed conversions. Each corpus checks the exact number of binding methods and the intended +native operations before collecting timings. -The mock corpus repeats each mock file 20 times, each copy in its own namespace, and every corpus includes `Noise.cs`: -attributed code no generator acts on, so each generator's cost of looking past code that is not its own is counted. -A scenario builds its compilation once and reuses it, so after the warmup the compiler's own symbol caches are warm and -the figures isolate the generators and the driver. The incremental scenarios keep one warm driver and rerun it against -the same edited compilation, which is what one keystroke costs in the IDE. +`TypedAdapterBenchmark` measures nullable and formatting delivery after creating the bindings. +`NativeAdapterBenchmark` measures observation, command delivery and collection writes against native-shaped +contracts. These fixtures exclude platform rendering costs. Both benchmarks count actual deliveries and reject +runs that drop updates or leave layout suspended. Timings include this counting overhead. -All figures are on .NET 10 (x64, Linux). +Run only these cases with `--filter '*AdapterGenerationBenchmarks*'` in the generator benchmark project, or +`--filter '*TypedAdapterBenchmark*' '*NativeAdapterBenchmark*'` in the runtime benchmark project. Use `--artifacts` to put reports and +traces under `~/.cache`. -## Results +## Delivery and operator adoption -"Before" is the generators with `[ObservableAsProperty]` and view registration already removed, but still building -their output with interpolated strings, binding every attribute for `[IViewFor]` and `[IReactiveObject]`, and writing -every file from one collected output. It was measured with this same harness copied onto it. "After" is the generators -once those changes were made, in PR #501. +`ObservationDeliveryBenchmark.Subscribe` includes observable construction, initial delivery and disposal. +`Deliver` uses an established subscription and reports cost per property change. Its integer source caches +event arguments. The plugin fixture forwards a cached notification token and leaves value reads to the binding. -`[IViewFor]` has since been removed, and its corpus with it; its row and the whole-corpus and rerun figures below still -include it. +`ObservationContentionBenchmark.ProducerLatency` times one setter while another thread holds the subscriber. +Setup waits until the subscriber has entered; cleanup releases it after the setter returns. +`DeliveryThread` times the raising thread through one 40 ms subscriber call while another producer makes +16 changes. It includes the subscriber's fixed workload and any pending delivery that the raising thread +drains. Read it as delivery-thread occupancy, including work a UI thread would perform when it raises the +change. These cases do not measure a platform dispatcher. Thread creation, subscription and joining are +outside both measurements. Before-change delivery preserves captured values; after-change delivery can +collapse pending changes, so compare producer latency and delivery occupancy together. -### Generation +`CombineLatestArityBenchmark` has two comparison groups. `ConstructAndSubscribe` includes construction; +`Subscribe` subscribes to existing pipelines to isolate subscription allocations. Both groups create fresh +subscription state and dispose it inside each measurement. The public constructor captures typed slots for +each arity. Setup verifies that both routes combine every input. Compare the allocation columns before +replacing a wide-arity extension with a constructor. -| Scenario | Before, bytes/op | After, bytes/op | Change | -| --- | ---: | ---: | ---: | -| Cold, whole corpus | 17,330,975 | 11,636,366 | −32.9% | -| Cold, `[Reactive]` | 6,117,449 | 3,701,964 | −39.5% | -| Cold, `[ReactiveCommand]` | 2,849,862 | 1,764,827 | −38.1% | -| Cold, `[IReactiveObject]` | 2,851,598 | 1,542,311 | −45.9% | -| Cold, `[ReactiveCollection]` | 1,598,212 | 1,025,509 | −35.8% | -| Cold, `[IViewFor]` | 1,659,840 | 1,155,046 | −30.4% | -| Cold, `[BindableDerivedList]` | 1,142,445 | 952,705 | −16.6% | -| Cold, `[ViewModelControlHost]` | 1,168,922 | 1,166,055 | −0.2% | -| Cold, `[RoutedControlHost]` | 1,090,552 | 1,085,232 | −0.5% | -| Rerun after an unrelated edit | 8,984,317 | 7,838,332 | −12.8% | -| Rerun after editing a `[Reactive]` class's other members | 8,986,035 | 7,841,624 | −12.7% | -| Rerun after renaming a `[Reactive]` field | 10,990,885 | 7,986,248 | −27.3% | +`BindCommandBenchmark` uses a control with `Command` and `CommandParameter` properties. `BindInteractionBenchmark` +uses a synchronous handler. Each measures setup separately from replacing the source property through a live +binding. The replacement cases report cost per replacement and reuse commands or interactions. -In the whole-corpus trace, `System.String` fell from 5.53 MB to 2.83 MB per run, and `StringBuilder` (0.80 MB) and -`char[]` (0.70 MB) dropped out of the top allocated types. What remains is mostly the compiler's own binding and the -driver's state tables. For the WinForms hosts, half of what they allocate is the generated file's own text, which is -the output itself, so their figures did not move. +Run these families separately from `src/` after builds and tests finish: -Where it came from, largest first: +```sh +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Benchmarks -- --filter '*CombineLatestArityBenchmark*' --warmupCount 5 --iterationCount 15 +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Benchmarks -- --filter '*ObservationDeliveryBenchmark*' '*ObservationContentionBenchmark*' --warmupCount 5 --iterationCount 15 +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Benchmarks -- --filter '*BindCommandBenchmark*' '*BindInteractionBenchmark*' --warmupCount 5 --iterationCount 15 +``` -- Writing through the indentation-aware `SourceWriter` instead of nested raw strings, interpolation, `string.Join` and - `StringBuilder` fragments. -- `[IViewFor]` and `[IReactiveObject]` found their targets by binding every attribute of every attributed class; they - now use `ForAttributeWithMetadataName`. That path was 66% of the cold `[IViewFor]` corpus's allocations. -- `TargetInfo` built once per type symbol instead of once per member; metadata-name checks compared without building - names; `Task`/observable/scheduler checks compared structurally instead of building display strings; documentation - only requested when the declaration has a documentation comment; `[Reactive]`'s AlsoNotify fallback no longer - evaluates named arguments. -- Each type's file written from its own output: an edit that changes one type's models rewrites only that type's file. +Each command retains the shared managed tracing and NativeAOT jobs. On Linux, pin the process to separate +physical cores and raise priority where permitted. Compare error ranges as well as means, and inspect the +allocation trace when a route allocates more. Keep benchmark runs separate from builds and tests. -### Attribute discovery +## ToProperty -Three ways to find the 280 `[Reactive]` fields in the corpus, each in a generator that only discovers: +`ToPropertyBenchmark` creates a helper-backed property through each way the generator can raise notifications, +and pushes values through a live one. `ReactiveUIToPropertyBenchmark`, in the ReactiveUI project, runs the same +cases on ReactiveUI's own `ToProperty`. `ToPropertyContentionBenchmark` pushes distinct values into one helper +from one, two and four threads at once. `ToPropertyUnsafeBenchmark` creates and drives properties backed by +`ToPropertyUnsafe`, on a view model with a protected raise method and on one with only a field-like event. -| Strategy | Cold, bytes/op | Rerun after an unrelated edit, bytes/op | -| --- | ---: | ---: | -| `ForAttributeWithMetadataName` | 484,701 | 314,141 | -| Attribute simple name from syntax, then the symbol | 770,266 | 363,839 | -| Bind every attributed field and read its attributes | 875,872 | 437,790 | +`ToPropertyExtractionBenchmarks`, in the generator project, measures the two checks that can turn a call site away: +the selector's shape read from syntax, and the call resolved through the semantic model. +`ObservableAsPropertyDiscoveryBenchmarks` compares finding `[ObservableAsProperty]` properties with +`ForAttributeWithMetadataName` against a syntax filter followed by a semantic check. -`ForAttributeWithMetadataName` allocates the least both cold and incrementally, so every generator uses it, with a -syntax predicate that rejects a node before any binding where the shape allows (for example, only `partial` classes for -`[IViewFor]` and `[IReactiveObject]`). +```sh +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Benchmarks -- --filter '*ToPropertyBenchmark*' '*ToPropertyContentionBenchmark*' '*ToPropertyUnsafeBenchmark*' +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI -- --filter '*ReactiveUIToPropertyBenchmark*' +dotnet run -c Release -f net10.0 --project benchmarks/ReactiveUI.Binding.Generator.Benchmarks -- --filter '*ToPropertyExtractionBenchmarks*' '*ObservableAsPropertyDiscoveryBenchmarks*' +``` -### Generated code +## Unsafe paths -| Operation | Before, bytes/op | After, bytes/op | -| --- | ---: | ---: | -| Replace a `[ReactiveCollection]` property's collection | 355 | 70 | -| Add to and clear that collection, after 20,000 replacements | 640,392 | 161 | -| Set a `[Reactive]` property that also notifies another | 64 | 64 | -| Set a property of an `[IReactiveObject]` type | 32 | 32 | -| Read a `[ReactiveCommand]` command | 0 | 0 | - -The generated `[ReactiveCollection]` setter created a new handler for each subscribe and unsubscribe, so it never -unsubscribed anything: every replacement left another handler behind, each collection change raised a notification per -leaked handler, and the replacement itself grew slower as the handler list grew. It now keeps one handler per property. -The 64 and 32 bytes are ReactiveUI's own notification arguments, not generated code. The collection-replacement figures -rest on few allocation ticks (13 and 66), so they carry a sampling error of roughly 100 KB over 20,000 operations. +`UnsafeFallbackBenchmark` declares no NativeAOT job. Those overloads carry `RequiresUnreferencedCode` because +they walk the path at run time, so an ahead-of-time publish cannot be relied on to keep the members they +reach. That class is the measurement of what the fallback costs against the generated operator of the same +name. + +## Running them + +Each project hands its command line to the BenchmarkDotNet switcher, so `--filter` selects cases. + +```sh +cd src/benchmarks/ReactiveUI.Binding.Benchmarks +dotnet run -c Release -f net10.0 -- --filter '*' + +cd ../ReactiveUI.Binding.Benchmarks.ReactiveUI +dotnet run -c Release -f net10.0 -- --filter '*' + +cd ../ReactiveUI.Binding.Generator.Benchmarks +dotnet run -c Release -f net10.0 -- --filter '*' + +cd ../ReactiveUI.SourceGenerators.Benchmarks +dotnet run -c Release -f net10.0 -- --filter '*' +``` + +The attribute generators' projects also take the allocation harness switches. `--smoke` checks that every scenario +generates and compiles, and `--eventpipe ` writes one `.nettrace` per scenario, with bytes per run taken from +`GCAllocationTick`. Report allocation from those traces, not from the memory diagnoser, and compare a change with +the previous commit using the same harness. + +```sh +cd src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks +dotnet run -c Release -- --smoke +dotnet run -c Release -- --eventpipe +``` + +Release configuration is required. A Debug build measures the absence of the optimiser. + +On Windows, add `--artifacts-path C:\a`. BenchmarkDotNet generates a project per job beside the built +assembly, and the NativeAOT build writes below that again; from a deep checkout the linker's module +definition file lands past 260 characters, and every NativeAOT job then reports `NA` instead of a +measurement. + +Results land in `BenchmarkDotNet.Artifacts/results`, which is ignored by git. + +## Reading the results + +Three things are worth knowing before comparing columns. + +The generated path removes reflection and expression compilation, so it wins on both time and allocation +against the baseline. Compare `WhenChangedBenchmark` against `ReactiveUIObservationBenchmark`, and +`BindOneWayBenchmark` and `BindBenchmark` against `ReactiveUIBindingBenchmark`. + +A chain named at run time is the one place this library does not win. Both engines walk it by reflection and +allocate the same objects doing it - 105.1 KB against 105.0 KB - and ReactiveUI is marginally the quicker of +the two, at 118.0 us against 128.7 us. The gain there comes from writing the chain as a lambda instead, which +`SingleChainGenerated` measures at 81.1 us / 65.5 KB. + +The expression-tree engine cannot run under NativeAOT at all, because it compiles expressions and reflects +at run time. Only the generated path has a NativeAOT column to report. diff --git a/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/AnalyzerBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/AnalyzerBenchmarks.cs new file mode 100644 index 00000000..5d553220 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/AnalyzerBenchmarks.cs @@ -0,0 +1,111 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Loggers; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.Analyzer.Analyzers; +using ReactiveUI.Binding.Analyzer.Benchmarks.Support; + +namespace ReactiveUI.Binding.Analyzer.Benchmarks; + +/// Measures what each analyzer costs a compilation, on the three paths that separate fixed cost from per-node cost. +/// +/// Startup is the cost every compilation pays before an analyzer has anything to decide. Clean +/// minus Startup is the per-node cost of deciding there is nothing to report, and the +/// CleanNullForgiving pair isolates what reading a path through the null-forgiving operator adds. +/// Violating adds the cost of reporting. UnsafeTargets reaches the type check through the +/// overloads whose first type argument is not the observed object. Each measurement starts a fresh +/// CompilationWithAnalyzers, which is the state a host build starts an analysis with. +/// +public class AnalyzerBenchmarks +{ + /// The analyzer for path checks, private members and the observed-path notification check. + private readonly BindingInvocationAnalyzer _invocationAnalyzer = new(); + + /// The analyzer for the type-level notification check. + private readonly TypeAnalyzer _typeAnalyzer = new(); + + /// The compilation the invocation analyzer is measured over, built once per corpus. + private Compilation _invocationCompilation = null!; + + /// The compilation the type analyzer is measured over, built once per corpus. + private Compilation _typeCompilation = null!; + + /// Gets or sets the corpus the analyzers run over. + [Params( + AnalyzerCorpus.Startup, + AnalyzerCorpus.Clean, + AnalyzerCorpus.CleanNullForgiving, + AnalyzerCorpus.Violating, + AnalyzerCorpus.ViolatingNullForgiving, + AnalyzerCorpus.UnsafeTargets)] + public string Corpus { get; set; } = AnalyzerCorpus.Startup; + + /// + /// Builds the corpus compilations once per parameter set and checks the corpus does what its name says. + /// Loading a framework's worth of metadata references costs far more than an analysis, so measuring it per + /// iteration would bury what this benchmark is for. + /// + /// A task representing the asynchronous setup. + /// The corpus does not bind, or a clean corpus reports, or a violating one does not. + [GlobalSetup] + public async Task Setup() + { + var sources = AnalyzerCorpus.Build(Corpus); + + // The measured compilations stay untouched by validation, which would otherwise leave its bound + // trees behind for the first measurement to find. + await ValidateAsync(AnalyzerHarness.BuildCompilation(sources, [_invocationAnalyzer, _typeAnalyzer]), sources.Length).ConfigureAwait(false); + + _invocationCompilation = AnalyzerHarness.BuildCompilation(sources, [_invocationAnalyzer]); + _typeCompilation = AnalyzerHarness.BuildCompilation(sources, [_typeAnalyzer]); + } + + /// Runs the invocation analyzer: private members, unsupported segments and silent path links. + /// The number of diagnostics reported. + [Benchmark] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Task AnalyzeInvocations() => AnalyzerHarness.AnalyzeAsync(_invocationCompilation, _invocationAnalyzer); + + /// Runs the type analyzer, which decides which type argument of each call names the observed object. + /// The number of diagnostics reported. + [Benchmark] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Task AnalyzeTypes() => AnalyzerHarness.AnalyzeAsync(_typeCompilation, _typeAnalyzer); + + /// Checks the corpus binds, and that a clean one reports nothing and a violating one reports something. + /// A compilation over the corpus that is not measured. + /// How many files the corpus holds. + /// A task representing the asynchronous validation. + /// The corpus does not do what its name says. + private async Task ValidateAsync(Compilation compilation, int fileCount) + { + var errors = AnalyzerHarness.CountCompilerErrors(compilation); + if (errors != 0) + { + throw new InvalidOperationException($"The '{Corpus}' corpus has {errors} compiler errors, so the analyzers measure calls that did not bind."); + } + + var invocations = await AnalyzerHarness.AnalyzeAsync(compilation, _invocationAnalyzer).ConfigureAwait(false); + var types = await AnalyzerHarness.AnalyzeAsync(compilation, _typeAnalyzer).ConfigureAwait(false); + ConsoleLogger.Default.WriteLine( + LogKind.Info, + $"Corpus {Corpus} ({fileCount} files): {invocations} invocation diagnostics, {types} type diagnostics."); + + // The null-forgiving and unsafe corpora report different amounts before and after a change to how + // paths are read, so only the plain ones are held to an exact answer. + var expectsNothing = Corpus is AnalyzerCorpus.Startup or AnalyzerCorpus.Clean or AnalyzerCorpus.CleanNullForgiving; + if (expectsNothing && (invocations != 0 || types != 0)) + { + throw new InvalidOperationException($"The '{Corpus}' corpus is clean but reports {invocations} invocation and {types} type diagnostics."); + } + + if (Corpus == AnalyzerCorpus.Violating && (invocations == 0 || types == 0)) + { + throw new InvalidOperationException($"The '{Corpus}' corpus violates the rules but reports {invocations} invocation and {types} type diagnostics."); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Program.cs b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Program.cs new file mode 100644 index 00000000..f35680a7 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Program.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Running; +using ReactiveUI.Binding.Benchmarks.Configs; + +namespace ReactiveUI.Binding.Analyzer.Benchmarks; + +/// Entry point that hands the command line to the BenchmarkDotNet switcher. +internal static class Program +{ + /// Runs the benchmark selected by the command line. + /// The command-line arguments passed to the switcher. + [STAThread] + internal static void Main(string[] args) + { + var count = BenchmarkRunValidation.CountVerified(BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, new ProfilerConfig())); + BenchmarkRunValidation.RequireMeasurements(count, args); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks.csproj b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks.csproj new file mode 100644 index 00000000..0eac0e7d --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks.csproj @@ -0,0 +1,22 @@ + + + + net10.0;net11.0 + + + + + + + + + + + + + + + diff --git a/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerCorpus.cs b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerCorpus.cs new file mode 100644 index 00000000..c2e4ee42 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerCorpus.cs @@ -0,0 +1,207 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Analyzer.Benchmarks.Support; + +/// Writes the consumer source the analyzer benchmarks run over. +/// +/// A corpus is a set of files, each holding the same calls in its own namespace. The null-forgiving variants +/// write the same paths with a ! after every link that can carry one, so the pair isolates what +/// reading through the operator costs. +/// +internal static class AnalyzerCorpus +{ + /// A single empty class: the fixed cost every compilation pays before an analyzer has anything to decide. + internal const string Startup = "Startup"; + + /// Calls the analyzers have nothing to report on, written without a null-forgiving operator. + internal const string Clean = "Clean"; + + /// The calls with a null-forgiving operator after each link. + internal const string CleanNullForgiving ="CleanNullForgiving"; + + /// Calls each of the private, unsupported-segment, silent-link and no-notification checks reports on. + internal const string Violating = "Violating"; + + /// The calls with a null-forgiving operator after each link. + internal const string ViolatingNullForgiving ="ViolatingNullForgiving"; + + /// Calls to the runtime-reflection overloads whose first type argument is not the object they observe. + internal const string UnsafeTargets ="UnsafeTargets"; + + /// The number of files in every corpus but . + internal const int FileCount = 24; + + /// The token a template writes where a null-forgiving operator may go. + private const string BangToken = "__B__"; + + /// The token a template writes where its file number goes. + private const string NumberToken = "__N__"; + + /// The null-forgiving operator. + private const string Bang = "!"; + + /// The types a file declares, shared by every template. + private const string Header = """ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Windows.Input; + using ReactiveUI.Binding; + + namespace Corpus__N__ + { + public class NotifyingAddress : INotifyPropertyChanged + { + public event PropertyChangedEventHandler? PropertyChanged; + + public string City { get; set; } = ""; + } + + public class SilentAddress + { + public string City { get; set; } = ""; + } + + public class PlainView : IViewFor + { + public object? ViewModel { get; set; } + + public string Text { get; set; } = ""; + + public decimal Amount { get; set; } + } + + public class PlainModel + { + public string Name { get; set; } = ""; + } + + public class View : INotifyPropertyChanged + { + public event PropertyChangedEventHandler? PropertyChanged; + + public string Text { get; set; } = ""; + + public string Caption { get; set; } = ""; + + public decimal Amount { get; set; } + } + + public class Model : INotifyPropertyChanged + { + public string Field = ""; + + public event PropertyChangedEventHandler? PropertyChanged; + + public string Name { get; set; } = ""; + + public decimal Amount { get; set; } + + public NotifyingAddress? Address { get; set; } + + public SilentAddress? Silent { get; set; } + + public ICommand? Save { get; set; } + + public List Items { get; set; } = new(); + + private string Secret { get; set; } = ""; + + public string GetName() => ""; + + public void ObservePrivate() + { + __PRIVATE__ + } + } + + public class Usage + { + __BODY__ + } + } + """; + + /// Calls whose paths, types and notifications are all in order. + private const string CleanBody = """ + public void Bindings(Model model, View view, IObservable values) + { + model.WhenChanged(x => x.Name__B__); + model.WhenChanged(x => x.Address__B__.City__B__); + model.BindOneWay(view, x => x.Address__B__.City__B__, x => x.Text); + model.BindTwoWay(view, x => x.Name__B__, x => x.Caption); + values.BindTo(view, x => x.Amount); + values.InvokeCommand(model, x => x.Save); + } + """; + + /// Calls that a private member, an unsupported segment, a silent link and a plain type each trip. + private const string ViolatingBody = """ + public void Bindings(Model model, PlainModel plain, View view) + { + model.WhenChanged(x => x.Silent__B__.City__B__); + model.WhenChanged(x => x.Field__B__); + model.WhenChanged(x => x.GetName()__B__); + model.WhenChanged(x => x.Items[0]__B__); + model.WhenChanged(x => x.Items__B__[0]); + model.BindOneWay(view, x => x.Silent__B__.City__B__, x => x.Text); + plain.WhenChanged(x => x.Name__B__); + } + """; + + /// Runtime-reflection calls whose first type argument is a stream's value type or a write-only target. + private const string UnsafeTargetsBody = """ + public void Bindings(Model model, PlainView plainView, IObservable values) + { + values.BindToUnsafe(plainView, x => x.Amount); + values.InvokeCommandUnsafe(model, x => x.Save); + plainView.OneWayBindUnsafe(model, x => x.Name, x => x.Text); + plainView.OneWayBindUnsafe(model, x => x.Name, x => x.Text, s => s, null); + } + """; + + /// The call a violating corpus makes to a private member from inside its own class. + private const string PrivateCall = "this.WhenChanged(x => x.Secret__B__);"; + + /// The token a template writes where the private member call goes. + private const string PrivateToken = "__PRIVATE__"; + + /// The single file of the corpus. + private const string EmptyClass = "namespace Corpus { public class Empty { } }"; + + /// Builds the source files of a corpus. + /// The corpus to build, one of the constants on this type. + /// The source text of each file. + /// The name is not a corpus. + internal static string[] Build(string corpus) + { + if (corpus == Startup) + { + return [EmptyClass]; + } + + var (body, privateCall, bang) = corpus switch + { + Clean => (CleanBody, string.Empty, string.Empty), + CleanNullForgiving => (CleanBody, string.Empty, Bang), + Violating => (ViolatingBody, PrivateCall, string.Empty), + ViolatingNullForgiving => (ViolatingBody, PrivateCall, Bang), + UnsafeTargets => (UnsafeTargetsBody, string.Empty, string.Empty), + _ => throw new ArgumentException($"'{corpus}' is not a corpus.", nameof(corpus)), + }; + + var template = Header + .Replace("__BODY__", body) + .Replace(PrivateToken, privateCall) + .Replace(BangToken, bang); + var files = new string[FileCount]; + for (var i = 0; i < files.Length; i++) + { + files[i] = template.Replace(NumberToken, i.ToString(System.Globalization.CultureInfo.InvariantCulture)); + } + + return files; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerHarness.cs b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerHarness.cs new file mode 100644 index 00000000..5c7df211 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Analyzer.Benchmarks/Support/AnalyzerHarness.cs @@ -0,0 +1,88 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Diagnostics; + +namespace ReactiveUI.Binding.Analyzer.Benchmarks.Support; + +/// Builds the compilation an analyzer runs over and runs it the way a host build does. +internal static class AnalyzerHarness +{ + /// The assembly name given to the compilation the analyzers run against. + private const string CompilationAssemblyName = "Corpus"; + + /// Builds a compilation over the corpus, with every diagnostic the analyzers support switched on. + /// The source text of each file. + /// The analyzers whose diagnostics are forced on, so an opt-in descriptor cannot hide its cost. + /// The compilation. + internal static CSharpCompilation BuildCompilation(string[] sources, DiagnosticAnalyzer[] analyzers) + { + var parseOptions = new CSharpParseOptions(LanguageVersion.Latest); + var syntaxTrees = new SyntaxTree[sources.Length]; + for (var i = 0; i < sources.Length; i++) + { + syntaxTrees[i] = CSharpSyntaxTree.ParseText(sources[i], parseOptions); + } + +#if NET11_0_OR_GREATER + var references = new List(Basic.Reference.Assemblies.Net110.References.All) +#else + var references = new List(Basic.Reference.Assemblies.Net100.References.All) +#endif + { + MetadataReference.CreateFromFile(typeof(ReactiveUIBindingExtensions).Assembly.Location), + MetadataReference.CreateFromFile(typeof(ReactiveUI.Primitives.Concurrency.ISequencer).Assembly.Location), + MetadataReference.CreateFromFile(typeof(Splat.IEnableLogger).Assembly.Location), + }; + + var severities = ImmutableDictionary.CreateBuilder(); + for (var i = 0; i < analyzers.Length; i++) + { + var supported = analyzers[i].SupportedDiagnostics; + for (var j = 0; j < supported.Length; j++) + { + severities[supported[j].Id] = ReportDiagnostic.Warn; + } + } + + var options = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) + .WithNullableContextOptions(NullableContextOptions.Enable) + .WithSpecificDiagnosticOptions(severities.ToImmutable()); + + return CSharpCompilation.Create(CompilationAssemblyName, syntaxTrees, references, options); + } + + /// Counts the compiler errors in a compilation, which a corpus that does not bind would hide behind an empty result. + /// The compilation to check. + /// The number of errors. + internal static int CountCompilerErrors(Compilation compilation) + { + var count = 0; + var diagnostics = compilation.GetDiagnostics(); + for (var i = 0; i < diagnostics.Length; i++) + { + if (diagnostics[i].Severity == DiagnosticSeverity.Error) + { + count++; + } + } + + return count; + } + + /// Runs one analyzer over a compilation with a fresh analysis state. + /// The compilation to analyze. + /// The analyzer to run. + /// The number of diagnostics the analyzer reported, returned so the work cannot be optimized away. + internal static async Task AnalyzeAsync(Compilation compilation, DiagnosticAnalyzer analyzer) + { + var analyzed = compilation.WithAnalyzers([analyzer]); + var diagnostics = await analyzed.GetAnalyzerDiagnosticsAsync().ConfigureAwait(false); + + return diagnostics.Length; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Mocks/BenchmarkModeDetector.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Mocks/BenchmarkModeDetector.cs new file mode 100644 index 00000000..1870df99 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Mocks/BenchmarkModeDetector.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Splat; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Tells ReactiveUI it is running outside an application, as a benchmark process does. +internal sealed class BenchmarkModeDetector : IModeDetector +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool? InUnitTestRunner() => true; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Program.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Program.cs new file mode 100644 index 00000000..bfc1beff --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/Program.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.Benchmarks.Configs; + +namespace ReactiveUI.Binding.Benchmarks.ReactiveUI; + +/// Entry point for the ReactiveUI comparison benchmarks. +internal static class Program +{ + /// Runs the benchmarks selected by . + /// The command line arguments passed to the benchmark switcher. + [STAThread] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Main(string[] args) => BenchmarkHost.Run(typeof(Program).Assembly, args); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUI.Binding.Benchmarks.ReactiveUI.csproj b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUI.Binding.Benchmarks.ReactiveUI.csproj new file mode 100644 index 00000000..131d32d7 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUI.Binding.Benchmarks.ReactiveUI.csproj @@ -0,0 +1,22 @@ + + + + net10.0;net11.0 + false + + + + + + + + + + + + + + + + diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIBindingBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIBindingBenchmark.cs new file mode 100644 index 00000000..f5192ca8 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIBindingBenchmark.cs @@ -0,0 +1,81 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Builder; +using Splat; + +namespace ReactiveUI.Binding.Benchmarks; + +/// ReactiveUI expression-tree binding benchmarks for comparison. +[DebuggerDisplay("ReactiveUIBindingBenchmark: Expression-tree binding over {PropertyChangeCount} changes")] +public class ReactiveUIBindingBenchmark +{ + /// The number of property changes to fire during each benchmark iteration. + private const int PropertyChangeCount = 1_000; + + /// The source view model instance used for binding benchmarks. + private BenchmarkViewModel _source = null!; + + /// The target view instance used for binding benchmarks. + private BenchmarkView _target = null!; + + /// Configures ReactiveUI for the benchmark process. + [GlobalSetup] + public static void Register() + { + ModeDetector.OverrideModeDetector(new BenchmarkModeDetector()); + _ = RxAppBuilder.CreateReactiveUIBuilder() + .WithCoreServices() + .BuildApp(); + } + + /// Sets up fresh source and target objects before each benchmark iteration. + [IterationSetup] + public void Setup() + { + _source = new() { Name = "Initial", Age = 0 }; + _target = new() { ViewModel = _source }; + } + + /// Expression-tree one-way binding: setup, fire N changes, dispose. + [Benchmark(Description = "OneWayBind")] + public void OneWayBind() + { + using var binding = _target.OneWayBind(_source, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// Expression-tree two-way binding: setup, fire N source changes, dispose. + [Benchmark(Description = "Bind")] + public void Bind() + { + using var binding = _target.Bind(_source, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// Cold start: create one-way binding, dispose immediately. + [Benchmark(Description = "First OneWayBind")] + public void FirstOneWayBind() + { + using var binding = _target.OneWayBind(_source, x => x.Name, x => x.DisplayName); + } + + /// Cold start: create two-way binding, dispose immediately. + [Benchmark(Description = "First Bind")] + public void FirstBind() + { + using var binding = _target.Bind(_source, x => x.Name, x => x.DisplayName); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIObservationBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIObservationBenchmark.cs new file mode 100644 index 00000000..4837ae89 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIObservationBenchmark.cs @@ -0,0 +1,91 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Builder; +using Splat; + +namespace ReactiveUI.Binding.Benchmarks; + +/// ReactiveUI expression-tree WhenAnyValue benchmarks for comparison. +[DebuggerDisplay("ReactiveUIObservationBenchmark: Expression-tree observation over {PropertyChangeCount} changes")] +public class ReactiveUIObservationBenchmark +{ + /// The number of property changes to fire during each benchmark iteration. + private const int PropertyChangeCount = 1_000; + + /// The view model instance used for observation benchmarks. + private BenchmarkViewModel _vm = null!; + + /// Configures ReactiveUI for the benchmark process. + [GlobalSetup] + public static void Register() + { + ModeDetector.OverrideModeDetector(new BenchmarkModeDetector()); + _ = RxAppBuilder.CreateReactiveUIBuilder() + .WithCoreServices() + .BuildApp(); + } + + /// Sets up a fresh view model before each benchmark iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// Expression-tree single property observation: subscribe, fire N changes, dispose. + [Benchmark(Description = "Single Property")] + public void SingleProperty() + { + var last = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Expression-tree deep chain observation: subscribe, fire N changes, dispose. + [Benchmark(Description = "Deep Chain")] + public void DeepChain() + { + var last = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Child.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// Expression-tree multi-property observation: subscribe, fire N changes, dispose. + [Benchmark(Description = "Two Properties")] + public void TwoProperties() + { + (string Name, int Age) last = default; + using var sub = _vm.WhenAnyValue(x => x.Name, x => x.Age, static (name, age) => (name, age)) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// Cold start: subscribe, read initial value, dispose. Includes expression compilation overhead. + /// The observed value. + [Benchmark(Description = "First Observation")] + public string FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Name) + .Subscribe(v => result = v); + return result; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIToPropertyBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIToPropertyBenchmark.cs new file mode 100644 index 00000000..8ccfcee4 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks.ReactiveUI/ReactiveUIToPropertyBenchmark.cs @@ -0,0 +1,121 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Builder; +using Splat; + +namespace ReactiveUI.Binding.Benchmarks; + +/// ReactiveUI's own ToProperty, over the same scenarios as the generated one, for comparison. +public class ReactiveUIToPropertyBenchmark : IDisposable +{ + /// The number of values each emission benchmark pushes. + private const int ValueCount = 1_000; + + /// The source the creation benchmark follows. + private BenchmarkSource _source = null!; + + /// The source only the long-lived view model follows. + private BenchmarkSource _emitSource = null!; + + /// The long-lived view model the emission benchmark drives. + private CountViewModel _viewModel = null!; + + /// The next value to push, kept rising so every value passes the distinct gate. + private int _next; + + /// The number of notifications a subscriber received, read so the handler is not elided. + private int _notifications; + + /// Configures ReactiveUI and creates the long-lived view model with one PropertyChanged subscriber. + [GlobalSetup] + public void Setup() + { + ModeDetector.OverrideModeDetector(new BenchmarkModeDetector()); + _ = RxAppBuilder.CreateReactiveUIBuilder() + .WithCoreServices() + .BuildApp(); + _source = new(); + _emitSource = new(); + _viewModel = new(_emitSource); + _viewModel.PropertyChanged += OnPropertyChanged; + } + + /// Releases the long-lived view model. + [GlobalCleanup] + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Creates a helper-backed property on a ReactiveObject and disposes it. + /// The property's initial value. + [Benchmark(Description = "Create: ReactiveObject")] + public int CreateReactiveObject() + { + using var vm = new CountViewModel(_source); + return vm.Count; + } + + /// Creates the helper alone with a no-op callback, isolating its cost from any view model. + /// The helper's initial value. + [Benchmark(Description = "Create: helper only")] + public int CreateHelperOnly() + { + using var helper = new ObservableAsPropertyHelper(_source, static _ => { }, 0); + return helper.Value; + } + + /// Pushes values through a ReactiveObject's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Emit: ReactiveObject", OperationsPerInvoke = ValueCount)] + public int EmitReactiveObject() + { + for (var i = 0; i < ValueCount; i++) + { + _next++; + _emitSource.Push(_next); + } + + return _notifications; + } + + /// Releases the long-lived view model. + /// Whether managed resources should be released. + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + _viewModel.Dispose(); + } + } + + /// Counts a notification. + /// The view model. + /// The event arguments. + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs args) => _notifications++; + + /// A ReactiveObject whose derived property is backed by ReactiveUI's helper. + internal sealed class CountViewModel : ReactiveObject, IDisposable + { + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public CountViewModel(IObservable counts) => _count = counts.ToProperty(this, static x => x.Count); + + /// Gets the latest count. + public int Count => _count.Value; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindBenchmark.cs new file mode 100644 index 00000000..63aaddae --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindBenchmark.cs @@ -0,0 +1,83 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// +/// Source-generated view-first two-way binding. Both directions run through one pipeline that is routed once +/// and applied once, and the changes it wrote are published to whoever subscribes to the binding - so the cost +/// of making one, of driving it from either side, and of watching what it did are all measured here. +/// +public class BindBenchmark +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// The modulus used to alternate updates between the view model and the view each iteration. + private const int AlternationModulus = 2; + + /// The view model used for binding benchmarks. + private BenchmarkViewModel _viewModel = null!; + + /// The view used for binding benchmarks. + private BenchmarkView _view = null!; + + /// Sets up a fresh view model and view before each benchmark iteration. + [IterationSetup] + public void Setup() + { + _viewModel = new() { Name = "Initial", Age = 0 }; + _view = new() { ViewModel = null }; + } + + /// Binding once and driving it from the view model, which is the ordinary direction. + [Benchmark(Description = "Bind")] + public void Standard() + { + using var binding = _view.Bind(_viewModel, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _viewModel.Name = $"Name_{i}"; + } + } + + /// Driving the binding from both sides, which is what the merged pipeline exists to order. + [Benchmark(Description = "Bind bidirectional")] + public void Bidirectional() + { + using var binding = _view.Bind(_viewModel, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + if (i % AlternationModulus == 0) + { + _viewModel.Name = $"FromViewModel_{i}"; + } + else + { + _view.DisplayName = $"FromView_{i}"; + } + } + } + + /// + /// Watching what the binding wrote. A subscriber shares the binding's own upstream subscription, so this + /// measures whether observing a binding costs a second set of property handlers. + /// + [Benchmark(Description = "Bind + observed changes")] + public void WithObservedChanges() + { + using var binding = _view.Bind(_viewModel, x => x.Name, x => x.DisplayName); + using var watching = binding.Changed.Subscribe(new CountingObserver()); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _viewModel.Name = $"Name_{i}"; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindCommandBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindCommandBenchmark.cs new file mode 100644 index 00000000..b6af6d4b --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindCommandBenchmark.cs @@ -0,0 +1,78 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Windows.Input; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Measures generated command binding setup separately from command replacement on the view. +public class BindCommandBenchmark +{ + /// The command replacements in a measured batch. + private const int ChangeCount = 1_000; + + /// The source of command replacements. + private BoundViewModel _model = null!; + + /// The view receiving commands. + private BoundView _view = null!; + + /// Two commands alternating without per-change construction. + private BenchmarkCommand[] _commands = null!; + + /// The established binding used for replacement measurements. + private IDisposable _binding = null!; + + /// Creates the model and view outside the binding measurement. + [GlobalSetup(Targets = [nameof(Subscribe), nameof(SubscribeWithExplicitEvent)])] + public void Setup() + { + _commands = [new(), new()]; + _model = new() { Command = _commands[0] }; + _view = new() { ViewModel = _model }; + } + + /// Establishes the generated binding before command replacement measurement. + [GlobalSetup(Target = nameof(ReplaceCommand))] + public void SetupDelivery() + { + Setup(); + _binding = _view.BindCommand(_model, x => x.Command, x => x.Button); + } + + /// Releases the established command binding. + [GlobalCleanup(Target = nameof(ReplaceCommand))] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void CleanupDelivery() => _binding.Dispose(); + + /// Creates a generated binding, applies the initial command, and restores the control on disposal. + [Benchmark] + public void Subscribe() + { + using var binding = _view.BindCommand(_model, x => x.Command, x => x.Button); + } + + /// Creates a generated binding that names the event the control is bound through. + [Benchmark] + public void SubscribeWithExplicitEvent() + { + using var binding = _view.BindCommand(_model, x => x.Command, x => x.Button, toEvent: "Click"); + } + + /// Writes alternating commands through a live binding on the calling thread. + /// The command installed on the view. + [Benchmark(OperationsPerInvoke = ChangeCount)] + public ICommand? ReplaceCommand() + { + for (var i = 0; i < ChangeCount; i++) + { + _model.Command = _commands[i & 1]; + } + + return _view.Button.Command; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindInteractionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindInteractionBenchmark.cs new file mode 100644 index 00000000..b9f88d59 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindInteractionBenchmark.cs @@ -0,0 +1,79 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Measures generated interaction binding registration and handler migration between interactions. +public class BindInteractionBenchmark +{ + /// The replacements in a measured batch. + private const int ChangeCount = 1_000; + + /// The source of interaction replacements. + private BoundViewModel _model = null!; + + /// The view owning the interaction handler. + private BoundView _view = null!; + + /// The two interactions receiving the handler in turn. + private Interaction[] _interactions = null!; + + /// The established binding used for replacement measurements. + private IDisposable _binding = null!; + + /// Creates the fixture outside the binding measurement. + [GlobalSetup(Target = nameof(Subscribe))] + public void Setup() + { + _interactions = [new(), new()]; + _model = new() { Question = _interactions[0] }; + _view = new() { ViewModel = _model }; + } + + /// Establishes a generated binding before replacing interactions. + [GlobalSetup(Target = nameof(ReplaceInteraction))] + public void SetupDelivery() + { + Setup(); + _binding = _view.BindInteraction(_model, x => x.Question, Answer); + } + + /// Releases the binding and its final handler. + [GlobalCleanup(Target = nameof(ReplaceInteraction))] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void CleanupDelivery() => _binding.Dispose(); + + /// Creates a generated binding, registers its initial handler, and disposes both. + [Benchmark] + public void Subscribe() + { + using var binding = _view.BindInteraction(_model, x => x.Question, Answer); + } + + /// Moves the registered handler between existing interactions through the live binding. + /// The interaction that owns the handler. + [Benchmark(OperationsPerInvoke = ChangeCount)] + public Interaction ReplaceInteraction() + { + for (var i = 0; i < ChangeCount; i++) + { + _model.Question = _interactions[i & 1]; + } + + return _model.Question; + } + + /// Completes the interaction synchronously without adding asynchronous work. + /// The question to answer. + /// A completed handler task. + private static Task Answer(IInteractionContext context) + { + context.SetOutput(context.Input); + return Task.CompletedTask; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindOneWayBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindOneWayBenchmark.cs new file mode 100644 index 00000000..f10fc52e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindOneWayBenchmark.cs @@ -0,0 +1,82 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Primitives.Concurrency; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated BindOneWay benchmarks with and without scheduler. +public class BindOneWayBenchmark +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// The number of consecutive bindings created in the setup/teardown benchmark. + private const int BindingCount = 10; + + /// The source view model of the benchmark. + private BenchmarkViewModel _source = null!; + + /// The target view of the benchmark. + private BenchmarkView _target = null!; + + /// Sets up fresh source and target objects before each benchmark iteration. + [IterationSetup] + public void Setup() + { + _source = new() { Name = "Initial", Age = 0 }; + _target = new(); + } + + /// One-way binding without scheduler: setup, fire N changes, dispose. + [Benchmark(Description = "BindOneWay")] + public void Standard() + { + using var binding = _source.BindOneWay(_target, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// One-way binding with ImmediateSequencer: measures the scheduler-carrying overload's overhead. + [Benchmark(Description = "BindOneWay + Scheduler")] + public void WithScheduler() + { + using var binding = _source.BindOneWay(_target, x => x.Name, x => x.DisplayName, ImmediateSequencer.Instance); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// Cold start: create binding, dispose immediately. No property changes. + [Benchmark(Description = "First Binding")] + public void FirstBinding() + { + using var binding = _source.BindOneWay(_target, x => x.Name, x => x.DisplayName); + } + + /// Setup and teardown cost of 10 consecutive bindings. + [Benchmark(Description = "10x Setup/Teardown")] + public void SetupTeardown() + { + var bindings = new IDisposable[BindingCount]; + + for (var i = 0; i < BindingCount; i++) + { + _source.Name = $"VM_{i}"; + bindings[i] = _source.BindOneWay(_target, x => x.Name, x => x.DisplayName); + } + + for (var i = 0; i < BindingCount; i++) + { + bindings[i].Dispose(); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindToBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindToBenchmark.cs new file mode 100644 index 00000000..5e58b98f --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindToBenchmark.cs @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated BindTo benchmarks, which write a stream's values into a target property. +public class BindToBenchmark +{ + /// How many values each benchmark pushes through one binding. + private const int ValueCount = 1_000; + + /// The stream the binding reads. + private BenchmarkSource _source = null!; + + /// The binding's target. + private BenchmarkView _view = null!; + + /// Builds a fresh stream and target before each iteration. + [IterationSetup] + public void Setup() + { + _source = new(); + _view = new(); + } + + /// One binding, driven through N values. + [Benchmark(Description = "BindTo")] + public void Standard() + { + using var binding = _source.BindTo(_view, v => v.DisplayName); + + for (var i = 0; i < ValueCount; i++) + { + _source.Push($"Value_{i}"); + } + } + + /// Creating the binding, with no values pushed. + [Benchmark(Description = "First Binding")] + public void FirstBinding() + { + using var binding = _source.BindTo(_view, v => v.DisplayName); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayBenchmark.cs new file mode 100644 index 00000000..91f0ece8 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayBenchmark.cs @@ -0,0 +1,88 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Primitives.Concurrency; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated BindTwoWay benchmarks with and without scheduler. +public class BindTwoWayBenchmark +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// The modulus used to alternate updates between the source and the target each iteration. + private const int AlternationModulus = 2; + + /// The source and target view models used for binding benchmarks. + private BenchmarkViewModel _source = null!; + + /// The target view used for binding benchmarks. + private BenchmarkView _target = null!; + + /// Sets up fresh source and target objects before each benchmark iteration. + [IterationSetup] + public void Setup() + { + _source = new() { Name = "Initial", Age = 0 }; + _target = new(); + } + + /// Two-way binding without scheduler: setup, fire N source changes, dispose. + [Benchmark(Description = "BindTwoWay")] + public void Standard() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// Two-way binding with ImmediateSequencer: measures the scheduler-carrying overload's overhead on both directions. + [Benchmark(Description = "BindTwoWay + Scheduler")] + public void WithScheduler() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName, ImmediateSequencer.Instance); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + } + } + + /// Two-way binding with alternating source and target changes. + [Benchmark(Description = "Bidirectional")] + public void Bidirectional() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + if (i % AlternationModulus == 0) + { + _source.Name = $"FromSource_{i}"; + } + else + { + _target.DisplayName = $"FromTarget_{i}"; + } + } + } + + /// + /// Observes changes to the property using ReactiveUI's + /// expression-tree-based binding APIs. This method is essential for setting up the reverse + /// observation path required in bi-directional bindings when benchmarking BindTwoWay. + /// + /// The instance of whose property changes are observed. + /// An observable sequence of values that represent the changes to the property. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static IObservable TriggerViewGeneration(BenchmarkView view) => + view.WhenChanged(x => x.DisplayName); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayQueuedBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayQueuedBenchmark.cs new file mode 100644 index 00000000..5e0f26af --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/BindTwoWayQueuedBenchmark.cs @@ -0,0 +1,88 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated BindTwoWay benchmarks through a sequencer that queues every write, from sides that start equal. +public class BindTwoWayQueuedBenchmark +{ + /// The value both sides start with. + private const string StartValue = "Initial"; + + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// The source view model. + private BenchmarkViewModel _source = null!; + + /// The target view. + private BenchmarkView _target = null!; + + /// The sequencer that queues every write. + private QueuingSequencer _sequencer = null!; + + /// Sets up fresh source, target and sequencer objects before each benchmark iteration. + [IterationSetup] + public void Setup() + { + _source = new() { Name = StartValue, Age = 0 }; + _target = new() { DisplayName = StartValue }; + _sequencer = new(); + } + + /// The initial delivery: create the binding and run every write it queues. + [Benchmark(Description = "Queued BindTwoWay initial delivery")] + public void InitialDelivery() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName, _sequencer); + + _sequencer.Drain(); + } + + /// Model to view: change the source a thousand times, running the queue after each change. + [Benchmark(Description = "Queued BindTwoWay model to view")] + public void ModelToView() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName, _sequencer); + _sequencer.Drain(); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"Name_{i}"; + _sequencer.Drain(); + } + } + + /// Model to view in bursts: change the source twice, then run the queue, a thousand times. + [Benchmark(Description = "Queued BindTwoWay model to view burst")] + public void ModelToViewBurst() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName, _sequencer); + _sequencer.Drain(); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _source.Name = $"First_{i}"; + _source.Name = $"Second_{i}"; + _sequencer.Drain(); + } + } + + /// View to model: change the target a thousand times, running the queue after each change. + [Benchmark(Description = "Queued BindTwoWay view to model")] + public void ViewToModel() + { + using var binding = _source.BindTwoWay(_target, x => x.Name, x => x.DisplayName, _sequencer); + _sequencer.Drain(); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _target.DisplayName = $"Text_{i}"; + _sequencer.Drain(); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/CombineLatestArityBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/CombineLatestArityBenchmark.cs new file mode 100644 index 00000000..c4966b9e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/CombineLatestArityBenchmark.cs @@ -0,0 +1,667 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Configs; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Primitives; +using ReactiveUI.Primitives.Advanced; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Compares complete construction, subscription, and disposal for each supported CombineLatest arity. +[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)] +public class CombineLatestArityBenchmark +{ + /// The two-source overload. + private const int TwoSources = 2; + + /// The three-source overload. + private const int ThreeSources = 3; + + /// The four-source overload. + private const int FourSources = 4; + + /// The five-source overload. + private const int FiveSources = 5; + + /// The six-source overload. + private const int SixSources = 6; + + /// The seven-source overload. + private const int SevenSources = 7; + + /// The eight-source overload. + private const int EightSources = 8; + + /// The nine-source overload. + private const int NineSources = 9; + + /// The ten-source overload. + private const int TenSources = 10; + + /// The eleven-source overload. + private const int ElevenSources = 11; + + /// The twelve-source overload. + private const int TwelveSources = 12; + + /// The thirteen-source overload. + private const int ThirteenSources = 13; + + /// The fourteen-source overload. + private const int FourteenSources = 14; + + /// The fifteen-source overload. + private const int FifteenSources = 15; + + /// The sixteen-source overload. + private const int SixteenSources = 16; + + /// The independently subscribed sources. + private BenchmarkSource[] _sources = null!; + + /// The consumer shared by the two construction routes. + private DeliveryObserver _observer = null!; + + /// The extension pipeline whose subscription is measured independently of construction. + private IObservable _extension = null!; + + /// The constructor pipeline whose subscription creates fresh typed slots. + private IObservable _constructor = null!; + + /// Gets or sets the number of sources combined. + [Params(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)] + public int Arity { get; set; } + + /// Creates sources and verifies that both routes attach every source and project its value. + [GlobalSetup] + public void Setup() + { + _sources = new BenchmarkSource[Arity]; + _observer = new(); + for (var i = 0; i < _sources.Length; i++) + { + _sources[i] = new(); + } + + _extension = CreateExtension(); + _constructor = CreateConstructor(); + Validate(_extension); + Validate(_constructor); + } + + /// Constructs and subscribes through the extension overload, then detaches every source. + [Benchmark(Baseline = true)] + [BenchmarkCategory("ConstructAndSubscribe")] + public void Extension() + { + using var subscription = CreateExtension().Subscribe(_observer); + } + + /// Constructs and subscribes through the public concrete constructor, then detaches every source. + [Benchmark] + [BenchmarkCategory("ConstructAndSubscribe")] + public void Constructor() + { + using var subscription = CreateConstructor().Subscribe(_observer); + } + + /// Subscribes to an existing extension pipeline, then detaches every source. + [Benchmark(Baseline = true)] + [BenchmarkCategory("Subscribe")] + public void SubscribeExtension() + { + using var subscription = _extension.Subscribe(_observer); + } + + /// Subscribes to an existing concrete pipeline, creating fresh slots and projection closure. + [Benchmark] + [BenchmarkCategory("Subscribe")] + public void SubscribeConstructor() + { + using var subscription = _constructor.Subscribe(_observer); + } + + /// Checks that the selected arity performs real subscriptions and computes the sum. + /// The construction route to verify. + /// The route does not project all inputs. + private void Validate(IObservable observable) + { + using var subscription = observable.Subscribe(_observer); + _observer.OnNext(-1); + var expected = 0; + for (var i = 0; i < _sources.Length; i++) + { + _sources[i].Push(i + 1); + expected += i + 1; + } + + if (_observer.Value != expected) + { + throw new InvalidOperationException("CombineLatest did not combine every source."); + } + } + + /// Selects the extension overload with the exact number of typed inputs. + /// The observable whose construction remains inside the measured operation. + /// The configured arity is unsupported. + private IObservable CreateExtension() => Arity switch + { + TwoSources => CreateExtension2(), + ThreeSources => CreateExtension3(), + FourSources => CreateExtension4(), + FiveSources => CreateExtension5(), + SixSources => CreateExtension6(), + SevenSources => CreateExtension7(), + EightSources => CreateExtension8(), + NineSources => CreateExtension9(), + TenSources => CreateExtension10(), + ElevenSources => CreateExtension11(), + TwelveSources => CreateExtension12(), + ThirteenSources => CreateExtension13(), + FourteenSources => CreateExtension14(), + FifteenSources => CreateExtension15(), + SixteenSources => CreateExtension16(), + _ => throw new InvalidOperationException("Unsupported arity."), + }; + + /// Selects a concrete constructor whose projection captures typed slots. + /// The observable whose construction remains inside the measured operation. + /// The configured arity is unsupported. + private IObservable CreateConstructor() => Arity switch + { + TwoSources => new CombineLatestSignal(_sources[0], _sources[1], static (left, right) => left + right), + ThreeSources => Create3(), + FourSources => Create4(), + FiveSources => Create5(), + SixSources => Create6(), + SevenSources => Create7(), + EightSources => Create8(), + NineSources => Create9(), + TenSources => Create10(), + ElevenSources => Create11(), + TwelveSources => Create12(), + ThirteenSources => Create13(), + FourteenSources => Create14(), + FifteenSources => Create15(), + SixteenSources => Create16(), + _ => throw new InvalidOperationException("Unsupported arity."), + }; + + /// Attaches 3 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create3() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + + return () => slot1.Value + slot2.Value + slot3.Value; + }); + + /// Attaches 4 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create4() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value; + }); + + /// Attaches 5 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create5() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value; + }); + + /// Attaches 6 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create6() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value; + }); + + /// Attaches 7 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create7() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value; + }); + + /// Attaches 8 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create8() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value; + }); + + /// Attaches 9 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create9() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value + slot9.Value; + }); + + /// Attaches 10 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create10() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value + slot9.Value + slot10.Value; + }); + + /// Attaches 11 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create11() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value + slot9.Value + slot10.Value + slot11.Value; + }); + + /// Attaches 12 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create12() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + var slot12 = coordinator.Attach(_sources[11]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value + slot9.Value + slot10.Value + slot11.Value + slot12.Value; + }); + + /// Attaches 13 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create13() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + var slot12 = coordinator.Attach(_sources[11]); + var slot13 = coordinator.Attach(_sources[12]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + + slot8.Value + slot9.Value + slot10.Value + slot11.Value + slot12.Value + slot13.Value; + }); + + /// Attaches 14 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create14() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + var slot12 = coordinator.Attach(_sources[11]); + var slot13 = coordinator.Attach(_sources[12]); + var slot14 = coordinator.Attach(_sources[13]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + + slot8.Value + slot9.Value + slot10.Value + slot11.Value + slot12.Value + slot13.Value + slot14.Value; + }); + + /// Attaches 15 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create15() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + var slot12 = coordinator.Attach(_sources[11]); + var slot13 = coordinator.Attach(_sources[12]); + var slot14 = coordinator.Attach(_sources[13]); + var slot15 = coordinator.Attach(_sources[14]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + + slot8.Value + slot9.Value + slot10.Value + slot11.Value + slot12.Value + slot13.Value + slot14.Value + slot15.Value; + }); + + /// Attaches 16 typed slots with one projection closure per subscription. + /// The publicly constructed observable. + private CombineLatestSignal Create16() => new(coordinator => + { + var slot1 = coordinator.Attach(_sources[0]); + var slot2 = coordinator.Attach(_sources[1]); + var slot3 = coordinator.Attach(_sources[2]); + var slot4 = coordinator.Attach(_sources[3]); + var slot5 = coordinator.Attach(_sources[4]); + var slot6 = coordinator.Attach(_sources[5]); + var slot7 = coordinator.Attach(_sources[6]); + var slot8 = coordinator.Attach(_sources[7]); + var slot9 = coordinator.Attach(_sources[8]); + var slot10 = coordinator.Attach(_sources[9]); + var slot11 = coordinator.Attach(_sources[10]); + var slot12 = coordinator.Attach(_sources[11]); + var slot13 = coordinator.Attach(_sources[12]); + var slot14 = coordinator.Attach(_sources[13]); + var slot15 = coordinator.Attach(_sources[14]); + var slot16 = coordinator.Attach(_sources[15]); + + return () => slot1.Value + slot2.Value + slot3.Value + slot4.Value + slot5.Value + slot6.Value + slot7.Value + slot8.Value + + slot9.Value + slot10.Value + slot11.Value + slot12.Value + slot13.Value + slot14.Value + slot15.Value + slot16.Value; + }); + + /// Constructs the extension pipeline for 2 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension2() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + static (v1, v2) => v1 + v2); + + /// Constructs the extension pipeline for 3 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension3() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + static (v1, v2, v3) => v1 + v2 + v3); + + /// Constructs the extension pipeline for 4 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension4() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + static (v1, v2, v3, v4) => v1 + v2 + v3 + v4); + + /// Constructs the extension pipeline for 5 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension5() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + static (v1, v2, v3, v4, v5) => v1 + v2 + v3 + v4 + v5); + + /// Constructs the extension pipeline for 6 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension6() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + static (v1, v2, v3, v4, v5, v6) => v1 + v2 + v3 + v4 + v5 + v6); + + /// Constructs the extension pipeline for 7 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension7() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + static (v1, v2, v3, v4, v5, v6, v7) => v1 + v2 + v3 + v4 + v5 + v6 + v7); + + /// Constructs the extension pipeline for 8 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension8() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + static (v1, v2, v3, v4, v5, v6, v7, v8) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8); + + /// Constructs the extension pipeline for 9 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension9() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9); + + /// Constructs the extension pipeline for 10 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension10() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10); + + /// Constructs the extension pipeline for 11 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension11() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11); + + /// Constructs the extension pipeline for 12 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension12() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + _sources[11], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12); + + /// Constructs the extension pipeline for 13 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension13() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + _sources[11], + _sources[12], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13); + + /// Constructs the extension pipeline for 14 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension14() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + _sources[11], + _sources[12], + _sources[13], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13 + v14); + + /// Constructs the extension pipeline for 15 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension15() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + _sources[11], + _sources[12], + _sources[13], + _sources[14], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13 + v14 + v15); + + /// Constructs the extension pipeline for 16 typed sources. + /// The unshared pipeline instance. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IObservable CreateExtension16() => LinqExtensions.CombineLatest( + _sources[0], + _sources[1], + _sources[2], + _sources[3], + _sources[4], + _sources[5], + _sources[6], + _sources[7], + _sources[8], + _sources[9], + _sources[10], + _sources[11], + _sources[12], + _sources[13], + _sources[14], + _sources[15], + static (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) => v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13 + v14 + v15 + v16); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/InteractionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/InteractionBenchmark.cs new file mode 100644 index 00000000..5c215eac --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/InteractionBenchmark.cs @@ -0,0 +1,77 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Interaction benchmarks: asking a question, and registering and removing handlers. +public class InteractionBenchmark +{ + /// How many questions each Handle benchmark asks. + private const int QuestionCount = 1_000; + + /// How many handlers each registration benchmark adds and removes. + private const int RegistrationCount = 10; + + /// The interaction under measurement, with three handlers registered. + private Interaction _interaction = null!; + + /// The handler registrations, released after each iteration. + private IDisposable[] _registrations = null!; + + /// Registers one handler that answers and two later ones that pass, so every question walks all three. + [IterationSetup] + public void Setup() + { + _interaction = new(); + _registrations = + [ + _interaction.RegisterHandler(static context => context.SetOutput(context.Input.Length)), + _interaction.RegisterHandler(static _ => { }), + _interaction.RegisterHandler(static _ => { }), + ]; + } + + /// Releases the handler registrations. + [IterationCleanup] + public void Cleanup() + { + for (var i = 0; i < _registrations.Length; i++) + { + _registrations[i].Dispose(); + } + } + + /// Asks N questions that fall through two handlers to the one that answers. + /// The sum of the answers. + [Benchmark(Description = "Handle")] + public async Task Handle() + { + var total = 0; + for (var i = 0; i < QuestionCount; i++) + { + total += await _interaction.Handle("question").ConfigureAwait(false); + } + + return total; + } + + /// Registers ten more handlers beside the three already registered, then removes them. + [Benchmark(Description = "10x Register/Dispose")] + public void RegisterAndDispose() + { + var registrations = new IDisposable[RegistrationCount]; + + for (var i = 0; i < RegistrationCount; i++) + { + registrations[i] = _interaction.RegisterHandler(static context => context.SetOutput(0)); + } + + for (var i = 0; i < RegistrationCount; i++) + { + registrations[i].Dispose(); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/InvokeCommandBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/InvokeCommandBenchmark.cs new file mode 100644 index 00000000..84ef282f --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/InvokeCommandBenchmark.cs @@ -0,0 +1,52 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated InvokeCommand benchmarks, which run a command with each value a stream produces. +public class InvokeCommandBenchmark +{ + /// How many values each benchmark pushes through one invocation. + private const int ValueCount = 1_000; + + /// The stream driving the command. + private BenchmarkSource _source = null!; + + /// The view model holding the command. + private BenchmarkViewModel _vm = null!; + + /// The command being run. + private BenchmarkCommand _command = null!; + + /// Builds a fresh stream, view model and command before each iteration. + [IterationSetup] + public void Setup() + { + _source = new(); + _command = new(); + _vm = new() { Name = "Initial", Run = _command }; + } + + /// One invocation, driven through N values. + [Benchmark(Description = "InvokeCommand")] + public void Standard() + { + using var invocation = _source.InvokeCommand(_vm, x => x.Run); + + for (var i = 0; i < ValueCount; i++) + { + _source.Push($"Value_{i}"); + } + } + + /// Wiring the invocation up, with no values pushed. + [Benchmark(Description = "First Invocation")] + public void FirstInvocation() + { + using var invocation = _source.InvokeCommand(_vm, x => x.Run); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/NumberPicker.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/NumberPicker.cs new file mode 100644 index 00000000..f7c2551b --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/NumberPicker.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace Android.Widget; + +/// Provides a typed native value event with no fixture allocation per update. +public sealed class NumberPicker : Views.View +{ + /// Occurs after the numeric value changes. + public event EventHandler? ValueChanged; + + /// Gets or sets the observed value. + public int Value + { + get => field; + set + { + field = value; + ValueChanged?.Invoke(this, EventArgs.Empty); + } + } = -1; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/View.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/View.cs new file mode 100644 index 00000000..015206be --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/Android/View.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace Android.Views; + +/// Provides the Android click contract for measuring generated command wiring. +public class View +{ + /// Occurs when the benchmark requests a click. + public event EventHandler? Click; + + /// Gets or sets the command's enabled state. + public bool Enabled { get; set; } + + /// Raises the native event without allocating event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void RaiseClick() => Click?.Invoke(this, EventArgs.Empty); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkChildViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkChildViewModel.cs new file mode 100644 index 00000000..b94e7381 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkChildViewModel.cs @@ -0,0 +1,32 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A child view model for deep chain benchmarks. +[DebuggerDisplay("BenchmarkChildViewModel: Value = {Value}")] +public class BenchmarkChildViewModel : INotifyPropertyChanged +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets or sets the value. + public string Value + { + get => field; + set + { + if (field == value) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new(nameof(Value))); + } + } = string.Empty; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkCommand.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkCommand.cs new file mode 100644 index 00000000..8a5262c8 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkCommand.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Windows.Input; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A command that counts what reached it, so an invocation benchmark measures the wiring and not the body. +public sealed class BenchmarkCommand : ICommand +{ + /// + /// The command is always available, so nothing raises this. A binder still subscribes to it. + public event EventHandler? CanExecuteChanged + { + add { } + remove { } + } + + /// Gets how many times the command has run. + public int ExecutionCount { get; private set; } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanExecute(object? parameter) => true; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Execute(object? parameter) => ExecutionCount++; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkSource.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkSource.cs new file mode 100644 index 00000000..39f8c3bf --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkSource.cs @@ -0,0 +1,46 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A stream the benchmark drives by hand, so the value count is the measurement. +/// The value type. +/// +/// Hand-rolled rather than taken from an Rx library, because a scheduler or a subject of its own would put +/// that library's allocations into a number meant to be this one's. +/// +public sealed class BenchmarkSource : IObservable +{ + /// The observers currently subscribed. + private readonly List> _observers = []; + + /// + public IDisposable Subscribe(IObserver observer) + { + _observers.Add(observer); + return new Subscription(this, observer); + } + + /// Hands one value to every observer. + /// The value to deliver. + public void Push(T value) + { + for (var i = 0; i < _observers.Count; i++) + { + _observers[i].OnNext(value); + } + } + + /// Removes one observer when its subscription is disposed. + /// The stream subscribed to. + /// The observer to remove. + private sealed class Subscription(BenchmarkSource parent, IObserver observer) : IDisposable + { + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => parent._observers.Remove(observer); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkView.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkView.cs new file mode 100644 index 00000000..05661df1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkView.cs @@ -0,0 +1,71 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A view used for binding benchmarks. Implements to support ReactiveUI's expression-tree-based binding APIs. +[DebuggerDisplay("BenchmarkView: DisplayName = {DisplayName}, DisplayAge = {DisplayAge}")] +public class BenchmarkView : IViewFor, INotifyPropertyChanged +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets or sets the display name. + public string DisplayName + { + get => field; + set + { + if (field == value) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new(nameof(DisplayName))); + } + } = string.Empty; + + /// Gets or sets the display age. + public int DisplayAge + { + get => field; + set + { + if (field == value) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new(nameof(DisplayAge))); + } + } + + /// + public BenchmarkViewModel? ViewModel + { + get => field; + set + { + if (field == value) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new(nameof(ViewModel))); + } + } + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (BenchmarkViewModel?)value; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkViewModel.cs new file mode 100644 index 00000000..2eef7945 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BenchmarkViewModel.cs @@ -0,0 +1,122 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics; +using System.Windows.Input; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A view model used for benchmarking source-generated property observation and binding. +[DebuggerDisplay("BenchmarkViewModel: Name = {Name}, Age = {Age}")] +public class BenchmarkViewModel : INotifyPropertyChanged, INotifyPropertyChanging +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// + public event PropertyChangingEventHandler? PropertyChanging; + + /// Gets or sets the name. + public string Name + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(Name))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(Name))); + } + } = string.Empty; + + /// Gets or sets the age. + public int Age + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(Age))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(Age))); + } + } + + /// Gets or sets the child view model. + public BenchmarkChildViewModel Child + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(Child))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(Child))); + } + } = new(); + + /// Gets or sets the command an invocation or a command binding reaches. + public ICommand? Run + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(Run))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(Run))); + } + } + + /// Gets or sets the stream a WhenAnyObservable call switches to. + public IObservable? Signal + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(Signal))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(Signal))); + } + } + + /// Gets or sets the second stream a WhenAnyObservable call combines. + public IObservable? OtherSignal + { + get => field; + set + { + if (field == value) + { + return; + } + + PropertyChanging?.Invoke(this, new(nameof(OtherSignal))); + field = value; + PropertyChanged?.Invoke(this, new(nameof(OtherSignal))); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundCommandControl.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundCommandControl.cs new file mode 100644 index 00000000..475ca814 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundCommandControl.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows.Input; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Exposes the command property pattern recognized by the binding generator. +public sealed class BoundCommandControl +{ + /// Occurs when the control is pressed. + public event EventHandler? Click; + + /// Gets or sets the command installed by the binding. + public ICommand? Command { get; set; } + + /// Gets or sets the argument supplied when the control executes its command. + public object? CommandParameter { get; set; } + + /// Raises the default event and executes the installed command when available. + public void Press() + { + Click?.Invoke(this, EventArgs.Empty); + if (Command?.CanExecute(CommandParameter) == true) + { + Command.Execute(CommandParameter); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundView.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundView.cs new file mode 100644 index 00000000..f791dad8 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundView.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Owns the control and interaction handlers exercised by generated binding benchmarks. +public sealed class BoundView : IViewFor +{ + /// Gets the command-bearing control with directly accessible properties. + public BoundCommandControl Button { get; } = new(); + + /// + public BoundViewModel? ViewModel { get; set; } + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (BoundViewModel?)value; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundViewModel.cs new file mode 100644 index 00000000..d98cfa75 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/BoundViewModel.cs @@ -0,0 +1,43 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Windows.Input; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Provides replaceable commands and interactions with cached property notifications. +public sealed class BoundViewModel : INotifyPropertyChanged +{ + /// The command replacement notification. + private static readonly PropertyChangedEventArgs CommandChanged = new(nameof(Command)); + + /// The interaction replacement notification. + private static readonly PropertyChangedEventArgs InteractionChanged = new(nameof(Question)); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets or sets the command the view's control receives. + public ICommand? Command + { + get => field; + set + { + field = value; + PropertyChanged?.Invoke(this, CommandChanged); + } + } + + /// Gets or sets the interaction whose handler belongs to the view. + public Interaction Question + { + get => field; + set + { + field = value; + PropertyChanged?.Invoke(this, InteractionChanged); + } + } = new(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ContendedDeliveryObserver.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ContendedDeliveryObserver.cs new file mode 100644 index 00000000..a552af17 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ContendedDeliveryObserver.cs @@ -0,0 +1,74 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Pauses one subscriber call while a separate producer competes for delivery. +internal sealed class ContendedDeliveryObserver : IObserver, IDisposable +{ + /// The longest permitted fixture synchronization wait. + internal static readonly TimeSpan Timeout = TimeSpan.FromSeconds(30); + + /// Whether the next value should pause. + private int _armed; + + /// Whether the pause ends only when cleanup releases it. + private bool _hold; + + /// The fixed subscriber workload in milliseconds. + private int _delay; + + /// Gets the signal raised when the paused subscriber owns delivery. + internal ManualResetEventSlim Entered { get; } = new(); + + /// Gets the signal that ends a held subscriber call. + internal ManualResetEventSlim Release { get; } = new(); + + /// + public void OnNext(int value) + { + if (Interlocked.Exchange(ref _armed, 0) == 0) + { + return; + } + + Entered.Set(); + if (_hold) + { + if (!Release.Wait(Timeout)) + { + throw new TimeoutException("The benchmark did not release the subscriber."); + } + } + else + { + Thread.Sleep(_delay); + } + } + + /// + public void OnError(Exception error) => throw new InvalidOperationException("Observation failed.", error); + + /// + public void OnCompleted() + { + } + + /// + public void Dispose() + { + Entered.Dispose(); + Release.Dispose(); + } + + /// Arms one pause after the subscription's initial value has been delivered. + /// Whether cleanup controls when the subscriber resumes. + /// The subscriber workload in milliseconds when not held. + internal void Arm(bool hold, int delay) + { + _hold = hold; + _delay = delay; + Volatile.Write(ref _armed, 1); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/CountingObserver.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/CountingObserver.cs new file mode 100644 index 00000000..6bba1987 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/CountingObserver.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Counts what a binding reported without allocating per change. +internal sealed class CountingObserver : IObserver +{ + /// Gets how many changes were reported. + public int Count { get; private set; } + + /// + public void OnNext(BindingChange value) => Count++; + + /// + public void OnError(Exception error) + { + } + + /// + public void OnCompleted() + { + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryNotificationPlugin.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryNotificationPlugin.cs new file mode 100644 index 00000000..dbd80987 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryNotificationPlugin.cs @@ -0,0 +1,76 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Linq.Expressions; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Forwards cached notification tokens so plugin delivery measures typed reads without per-change boxing. +internal sealed class DeliveryNotificationPlugin : ICreatesObservableForProperty +{ + /// The score for the fixture's notification mechanism. + private const int Affinity = 100; + + /// + public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged) => + type == typeof(DeliveryViewModel) && propertyName == nameof(DeliveryViewModel.Value) && !beforeChanged ? Affinity : 0; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IObservable> GetNotificationForProperty( + object sender, + Expression expression, + string propertyName, + bool beforeChanged, + bool suppressWarnings) => new Notifications((DeliveryViewModel)sender, expression); + + /// Owns one immutable property notification token. + /// The property source. + /// The property expression passed to the provider. + private sealed class Notifications(DeliveryViewModel source, Expression expression) : IObservable> + { + /// The provider's signal-only token; the binding reads the typed value itself. + private readonly ObservedChange _change = new(source, expression, null); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IDisposable Subscribe(IObserver> observer) => new Subscription(source, _change, observer); + } + + /// Attaches one event handler for one provider subscription. + private sealed class Subscription : IDisposable + { + /// The notification source. + private readonly DeliveryViewModel _source; + + /// The immutable signal token reused for each notification. + private readonly IObservedChange _change; + + /// The subscriber receiving notifications. + private readonly IObserver> _observer; + + /// Initializes a new instance of the class. + /// The event source. + /// The token reused for each event. + /// The downstream notification consumer. + internal Subscription(DeliveryViewModel source, IObservedChange change, IObserver> observer) + { + _source = source; + _change = change; + _observer = observer; + _source.PropertyChanged += OnChanged; + } + + /// + public void Dispose() => _source.PropertyChanged -= OnChanged; + + /// Forwards a notification without reading or boxing the property. + /// The event sender. + /// The cached event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void OnChanged(object? sender, PropertyChangedEventArgs args) => _observer.OnNext(_change); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObservation.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObservation.cs new file mode 100644 index 00000000..d6a540c1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObservation.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Linq.Expressions; +using ReactiveUI.Binding.Observables; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Builds the public observation types with typed, cached accessors. +internal static class DeliveryObservation +{ + /// The provider whose events require no reflected property access. + private static readonly DeliveryNotificationPlugin Plugin = new(); + + /// The property expression shared across subscriptions. + private static readonly Expression> ValueExpression = static source => source.Value; + + /// Creates the observation whose subscription owns the delivery gate. + /// The source to read and observe. + /// The notification contract to exercise. + /// An observable that emits its initial value when subscribed. + /// The observation kind is not supported. + internal static IObservable Create(DeliveryViewModel source, string kind) => kind switch + { + nameof(ObservationKind.Changed) => new PropertyObservable(source, nameof(DeliveryViewModel.Value), static model => ((DeliveryViewModel)model).Value, false), + nameof(ObservationKind.Changing) => new PropertyChangingObservable(source, nameof(DeliveryViewModel.Value), static model => ((DeliveryViewModel)model).Value), + nameof(ObservationKind.Plugin) => new PluginPropertyObservable( + Plugin, + source, + ValueExpression.Body, + nameof(DeliveryViewModel.Value), + static model => ((DeliveryViewModel)model).Value, + false, + false), + _ => throw new ArgumentOutOfRangeException(nameof(kind)), + }; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObserver.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObserver.cs new file mode 100644 index 00000000..ddebbbf1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryObserver.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Consumes integer notifications without allocating for each value. +public sealed class DeliveryObserver : IObserver +{ + /// Gets the most recent observed value. + public int Value { get; private set; } + + /// + public void OnNext(int value) => Value = value; + + /// + public void OnError(Exception error) => throw new InvalidOperationException("Observation failed.", error); + + /// + public void OnCompleted() + { + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryViewModel.cs new file mode 100644 index 00000000..28ca03c5 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/DeliveryViewModel.cs @@ -0,0 +1,35 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Raises cached notifications around an integer write without per-change fixture allocations. +public sealed class DeliveryViewModel : INotifyPropertyChanged, INotifyPropertyChanging +{ + /// The shared after-change notification. + private static readonly PropertyChangedEventArgs Changed = new(nameof(Value)); + + /// The shared before-change notification. + private static readonly PropertyChangingEventArgs Changing = new(nameof(Value)); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// + public event PropertyChangingEventHandler? PropertyChanging; + + /// Gets or sets the value, raising both events even when the value repeats. + public int Value + { + get => Volatile.Read(ref field); + set + { + PropertyChanging?.Invoke(this, Changing); + Volatile.Write(ref field, value); + PropertyChanged?.Invoke(this, Changed); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterCommand.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterCommand.cs new file mode 100644 index 00000000..e4a5d1c6 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterCommand.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using System.Windows.Input; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Counts command executions across long benchmark runs. +public sealed class NativeAdapterCommand : ICommand +{ + /// + public event EventHandler? CanExecuteChanged + { + add { } + remove { } + } + + /// Gets the number of delivered command invocations. + public long Executions { get; private set; } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool CanExecute(object? parameter) => true; + + /// + public void Execute(object? parameter) => Executions++; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterView.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterView.cs new file mode 100644 index 00000000..c11fb5de --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/NativeAdapterView.cs @@ -0,0 +1,28 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Exposes native control contracts to the generated bindings. +public sealed class NativeAdapterView : IViewFor +{ + /// Initializes a new instance of the class. + public NativeAdapterView() => Controls = new(new()); + + /// + public BenchmarkViewModel? ViewModel { get; set; } + + /// Gets the native click target. + public Android.Views.View Button { get; } = new(); + + /// Gets the collection receiving typed control arrays. + public System.Windows.Forms.Control.ControlCollection Controls { get; } + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (BenchmarkViewModel?)value; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ObservationKind.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ObservationKind.cs new file mode 100644 index 00000000..998c94ac --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ObservationKind.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// The delivery contracts exercised by the observation benchmarks. +public enum ObservationKind +{ + /// Re-reads the property after a change. + Changed = 0, + + /// Captures the property before a write. + Changing = 1, + + /// Re-reads the property after a custom provider's notification. + Plugin = 2, +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/QueuingSequencer.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/QueuingSequencer.cs new file mode 100644 index 00000000..5bf392c0 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/QueuingSequencer.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Primitives.Concurrency; + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A sequencer that queues every item until the benchmark drains it. +public sealed class QueuingSequencer : ISequencer +{ + /// The most items one drain runs before it reports that a binding never settles. + private const int DrainLimit = 100_000; + + /// The items scheduled and not yet run. + private readonly Queue _pending = new(); + + /// + public DateTimeOffset Now => ImmediateSequencer.Instance.Now; + + /// + public long Timestamp => ImmediateSequencer.Instance.Timestamp; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Schedule(IWorkItem item) => _pending.Enqueue(item); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Schedule(IWorkItem item, long dueTimestamp) => _pending.Enqueue(item); + + /// Runs queued items, and the items they queue, until none are left. + /// The queue still held items after the drain limit. + public void Drain() + { + var ran = 0; + while (_pending.Count > 0) + { + if (ran == DrainLimit) + { + throw new InvalidOperationException("The binding never settled."); + } + + _pending.Dequeue().Execute(); + ran++; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/TypedAdapterTarget.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/TypedAdapterTarget.cs new file mode 100644 index 00000000..492f036d --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/TypedAdapterTarget.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// Receives values from the generated nullable and numeric-string converters. +public sealed class TypedAdapterTarget +{ + /// Gets or sets the nullable numeric destination. + public int? Number + { + get => field; + set + { + field = value; + NumberWrites++; + } + } + + /// Gets or sets the formatted numeric destination. + public string Text + { + get => field; + set + { + field = value; + TextWrites++; + } + } = string.Empty; + + /// Gets the number of numeric writes actually delivered. + public long NumberWrites { get; private set; } + + /// Gets the number of formatted writes actually delivered. + public long TextWrites { get; private set; } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkView.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkView.cs new file mode 100644 index 00000000..4c034db5 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkView.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// The view a lookup registered by ViewLocatorBenchmark returns, which accepts any view model. +public sealed class ViewLocatorBenchmarkView : IViewFor +{ + /// + public object? ViewModel { get; set; } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkViewModel.cs new file mode 100644 index 00000000..d96084d0 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/ViewLocatorBenchmarkViewModel.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Mocks; + +/// A view model that only the lookups ViewLocatorBenchmark registers resolve. +public sealed class ViewLocatorBenchmarkViewModel +{ + /// Gets or sets the name. + public string Name { get; set; } = string.Empty; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Button.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Button.cs new file mode 100644 index 00000000..a509a3df --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Button.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace System.Windows.Forms; + +/// A concrete child control used by the collection binding. +public sealed class Button : Control +{ + /// Gets or sets the child identifier. + public int Id { get; set; } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Control.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Control.cs new file mode 100644 index 00000000..4ac1f023 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Mocks/WinForms/Control.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace System.Windows.Forms; + +/// Provides layout and collection contracts without platform rendering costs. +public class Control +{ + /// Gets the number of completed layout batches. + public long Layouts { get; private set; } + + /// Gets the number of outstanding layout suspensions. + public int LayoutDepth { get; private set; } + + /// Starts a layout batch. + public void SuspendLayout() => LayoutDepth++; + + /// Completes a layout batch. + public void ResumeLayout() + { + LayoutDepth--; + Layouts++; + } + + /// Stores controls in a reusable collection buffer. + public sealed class ControlCollection + { + /// Capacity reserved for the benchmark's fixed-size control inputs. + private const int BufferCapacity = 8; + + /// Storage allocated before measurement. + private readonly List _items = [with(BufferCapacity)]; + + /// Initializes a new instance of the class. + /// The layout owner. + public ControlCollection(Control owner) => Owner = owner; + + /// Gets the layout owner. + public Control Owner { get; } + + /// Gets the number of stored controls. + public int Count => _items.Count; + + /// Empties the collection while retaining its capacity. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Clear() => _items.Clear(); + + /// Adds the supplied controls. + /// The incoming controls. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void AddRange(Control[] controls) => _items.AddRange(controls); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/NativeAdapterBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/NativeAdapterBenchmark.cs new file mode 100644 index 00000000..24c3efb5 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/NativeAdapterBenchmark.cs @@ -0,0 +1,137 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Measures generated native wiring separately from platform rendering and interop costs. +public class NativeAdapterBenchmark : IObserver +{ + /// The number of native updates in each invocation. + private const int Updates = 1_000; + + /// The native value source. + private readonly Android.Widget.NumberPicker _picker = new(); + + /// The native binding target. + private readonly NativeAdapterView _view = new(); + + /// The command executed by native clicks. + private readonly NativeAdapterCommand _command = new(); + + /// The collection input stream. + private readonly BenchmarkSource _source = new(); + + /// Input controls allocated before measurement. + private readonly System.Windows.Forms.Button[] _controls = [new(), new()]; + + /// The active observation. + private IDisposable _observation = null!; + + /// The active command binding. + private IDisposable _commandBinding = null!; + + /// The active collection binding. + private IDisposable _collectionBinding = null!; + + /// The number of completed observation batches. + private long _observationBatches; + + /// The number of completed command batches. + private long _commandBatches; + + /// The number of completed collection batches. + private long _collectionBatches; + + /// The number of actual observation deliveries. + private long _observed; + + /// The latest observed value. + private int _last; + + /// Creates the native wiring before timing delivery. + [GlobalSetup] + public void Setup() + { + _view.ViewModel = new() { Run = _command }; + _observation = _picker.WhenChanged(picker => picker.Value).Subscribe(this); + _observed = 0; + _commandBinding = _view.BindCommand(_view.ViewModel, model => model.Run, view => view.Button); + _collectionBinding = _source.BindTo(_view, view => view.Controls); + } + + /// Checks every native operation was delivered and releases the bindings. + /// The measured work was not delivered. + [GlobalCleanup] + public void Cleanup() + { + _observation.Dispose(); + _commandBinding.Dispose(); + _collectionBinding.Dispose(); + if (_observed != _observationBatches * Updates || _command.Executions != _commandBatches * Updates + || _view.Controls.Owner.Layouts != _collectionBatches * Updates || _view.Controls.Owner.LayoutDepth != 0 + || (_observationBatches != 0 && _last != Updates - 1) + || (_collectionBatches != 0 && _view.Controls.Count != _controls.Length)) + { + throw new InvalidOperationException("Native adapter delivery counts do not match requested work."); + } + } + + /// Delivers value-type property notifications through the native event adapter. + /// The final observed value. + [Benchmark(OperationsPerInvoke = Updates)] + public int ObserveValue() + { + _observationBatches++; + for (var i = 0; i < Updates; i++) + { + _picker.Value = i; + } + + return _last; + } + + /// Executes commands through the native click adapter. + /// The number of actual command executions. + [Benchmark(OperationsPerInvoke = Updates)] + public long ExecuteCommand() + { + _commandBatches++; + for (var i = 0; i < Updates; i++) + { + _view.Button.RaiseClick(); + } + + return _command.Executions; + } + + /// Populates the existing native collection from a concrete control array. + /// The final collection size. + [Benchmark(OperationsPerInvoke = Updates)] + public int WriteCollection() + { + _collectionBatches++; + for (var i = 0; i < Updates; i++) + { + _source.Push(_controls); + } + + return _view.Controls.Count; + } + + /// + public void OnNext(int value) + { + _observed++; + _last = value; + } + + /// + public void OnError(Exception error) => throw new InvalidOperationException("Native observation failed.", error); + + /// + public void OnCompleted() => throw new InvalidOperationException("Native observation completed unexpectedly."); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationContentionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationContentionBenchmark.cs new file mode 100644 index 00000000..83f59aa6 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationContentionBenchmark.cs @@ -0,0 +1,160 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Separates competing setter latency from the time a slow subscriber occupies the delivery thread. +public class ObservationContentionBenchmark : IDisposable +{ + /// The competing changes supplied during one slow subscriber call. + private const int CompetingChanges = 16; + + /// The subscriber workload, longer than the delivery gate's contention budget. + private const int SubscriberDelayMilliseconds = 40; + + /// The first value produced by the competing setter. + private const int CompetingValue = 2; + + /// The observed integer source. + private DeliveryViewModel _source = null!; + + /// The subscriber that establishes deterministic contention. + private ContendedDeliveryObserver _observer = null!; + + /// The live subscription owning the delivery gate. + private IDisposable _subscription = null!; + + /// The competing producer, created outside the measurement. + private Thread _worker = null!; + + /// A worker failure propagated by cleanup. + private Exception? _workerError; + + /// Whether the current iteration's resources have been released. + private bool _disposed = true; + + /// Gets or sets the delivery contract. + [Params(nameof(ObservationKind.Changed), nameof(ObservationKind.Changing), nameof(ObservationKind.Plugin))] + public string Kind { get; set; } = nameof(ObservationKind.Changed); + + /// Blocks a subscriber on a worker before measuring the competing setter. + /// The worker fails to enter its subscriber. + [IterationSetup(Target = nameof(ProducerLatency))] + public void SetupProducer() + { + Setup(); + _observer.Arm(true, 0); + _worker = new(OccupyDelivery) { IsBackground = true }; + _worker.Start(); + if (!_observer.Entered.Wait(ContendedDeliveryObserver.Timeout)) + { + throw new TimeoutException("The worker did not enter the subscriber."); + } + } + + /// Prepares a waiting producer and a 40 ms subscriber workload on the measured thread. + [IterationSetup(Target = nameof(DeliveryThread))] + public void SetupDelivery() + { + Setup(); + _observer.Arm(false, SubscriberDelayMilliseconds); + _worker = new(CompeteForDelivery) { IsBackground = true }; + _worker.Start(); + } + + /// Releases the subscriber and joins all producer work outside the timed region. + [IterationCleanup] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Cleanup() => Dispose(); + + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Measures one setter's return while another thread holds the subscriber indefinitely. + [Benchmark] + public void ProducerLatency() => _source.Value = CompetingValue; + + /// Measures a delivery-thread setter, including the 40 ms subscriber and any handed-off work it drains. + [Benchmark] + public void DeliveryThread() => _source.Value = 1; + + /// Releases the current iteration after every producer has finished. + /// Whether managed resources should be released. + /// The competing producer does not finish. + /// The competing producer fails. + protected virtual void Dispose(bool disposing) + { + if (!disposing || _disposed) + { + return; + } + + _disposed = true; + _observer.Release.Set(); + if (!_worker.Join(ContendedDeliveryObserver.Timeout)) + { + throw new TimeoutException("The producer did not finish."); + } + + _subscription.Dispose(); + _observer.Dispose(); + if (_workerError is not null) + { + throw new InvalidOperationException("The producer failed.", _workerError); + } + } + + /// Creates the fixture and delivers the initial value before arming the slow subscriber. + private void Setup() + { + _source = new(); + _observer = new(); + _workerError = null; + _subscription = DeliveryObservation.Create(_source, Kind).Subscribe(_observer); + _disposed = false; + } + + /// Owns the subscriber until cleanup releases it. + private void OccupyDelivery() + { + try + { + _source.Value = 1; + } + catch (Exception error) + { + _workerError = error; + } + } + + /// Competes only after the measured thread has entered its slow subscriber. + /// The measured thread fails to enter the subscriber. + private void CompeteForDelivery() + { + try + { + if (!_observer.Entered.Wait(ContendedDeliveryObserver.Timeout)) + { + throw new TimeoutException("The delivery thread did not enter the subscriber."); + } + + for (var i = 0; i < CompetingChanges; i++) + { + _source.Value = i + CompetingValue; + } + } + catch (Exception error) + { + _workerError = error; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationDeliveryBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationDeliveryBenchmark.cs new file mode 100644 index 00000000..e6147199 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ObservationDeliveryBenchmark.cs @@ -0,0 +1,70 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Separates observation construction and subscription from delivery through a live subscription. +public class ObservationDeliveryBenchmark +{ + /// The changes delivered by one measured invocation. + private const int ChangeCount = 1_000; + + /// The notification source shared by each invocation. + private DeliveryViewModel _source = null!; + + /// The allocation-free consumer. + private DeliveryObserver _observer = null!; + + /// The live subscription used only for delivery measurements. + private IDisposable _subscription = null!; + + /// Gets or sets the observation contract. + [Params(nameof(ObservationKind.Changed), nameof(ObservationKind.Changing), nameof(ObservationKind.Plugin))] + public string Kind { get; set; } = nameof(ObservationKind.Changed); + + /// Creates the source and observer outside the measured subscription. + [GlobalSetup(Target = nameof(Subscribe))] + public void Setup() + { + _source = new(); + _observer = new(); + } + + /// Attaches the steady-state observer before delivery measurement begins. + [GlobalSetup(Target = nameof(Deliver))] + public void SetupDelivery() + { + Setup(); + _subscription = DeliveryObservation.Create(_source, Kind).Subscribe(_observer); + } + + /// Releases the live delivery subscription. + [GlobalCleanup(Target = nameof(Deliver))] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void CleanupDelivery() => _subscription.Dispose(); + + /// Constructs, subscribes, delivers the initial value, and disposes. + [Benchmark] + public void Subscribe() + { + using var subscription = DeliveryObservation.Create(_source, Kind).Subscribe(_observer); + } + + /// Delivers integer changes on the producer thread through an established subscription. + /// The last value consumed. + [Benchmark(OperationsPerInvoke = ChangeCount)] + public int Deliver() + { + for (var i = 0; i < ChangeCount; i++) + { + _source.Value = i; + } + + return _observer.Value; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/OneWayBindBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/OneWayBindBenchmark.cs new file mode 100644 index 00000000..7df19d5e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/OneWayBindBenchmark.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated OneWayBind benchmarks, which read against the ReactiveUI baseline of the same name. +public class OneWayBindBenchmark +{ + /// How many property changes each benchmark drives through one binding. + private const int PropertyChangeCount = 1_000; + + /// The binding's source. + private BenchmarkViewModel _vm = null!; + + /// The binding's target. + private BenchmarkView _view = null!; + + /// Builds a fresh source and target before each iteration. + [IterationSetup] + public void Setup() + { + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + _view = new() { ViewModel = _vm }; + } + + /// One binding, driven through N changes. + [Benchmark(Description = "OneWayBind")] + public void Standard() + { + using var binding = _view.OneWayBind(_vm, x => x.Name, v => v.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Creating the binding and writing its first value, with no changes driven. + /// The value written to the target. + [Benchmark(Description = "First Binding")] + public string FirstBinding() + { + using var binding = _view.OneWayBind(_vm, x => x.Name, v => v.DisplayName); + return _view.DisplayName; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/Program.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Program.cs new file mode 100644 index 00000000..29d8ab7f --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/Program.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using ReactiveUI.Binding.Benchmarks.Configs; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Entry point that hands the command line to the benchmark host. +internal static class Program +{ + /// Runs the benchmarks selected by the command line. + /// The command-line arguments passed to the switcher. + [STAThread] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Main(string[] args) => BenchmarkHost.Run(typeof(Program).Assembly, args); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ReactiveUI.Binding.Benchmarks.csproj b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ReactiveUI.Binding.Benchmarks.csproj new file mode 100644 index 00000000..7ea3dc16 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ReactiveUI.Binding.Benchmarks.csproj @@ -0,0 +1,34 @@ + + + + net10.0;net11.0;net462 + true + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/RxUiDynamicChainBaseline.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/RxUiDynamicChainBaseline.cs new file mode 100644 index 00000000..33c69109 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/RxUiDynamicChainBaseline.cs @@ -0,0 +1,122 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +using System.Diagnostics.CodeAnalysis; +#endif +using System.Linq.Expressions; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Builder; +using BenchmarkVm = ReactiveUI.Binding.Benchmarks.Mocks.BenchmarkViewModel; + +// Outside ReactiveUI.Binding so extension lookup reaches ReactiveUI's overloads; the view model comes in by alias, +// since importing its namespace would make every call ambiguous. +namespace RxUiDynamicChain; + +/// The dynamic-chain scenarios of WhenAnyDynamicBenchmark, run against ReactiveUI's own engine. +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] +#endif +public class RxUiDynamicChainBaseline +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// Names the chain reaching one property. + private static readonly Expression NameChain = Chain(x => x.Name); + + /// Names the chain reaching a second property, so an arity above one has something to combine. + private static readonly Expression AgeChain = Chain(x => x.Age); + + /// Names the chain reaching through an intermediate. + private static readonly Expression ChildValueChain = Chain(x => x.Child.Value); + + /// Reads one observed change as ReactiveUI's type, so a call resolving to this library's overload does not compile. + private static readonly Func, object?> ReadOne = + static c1 => c1.Value; + + /// Reads whichever of two observed changes carries a value. + private static readonly Func, IObservedChange, object?> ReadEither = + static (c1, c2) => c1.Value ?? c2.Value; + + /// The view model instance used for observation benchmarks. + private BenchmarkVm _vm = null!; + + /// Registers the observation plugins ReactiveUI resolves each link through. + [GlobalSetup] + public static void Register() + { + var builder = RxAppBuilder.CreateReactiveUIBuilder(); + _ = builder.WithCoreServices(); + _ = builder.BuildApp(); + } + + /// Sets up a fresh view model before each benchmark iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// One chain: subscribe, fire N changes, dispose. + [Benchmark(Description = "Single Chain")] + public void SingleChain() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(NameChain, ReadOne) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Two chains combined: subscribe, fire N changes on each, dispose. + [Benchmark(Description = "Two Chains")] + public void TwoChains() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(NameChain, AgeChain, ReadEither) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// A chain through an intermediate: subscribe, fire N changes on the leaf, dispose. + [Benchmark(Description = "Deep Chain")] + public void DeepChain() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(ChildValueChain, ReadOne) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// Cold start: subscribe, read the initial value, dispose. No property changes. + /// The observed value. + [Benchmark(Description = "First Observation")] + public object? FirstObservation() + { + object? result = null; + using var sub = _vm.WhenAnyDynamic(NameChain, ReadOne) + .Subscribe(v => result = v); + return result; + } + + /// Names a property chain the way a caller building one at run time hands it over. + /// The type the chain ends at. + /// The chain to name. + /// The expression body, which is what these overloads take. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static Expression Chain(Expression> property) => + property.Body; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/DeferredCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/DeferredCountViewModel.cs new file mode 100644 index 00000000..8e17cb6d --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/DeferredCountViewModel.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A partial view model whose helper subscribes on the first read of its value. +public sealed partial class DeferredCountViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public DeferredCountViewModel(IObservable counts) => _count = counts.ToProperty(this, static x => x.Count, true); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the latest count. + public int Count => _count.Value; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/PartialCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/PartialCountViewModel.cs new file mode 100644 index 00000000..b20f7d7c --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/PartialCountViewModel.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A partial view model with its own PropertyChanged event, raised through a generated accessor. +public sealed partial class PartialCountViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public PartialCountViewModel(IObservable counts) => _count = counts.ToProperty(this, static x => x.Count); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the latest count. + public int Count => _count.Value; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/RaiseMethodCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/RaiseMethodCountViewModel.cs new file mode 100644 index 00000000..a5fd178c --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/RaiseMethodCountViewModel.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A view model that is not partial but exposes a public event-args raise method. +public sealed class RaiseMethodCountViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public RaiseMethodCountViewModel(IObservable counts) => _count = counts.ToProperty(this, static x => x.Count); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the latest count. + public int Count => _count.Value; + + /// Raises . + /// The event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void RaisePropertyChanged(PropertyChangedEventArgs args) => PropertyChanged?.Invoke(this, args); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/ReactiveCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/ReactiveCountViewModel.cs new file mode 100644 index 00000000..8691dac9 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/ReactiveCountViewModel.cs @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A ReactiveUI view model, raised through ReactiveUI's own public raise extensions. +public sealed class ReactiveCountViewModel : ReactiveObject, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public ReactiveCountViewModel(IObservable counts) => _count = counts.ToProperty(this, static x => x.Count); + + /// Gets the latest count. + public int Count => _count.Value; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeEventCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeEventCountViewModel.cs new file mode 100644 index 00000000..ebe74590 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeEventCountViewModel.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A view model that is not partial and raises only its field-like event, backed by ToPropertyUnsafe. +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] +[RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] +#endif +public sealed class UnsafeEventCountViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public UnsafeEventCountViewModel(IObservable counts) => _count = counts.ToPropertyUnsafe(this, x => x.Count); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the latest count. + public int Count => _count.Value; + + /// Gets a value indicating whether anything subscribes to . + public bool HasSubscribers => PropertyChanged is not null; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() => _count.Dispose(); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeRaiseMethodCountViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeRaiseMethodCountViewModel.cs new file mode 100644 index 00000000..aa8378ef --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToProperty/UnsafeRaiseMethodCountViewModel.cs @@ -0,0 +1,52 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Benchmarks.ToProperty; + +/// A view model that is not partial and raises through a protected method, backed by ToPropertyUnsafe. +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] +[RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] +#endif +public class UnsafeRaiseMethodCountViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _count; + + /// Initializes a new instance of the class. + /// The values takes. + public UnsafeRaiseMethodCountViewModel(IObservable counts) => _count = counts.ToPropertyUnsafe(this, x => x.Count); + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the latest count. + public int Count => _count.Value; + + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Releases the helper. + /// Whether managed resources should be released. + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + _count.Dispose(); + } + } + + /// Raises . + /// The event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected void RaisePropertyChanged(PropertyChangedEventArgs args) => PropertyChanged?.Invoke(this, args); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyBenchmark.cs new file mode 100644 index 00000000..12bd1fc9 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyBenchmark.cs @@ -0,0 +1,169 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Binding.Benchmarks.ToProperty; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated ToProperty benchmarks: creating a helper-backed property, and each value it carries. +/// +/// Each raise mechanism the generator can choose has its own pair, so the cost of the mechanism is visible apart +/// from the helper's own. The profiled config records a GcVerbose trace, which attributes every allocation. +/// +public class ToPropertyBenchmark : IDisposable +{ + /// The number of values each emission benchmark pushes. + private const int ValueCount = 1_000; + + /// The source the creation benchmarks follow. + private BenchmarkSource _source = null!; + + /// The source only the partial view model follows. + private BenchmarkSource _partialSource = null!; + + /// The source only the raise-method view model follows. + private BenchmarkSource _raiseMethodSource = null!; + + /// The source only the ReactiveUI view model follows. + private BenchmarkSource _reactiveSource = null!; + + /// The partial view model the emission benchmark drives. + private PartialCountViewModel _partial = null!; + + /// The raise-method view model the emission benchmark drives. + private RaiseMethodCountViewModel _raiseMethod = null!; + + /// The ReactiveUI view model the emission benchmark drives. + private ReactiveCountViewModel _reactive = null!; + + /// The next value to push, kept rising so every value passes the distinct gate. + private int _next; + + /// The number of notifications a subscriber received, read so the handler is not elided. + private int _notifications; + + /// Creates the sources and the long-lived view models, each with one PropertyChanged subscriber. + [GlobalSetup] + public void Setup() + { + _source = new(); + _partialSource = new(); + _raiseMethodSource = new(); + _reactiveSource = new(); + _partial = new(_partialSource); + _raiseMethod = new(_raiseMethodSource); + _reactive = new(_reactiveSource); + _partial.PropertyChanged += OnPropertyChanged; + _raiseMethod.PropertyChanged += OnPropertyChanged; + _reactive.PropertyChanged += OnPropertyChanged; + } + + /// Releases the long-lived view models. + [GlobalCleanup] + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Creates a helper-backed property on a partial view model and disposes it. + /// The property's initial value. + [Benchmark(Description = "Create: partial event")] + public int CreatePartial() + { + using var vm = new PartialCountViewModel(_source); + return vm.Count; + } + + /// Creates a helper-backed property on a view model with a public raise method and disposes it. + /// The property's initial value. + [Benchmark(Description = "Create: raise method")] + public int CreateRaiseMethod() + { + using var vm = new RaiseMethodCountViewModel(_source); + return vm.Count; + } + + /// Creates a helper-backed property on a ReactiveUI view model and disposes it. + /// The property's initial value. + [Benchmark(Description = "Create: ReactiveObject")] + public int CreateReactiveObject() + { + using var vm = new ReactiveCountViewModel(_source); + return vm.Count; + } + + /// Creates a deferred helper, reads its value once to subscribe, and disposes it. + /// The property's initial value. + [Benchmark(Description = "Create: deferred, first read")] + public int CreateDeferred() + { + using var vm = new DeferredCountViewModel(_source); + return vm.Count; + } + + /// Creates the helper alone with static callbacks, isolating its cost from any view model. + /// The helper's initial value. + [Benchmark(Description = "Create: helper only")] + public int CreateHelperOnly() + { + using var helper = ObservableAsPropertyHelper.Create(_source, this, static (_, _) => { }, null, 0, false, null); + return helper.Value; + } + + /// Pushes values through a partial view model's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Emit: partial event", OperationsPerInvoke = ValueCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EmitPartial() => Emit(_partialSource); + + /// Pushes values through a raise-method view model's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Emit: raise method", OperationsPerInvoke = ValueCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EmitRaiseMethod() => Emit(_raiseMethodSource); + + /// Pushes values through a ReactiveUI view model's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Emit: ReactiveObject", OperationsPerInvoke = ValueCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EmitReactiveObject() => Emit(_reactiveSource); + + /// Releases the long-lived view models. + /// Whether managed resources should be released. + protected virtual void Dispose(bool disposing) + { + if (!disposing) + { + return; + } + + _partial.Dispose(); + _raiseMethod.Dispose(); + _reactive.Dispose(); + } + + /// Counts a notification. + /// The view model. + /// The event arguments. + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs args) => _notifications++; + + /// Pushes the value count through one view model's source. + /// The source only that view model follows. + /// The notification count. + private int Emit(BenchmarkSource source) + { + for (var i = 0; i < ValueCount; i++) + { + _next++; + source.Push(_next); + } + + return _notifications; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyContentionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyContentionBenchmark.cs new file mode 100644 index 00000000..3313c343 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyContentionBenchmark.cs @@ -0,0 +1,127 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Measures a helper's delivery gate as one, two and four threads push distinct values into it at once. +/// +/// The producers are started before the measurement and released together by a barrier, so thread start-up is +/// not part of the number. Every value is distinct, so each one passes the distinct gate and is delivered. +/// +public class ToPropertyContentionBenchmark : IDisposable +{ + /// The values each producer pushes per invocation. + private const int ValuesPerProducer = 10_000; + + /// The source the helper follows. + private BenchmarkSource _source = null!; + + /// The helper under contention. + private ObservableAsPropertyHelper _helper = null!; + + /// Releases the producers together and waits for them to finish. + private Barrier _barrier = null!; + + /// The producer threads, which live for the whole run. + private Thread[] _producers = []; + + /// The number of values delivered, read so the callback is not elided. + private int _delivered; + + /// Whether the producers should exit. + private volatile bool _stopping; + + /// Gets or sets the number of threads pushing at once. + [Params(1, 2, 4)] + public int Producers { get; set; } = 1; + + /// Starts the producers, parked on the barrier until a benchmark invocation releases them. + [GlobalSetup] + public void Setup() + { + _source = new(); + _helper = ObservableAsPropertyHelper.Create( + _source, + this, + static (owner, _) => ((ToPropertyContentionBenchmark)owner!)._delivered++, + null, + -1, + false, + null); + + // One participant per producer plus the benchmark thread, which releases and then collects them. + _barrier = new(Producers + 1); + _producers = new Thread[Producers]; + for (var p = 0; p < Producers; p++) + { + var offset = p; + _producers[p] = new(() => Produce(offset)) { IsBackground = true }; + _producers[p].Start(); + } + } + + /// Releases every producer for one burst of distinct values and waits for all of them to finish. + /// The number of values delivered so far. + [Benchmark(OperationsPerInvoke = ValuesPerProducer)] + public int PushConcurrently() + { + _barrier.SignalAndWait(); + _barrier.SignalAndWait(); + return _delivered; + } + + /// Stops the producers and releases the helper. + [GlobalCleanup] + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Stops the producers and releases the helper. + /// Whether managed resources should be released. + protected virtual void Dispose(bool disposing) + { + if (!disposing) + { + return; + } + + _stopping = true; + _barrier.SignalAndWait(); + for (var p = 0; p < _producers.Length; p++) + { + _producers[p].Join(); + } + + _barrier.Dispose(); + _helper.Dispose(); + } + + /// Pushes bursts of values that no other producer pushes, so none repeats the one before it. + /// The producer's index, which interleaves its values with the others'. + private void Produce(int offset) + { + var next = offset; + while (true) + { + _barrier.SignalAndWait(); + if (_stopping) + { + return; + } + + for (var i = 0; i < ValuesPerProducer; i++) + { + next += Producers; + _source.Push(next); + } + + _barrier.SignalAndWait(); + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyUnsafeBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyUnsafeBenchmark.cs new file mode 100644 index 00000000..2a7adefe --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ToPropertyUnsafeBenchmark.cs @@ -0,0 +1,131 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Binding.Benchmarks.ToProperty; + +namespace ReactiveUI.Binding.Benchmarks; + +/// ToPropertyUnsafe benchmarks: creating a property whose raise member is found by reflection, and each value it carries. +/// +/// A protected raise method is bound to its owner as a delegate when the helper is created; a field-like event is +/// raised through its field. Either way a value allocates nothing, which the emission benchmarks confirm. +/// +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Finds the members that raise a property's change notifications by reflection; they may be trimmed.")] +[RequiresDynamicCode("Closes ReactiveUI's generic raise extension over IReactiveObject at run time.")] +#endif +public class ToPropertyUnsafeBenchmark : IDisposable +{ + /// The number of values each emission benchmark pushes. + private const int ValueCount = 1_000; + + /// The source the creation benchmarks follow. + private BenchmarkSource _source = null!; + + /// The source only the raise-method view model follows. + private BenchmarkSource _raiseMethodSource = null!; + + /// The source only the event view model follows. + private BenchmarkSource _eventSource = null!; + + /// The raise-method view model the emission benchmark drives. + private UnsafeRaiseMethodCountViewModel _raiseMethod = null!; + + /// The event view model the emission benchmark drives. + private UnsafeEventCountViewModel _event = null!; + + /// The next value to push, kept rising so every value passes the distinct gate. + private int _next; + + /// The number of notifications a subscriber received, read so the handler is not elided. + private int _notifications; + + /// Creates the sources and the long-lived view models, each with one PropertyChanged subscriber. + [GlobalSetup] + public void Setup() + { + _source = new(); + _raiseMethodSource = new(); + _eventSource = new(); + _raiseMethod = new(_raiseMethodSource); + _event = new(_eventSource); + _raiseMethod.PropertyChanged += OnPropertyChanged; + _event.PropertyChanged += OnPropertyChanged; + } + + /// Releases the long-lived view models. + [GlobalCleanup] + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// Creates a property on a view model with a protected raise method and disposes it. + /// The property's initial value. + [Benchmark(Description = "Unsafe create: protected raise method")] + public int CreateRaiseMethod() + { + using var vm = new UnsafeRaiseMethodCountViewModel(_source); + return vm.Count; + } + + /// Creates a property on a view model with only a field-like event and disposes it. + /// The property's initial value. + [Benchmark(Description = "Unsafe create: event field")] + public int CreateEvent() + { + using var vm = new UnsafeEventCountViewModel(_source); + return vm.Count; + } + + /// Pushes values through the raise-method view model's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Unsafe emit: protected raise method", OperationsPerInvoke = ValueCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EmitRaiseMethod() => Emit(_raiseMethodSource); + + /// Pushes values through the event view model's helper to one PropertyChanged subscriber. + /// The notification count. + [Benchmark(Description = "Unsafe emit: event field", OperationsPerInvoke = ValueCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EmitEvent() => Emit(_eventSource); + + /// Releases the long-lived view models. + /// Whether managed resources should be released. + protected virtual void Dispose(bool disposing) + { + if (!disposing) + { + return; + } + + _raiseMethod.Dispose(); + _event.Dispose(); + } + + /// Counts a notification. + /// The view model. + /// The event arguments. + private void OnPropertyChanged(object? sender, PropertyChangedEventArgs args) => _notifications++; + + /// Pushes the value count through one view model's source. + /// The source only that view model follows. + /// The notification count. + private int Emit(BenchmarkSource source) + { + for (var i = 0; i < ValueCount; i++) + { + _next++; + source.Push(_next); + } + + return _notifications; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/TypedAdapterBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/TypedAdapterBenchmark.cs new file mode 100644 index 00000000..361faa18 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/TypedAdapterBenchmark.cs @@ -0,0 +1,87 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Measures value delivery through generated nullable and numeric formatting conversions. +public class TypedAdapterBenchmark +{ + /// The number of values delivered in each measured batch. + private const int ValueCount = 1_000; + + /// The numeric values delivered to the nullable destination. + private readonly BenchmarkSource _nullableSource = new(); + + /// The numeric values delivered to the string destination. + private readonly BenchmarkSource _formatSource = new(); + + /// The typed destination properties. + private readonly TypedAdapterTarget _target = new(); + + /// The active nullable conversion binding. + private IDisposable _nullableBinding = null!; + + /// The active formatting conversion binding. + private IDisposable _formatBinding = null!; + + /// The number of numeric batches requested by the benchmark runner. + private long _nullableBatches; + + /// The number of formatting batches requested by the benchmark runner. + private long _formatBatches; + + /// Creates the bindings before measuring per-change delivery. + [GlobalSetup] + public void Setup() + { + _nullableBinding = _nullableSource.BindTo(_target, target => target.Number); + _formatBinding = _formatSource.BindTo(_target, target => target.Text); + } + + /// Releases both subscriptions. + /// A binding dropped writes or delivered the wrong value. + [GlobalCleanup] + public void Cleanup() + { + _nullableBinding.Dispose(); + _formatBinding.Dispose(); + if (_target.NumberWrites != _nullableBatches * ValueCount || _target.TextWrites != _formatBatches * ValueCount + || (_nullableBatches != 0 && _target.Number != ValueCount - 1) + || (_formatBatches != 0 && _target.Text != (ValueCount - 1).ToString(System.Globalization.CultureInfo.CurrentCulture))) + { + throw new InvalidOperationException("The benchmark did not deliver every requested value."); + } + } + + /// Delivers numeric values through the generated nullable lift. + /// The final delivered number. + [Benchmark(OperationsPerInvoke = ValueCount)] + public int NullableValues() + { + _nullableBatches++; + for (var i = 0; i < ValueCount; i++) + { + _nullableSource.Push(i); + } + + return _target.Number.GetValueOrDefault(); + } + + /// Formats numbers with the typed generated converter. + /// The final formatted value. + [Benchmark(OperationsPerInvoke = ValueCount)] + public string FormattedValues() + { + _formatBatches++; + for (var i = 0; i < ValueCount; i++) + { + _formatSource.Push(i); + } + + return _target.Text; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/UnsafeFallbackBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/UnsafeFallbackBenchmark.cs new file mode 100644 index 00000000..b497cbde --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/UnsafeFallbackBenchmark.cs @@ -0,0 +1,116 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +using System.Diagnostics.CodeAnalysis; +#endif +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Binding.Builder; + +namespace ReactiveUI.Binding.Benchmarks; + +/// The Unsafe overloads, which resolve the property path by reflection. +/// +/// No NativeAOT job is declared. These overloads carry RequiresUnreferencedCode precisely because they +/// walk the path at run time, so an ahead-of-time publish cannot be relied on to keep the members they reach. +/// Read these against the generated benchmark of the same operator to see what the fallback costs. +/// +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] +#endif +public class UnsafeFallbackBenchmark +{ + /// How many property changes each benchmark drives through one subscription. + private const int PropertyChangeCount = 1_000; + + /// The view model under observation. + private BenchmarkViewModel _vm = null!; + + /// The binding's target. + private BenchmarkView _view = null!; + + /// Registers the runtime services the reflection path resolves through. + [GlobalSetup] + public static void Register() + { + var builder = RxBindingBuilder.CreateReactiveUIBindingBuilder(); + _ = builder.WithCoreServices(); + _ = builder.BuildApp(); + } + + /// Builds a fresh source and target before each iteration. + [IterationSetup] + public void Setup() + { + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + _view = new() { ViewModel = _vm }; + } + + /// One property, resolved by reflection. + [Benchmark(Description = "WhenChangedUnsafe")] + public void WhenChangedUnsafe() + { + var last = string.Empty; + using var sub = ReactiveUIBindingExtensions.WhenChangedUnsafe(_vm, x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// A two-link chain, resolved by reflection. + [Benchmark(Description = "WhenChangedUnsafe deep chain")] + public void WhenChangedUnsafeDeepChain() + { + var last = string.Empty; + using var sub = ReactiveUIBindingExtensions.WhenChangedUnsafe(_vm, x => x.Child.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// One property under the ReactiveUI-compatible name, resolved by reflection. + [Benchmark(Description = "WhenAnyValueUnsafe")] + public void WhenAnyValueUnsafe() + { + var last = string.Empty; + using var sub = ReactiveUIBindingExtensions.WhenAnyValueUnsafe(_vm, x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// A one-way binding, resolved by reflection. + [Benchmark(Description = "BindOneWayUnsafe")] + public void BindOneWayUnsafe() + { + using var binding = ReactiveUIBindingExtensions.BindOneWayUnsafe(_vm, _view, x => x.Name, v => v.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// A two-way binding, resolved by reflection. + [Benchmark(Description = "BindUnsafe")] + public void BindUnsafe() + { + using var binding = ReactiveUIBindingExtensions.BindUnsafe(_view, _vm, x => x.Name, v => v.DisplayName); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewLocatorBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewLocatorBenchmark.cs new file mode 100644 index 00000000..98f5375e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewLocatorBenchmark.cs @@ -0,0 +1,145 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Binding.Builder; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Resolving a view through the generated view lookups registered with the default view locator. +/// +/// Each benchmark registers its own lookups, and BenchmarkDotNet runs each benchmark in its own process, so +/// the registrations never meet. Lookups are consulted from the most recently registered to the first. +/// +public class ViewLocatorBenchmark +{ + /// How many resolutions each benchmark performs per invocation. + private const int ResolveCount = 1_000; + + /// The view a registered lookup returns. + private readonly ViewLocatorBenchmarkView _view = new(); + + /// The locator that resolves views. + private readonly DefaultViewLocator _locator = new(); + + /// The view model resolved when one lookup is registered. + private readonly ViewLocatorBenchmarkViewModel _singleViewModel = new(); + + /// The view model whose lookup is the first one consulted of three. + private readonly ViewLocatorBenchmarkViewModel _firstOfThreeViewModel = new(); + + /// The view model whose lookup is the last one consulted of three. + private readonly ViewLocatorBenchmarkViewModel _lastOfThreeViewModel = new(); + + /// The view model no registered lookup resolves. + private readonly ViewLocatorBenchmarkViewModel _unresolvedViewModel = new(); + + /// The view model this assembly's own generated lookup resolves. + private readonly BenchmarkViewModel _generatedViewModel = new(); + + /// Registers the runtime services a generated lookup and the service locator fallback resolve through. + [GlobalSetup] + public static void Register() + { + var builder = RxBindingBuilder.CreateReactiveUIBindingBuilder(); + _ = builder.WithCoreServices(); + _ = builder.BuildApp(); + } + + /// Registers one lookup that resolves . + [GlobalSetup(Target = nameof(SingleLookupHit))] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void RegisterSingleLookup() => RegisterResolvingLookup(); + + /// Registers two lookups that resolve other view models, then one that resolves . + [GlobalSetup(Target = nameof(HitInFirstOfThreeLookups))] + public void RegisterHitInFirstOfThree() + { + RegisterBoundViewModelLookup(); + RegisterNativeAdapterCommandLookup(); + RegisterResolvingLookup(); + } + + /// Registers a lookup that resolves , then two that resolve other view models. + [GlobalSetup(Target = nameof(HitInLastOfThreeLookups))] + public void RegisterHitInLastOfThree() + { + RegisterResolvingLookup(); + RegisterBoundViewModelLookup(); + RegisterNativeAdapterCommandLookup(); + } + + /// Registers three lookups, none of which resolves . + [GlobalSetup(Target = nameof(MissInEveryLookup))] + public void RegisterMissInEveryLookup() + { + RegisterBoundViewModelLookup(); + RegisterNativeAdapterCommandLookup(); + DefaultViewLocator.SetGeneratedViewDispatch(static (viewModel, _) => viewModel is BenchmarkChildViewModel ? new BenchmarkView() : null); + } + + /// The single registered lookup answers. + /// The last view resolved. + [Benchmark(Description = "Single lookup hit", OperationsPerInvoke = ResolveCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? SingleLookupHit() => ResolveRepeatedly(_singleViewModel); + + /// The lookup registered last answers, so it is the first one asked. + /// The last view resolved. + [Benchmark(Description = "Hit in first of three lookups", OperationsPerInvoke = ResolveCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? HitInFirstOfThreeLookups() => ResolveRepeatedly(_firstOfThreeViewModel); + + /// The lookup registered first answers, so it is the last one asked. + /// The last view resolved. + [Benchmark(Description = "Hit in last of three lookups", OperationsPerInvoke = ResolveCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? HitInLastOfThreeLookups() => ResolveRepeatedly(_lastOfThreeViewModel); + + /// No lookup answers, so the locator asks all three and then tries its mappings and the service locator. + /// The last view resolved. + [Benchmark(Description = "Miss in every lookup", OperationsPerInvoke = ResolveCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? MissInEveryLookup() => ResolveRepeatedly(_unresolvedViewModel); + + /// The generated lookup of this assembly, registered when the module loaded, resolves the view. + /// The last view resolved. + [Benchmark(Description = "Assembly's generated lookup", OperationsPerInvoke = ResolveCount)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? AssemblyGeneratedLookup() => ResolveRepeatedly(_generatedViewModel); + + /// Registers a lookup that resolves only. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void RegisterBoundViewModelLookup() => + DefaultViewLocator.SetGeneratedViewDispatch(static (viewModel, _) => viewModel is BoundViewModel ? new BoundView() : null); + + /// Registers a lookup that resolves only. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void RegisterNativeAdapterCommandLookup() => + DefaultViewLocator.SetGeneratedViewDispatch(static (viewModel, _) => viewModel is NativeAdapterCommand ? new NativeAdapterView() : null); + + /// Registers a lookup that resolves . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void RegisterResolvingLookup() => + DefaultViewLocator.SetGeneratedViewDispatch((viewModel, _) => viewModel is ViewLocatorBenchmarkViewModel ? _view : null); + + /// Resolves a view for the view model times. + /// The view model type. + /// The view model to resolve a view for. + /// The last view resolved. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IViewFor? ResolveRepeatedly(TViewModel viewModel) + where TViewModel : class + { + IViewFor? last = null; + for (var i = 0; i < ResolveCount; i++) + { + last = _locator.ResolveView(viewModel); + } + + return last; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewResolutionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewResolutionBenchmark.cs new file mode 100644 index 00000000..b082ea5d --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/ViewResolutionBenchmark.cs @@ -0,0 +1,89 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +using System.Diagnostics.CodeAnalysis; +#endif +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// View resolution through the generated view dispatch, beside a generated binding call in the same assembly. +/// +/// implements IViewFor<BenchmarkViewModel>, so this assembly carries a +/// generated view dispatch next to every generated binding. The dispatch lives in the same class as the binding +/// methods, so reads the cost of a binding call in an assembly that also +/// registers a view lookup. Setup finds the generated class by reflection, so no NativeAOT job is declared. +/// +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Finds the generated class by reflection; members may be trimmed.")] +#endif +public class ViewResolutionBenchmark +{ + /// The name of the class the generator declares its dispatch and bindings in. + private const string GeneratedClassName = "__ReactiveUIGeneratedBindings"; + + /// The locator under measurement. + private DefaultViewLocator _locator = null!; + + /// A view model the generated dispatch maps to a view. + private BenchmarkViewModel _mapped = null!; + + /// A view model the generated dispatch has no view for. + private BenchmarkChildViewModel _unmapped = null!; + + /// Puts the generated view dispatch in place and checks it resolves a view before anything is timed. + /// The generated dispatch did not resolve the mapped view model. + [GlobalSetup] + public void Setup() + { + RunGeneratedClassInitialization(); + + _locator = new(); + _mapped = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + _unmapped = new(); + + if (_locator.ResolveView(_mapped, null) is not BenchmarkView) + { + throw new InvalidOperationException("The generated view dispatch did not resolve a view for the mapped view model."); + } + } + + /// Resolves a view the generated dispatch maps: type switch, service locator probe, then construction. + /// The resolved view. + [Benchmark(Description = "Resolve Generated View")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? ResolveGeneratedView() => _locator.ResolveView(_mapped, null); + + /// Resolves a view model with no view: the generated switch misses, then the mappings and service locator are tried. + /// Always . + [Benchmark(Description = "Resolve Unmapped View Model")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public IViewFor? ResolveUnmappedViewModel() => _locator.ResolveView(_unmapped, null); + + /// Creates and disposes one generated observation in an assembly that also carries a view dispatch. + /// The observed value. + [Benchmark(Description = "Generated Binding Call")] + public string GeneratedBindingCall() + { + var result = string.Empty; + using var sub = _mapped.WhenChanged(x => x.Name) + .Subscribe(v => result = v); + return result; + } + + /// Runs the static initialization of the generated class, so a lookup that registers when the class loads is in place. + private static void RunGeneratedClassInitialization() + { + foreach (var type in typeof(BenchmarkView).Assembly.GetTypes()) + { + if (string.Equals(type.Name, GeneratedClassName, StringComparison.Ordinal)) + { + RuntimeHelpers.RunClassConstructor(type.TypeHandle); + } + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyBenchmark.cs new file mode 100644 index 00000000..b1601582 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyBenchmark.cs @@ -0,0 +1,63 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated WhenAny benchmarks, which hand each change to a selector as an observed change. +public class WhenAnyBenchmark +{ + /// How many property changes each benchmark drives through one subscription. + private const int PropertyChangeCount = 1_000; + + /// The view model under observation. + private BenchmarkViewModel _vm = null!; + + /// Builds a fresh view model before each iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// One property, read through the observed change the selector is handed. + [Benchmark(Description = "Single Property")] + public void SingleProperty() + { + var last = string.Empty; + using var sub = _vm.WhenAny(x => x.Name, static c => c.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Two properties, combined by the selector. + [Benchmark(Description = "Two Properties")] + public void TwoProperties() + { + var last = string.Empty; + using var sub = _vm.WhenAny(x => x.Name, x => x.Age, static (name, age) => name.Value + age.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// Subscribing and reading the first value, with no changes driven. + /// The observed value. + [Benchmark(Description = "First Observation")] + public string FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenAny(x => x.Name, static c => c.Value) + .Subscribe(v => result = v); + return result; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyDynamicBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyDynamicBenchmark.cs new file mode 100644 index 00000000..21059a0e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyDynamicBenchmark.cs @@ -0,0 +1,126 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +#if NET8_0_OR_GREATER +using System.Diagnostics.CodeAnalysis; +#endif +using System.Linq.Expressions; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; +using ReactiveUI.Binding.Builder; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Benchmarks reflection-walked observation against the generated observation of the same chain. +#if NET8_0_OR_GREATER +[RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")] +#endif +public class WhenAnyDynamicBenchmark +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// Names the chain reaching one property. + private static readonly Expression NameChain = Chain(x => x.Name); + + /// Names the chain reaching a second property, so an arity above one has something to combine. + private static readonly Expression AgeChain = Chain(x => x.Age); + + /// Names the chain reaching through an intermediate. + private static readonly Expression ChildValueChain = Chain(x => x.Child.Value); + + /// The view model instance used for observation benchmarks. + private BenchmarkViewModel _vm = null!; + + /// Registers the observation plugins the reflection walk resolves each link through. + [GlobalSetup] + public static void Register() + { + var builder = RxBindingBuilder.CreateReactiveUIBindingBuilder(); + _ = builder.WithCoreServices(); + _ = builder.BuildApp(); + } + + /// Sets up a fresh view model before each benchmark iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// One chain: subscribe, fire N changes, dispose. + [Benchmark(Description = "Single Chain")] + public void SingleChain() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(NameChain, static c1 => c1.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Two chains combined: subscribe, fire N changes on each, dispose. + [Benchmark(Description = "Two Chains")] + public void TwoChains() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(NameChain, AgeChain, static (c1, c2) => c1.Value ?? c2.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// A chain through an intermediate: subscribe, fire N changes on the leaf, dispose. + [Benchmark(Description = "Deep Chain")] + public void DeepChain() + { + object? last = null; + using var sub = _vm.WhenAnyDynamic(ChildValueChain, static c1 => c1.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// Cold start: subscribe, read the initial value, dispose. No property changes. + /// The observed value. + [Benchmark(Description = "First Observation")] + public object? FirstObservation() + { + object? result = null; + using var sub = _vm.WhenAnyDynamic(NameChain, static c1 => c1.Value) + .Subscribe(v => result = v); + return result; + } + + /// The same single chain resolved at compile time, which is what the reflection walk is weighed against. + [Benchmark(Description = "Single Chain (generated)", Baseline = true)] + public void SingleChainGenerated() + { + var last = string.Empty; + using var sub = _vm.WhenChanged(x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Names a property chain the way a caller building one at run time hands it over. + /// The type the chain ends at. + /// The chain to name. + /// The expression body, which is what these overloads take. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static Expression Chain(Expression> property) => + property.Body; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyObservableBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyObservableBenchmark.cs new file mode 100644 index 00000000..6569efa2 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyObservableBenchmark.cs @@ -0,0 +1,71 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated WhenAnyObservable benchmarks, which switch to whichever stream a property holds. +public class WhenAnyObservableBenchmark +{ + /// How many values each benchmark pushes through the observed stream. + private const int ValueCount = 1_000; + + /// The view model holding the observed streams. + private BenchmarkViewModel _vm = null!; + + /// The stream the view model's first property holds. + private BenchmarkSource _first = null!; + + /// The stream the view model's second property holds. + private BenchmarkSource _second = null!; + + /// Builds a fresh view model and streams before each iteration. + [IterationSetup] + public void Setup() + { + _first = new(); + _second = new(); + _vm = new() { Name = "Initial", Signal = _first, OtherSignal = _second }; + } + + /// One stream, driven through the property that holds it. + [Benchmark(Description = "Single Stream")] + public void SingleStream() + { + var last = string.Empty; + using var sub = _vm.WhenAnyObservable(x => x.Signal!) + .Subscribe(v => last = v); + + for (var i = 0; i < ValueCount; i++) + { + _first.Push($"Value_{i}"); + } + } + + /// Two streams, merged. + [Benchmark(Description = "Two Streams")] + public void TwoStreams() + { + var last = string.Empty; + using var sub = _vm.WhenAnyObservable(x => x.Signal!, x => x.OtherSignal!) + .Subscribe(v => last = v); + + for (var i = 0; i < ValueCount; i++) + { + _first.Push($"First_{i}"); + _second.Push($"Second_{i}"); + } + } + + /// Subscribing to the stream a property holds, with no values pushed. + [Benchmark(Description = "First Observation")] + public void FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenAnyObservable(x => x.Signal!) + .Subscribe(v => result = v); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyValueBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyValueBenchmark.cs new file mode 100644 index 00000000..76e9d36e --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenAnyValueBenchmark.cs @@ -0,0 +1,77 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated WhenAnyValue benchmarks, which read against the ReactiveUI baseline of the same name. +public class WhenAnyValueBenchmark +{ + /// How many property changes each benchmark drives through one subscription. + private const int PropertyChangeCount = 1_000; + + /// The view model under observation. + private BenchmarkViewModel _vm = null!; + + /// Builds a fresh view model before each iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// One property. + [Benchmark(Description = "Single Property")] + public void SingleProperty() + { + var last = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// A two-link chain, which re-subscribes when the intermediate object is replaced. + [Benchmark(Description = "Deep Chain")] + public void DeepChain() + { + var last = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Child.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// Two properties, combined. + [Benchmark(Description = "Two Properties")] + public void TwoProperties() + { + PropertyValues last = default; + using var sub = _vm.WhenAnyValue(x => x.Name, x => x.Age) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// Subscribing and reading the first value, with no changes driven. + /// The observed value. + [Benchmark(Description = "First Observation")] + public string FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenAnyValue(x => x.Name) + .Subscribe(v => result = v); + return result; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedBenchmark.cs new file mode 100644 index 00000000..32c8a7eb --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedBenchmark.cs @@ -0,0 +1,77 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated WhenChanged benchmarks using lightweight observables. +public class WhenChangedBenchmark +{ + /// Represents the number of property change events to be triggered during the benchmark tests. + private const int PropertyChangeCount = 1_000; + + /// The view model instance used for observation benchmarks. + private BenchmarkViewModel _vm = null!; + + /// Sets up a fresh view model before each benchmark iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// Single property observation: subscribe, fire N changes, dispose. + [Benchmark(Description = "Single Property")] + public void SingleProperty() + { + var last = string.Empty; + using var sub = _vm.WhenChanged(x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Deep chain observation: subscribe, fire N changes on nested property, dispose. + [Benchmark(Description = "Deep Chain")] + public void DeepChain() + { + var last = string.Empty; + using var sub = _vm.WhenChanged(x => x.Child.Value) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Child.Value = $"Value_{i}"; + } + } + + /// Multi-property observation with CombineLatest: subscribe, fire N changes, dispose. + [Benchmark(Description = "Two Properties")] + public void TwoProperties() + { + PropertyValues last = default; + using var sub = _vm.WhenChanged(x => x.Name, x => x.Age) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// Cold start: subscribe, read initial value, dispose. No property changes. + /// The observed value. + [Benchmark(Description = "First Observation")] + public string FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenChanged(x => x.Name) + .Subscribe(v => result = v); + return result; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedContentionBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedContentionBenchmark.cs new file mode 100644 index 00000000..32fd4106 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangedContentionBenchmark.cs @@ -0,0 +1,46 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// WhenChanged with two threads changing the observed property at the same time. +public class WhenChangedContentionBenchmark +{ + /// How many property changes each writer drives. + private const int PropertyChangeCount = 1_000; + + /// The view model under observation. + private BenchmarkViewModel _vm = null!; + + /// Builds a fresh view model before each iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial" }; + + /// Two writers on separate threads, each driving N changes through one subscription. + [Benchmark(Description = "Two Writers")] + public void TwoWriters() + { + var last = string.Empty; + using var sub = _vm.WhenChanged(x => x.Name) + .Subscribe(v => last = v); + + Parallel.Invoke( + () => Write("A_"), + () => Write("B_")); + } + + /// Drives N changes, each to a value the other writer never uses. + /// The prefix that keeps this writer's values distinct. + private void Write(string prefix) + { + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = prefix + i; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangingBenchmark.cs b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangingBenchmark.cs new file mode 100644 index 00000000..7522b44f --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Benchmarks/WhenChangingBenchmark.cs @@ -0,0 +1,63 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using ReactiveUI.Binding.Benchmarks.Mocks; + +namespace ReactiveUI.Binding.Benchmarks; + +/// Source-generated WhenChanging benchmarks, which observe before the value is replaced. +public class WhenChangingBenchmark +{ + /// How many property changes each benchmark drives through one subscription. + private const int PropertyChangeCount = 1_000; + + /// The view model under observation. + private BenchmarkViewModel _vm = null!; + + /// Builds a fresh view model before each iteration. + [IterationSetup] + public void Setup() => + _vm = new() { Name = "Initial", Age = 0, Child = new() { Value = "ChildInitial" } }; + + /// One property, observed before each change. + [Benchmark(Description = "Single Property")] + public void SingleProperty() + { + var last = string.Empty; + using var sub = _vm.WhenChanging(x => x.Name) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + } + } + + /// Two properties, combined before each change. + [Benchmark(Description = "Two Properties")] + public void TwoProperties() + { + PropertyValues last = default; + using var sub = _vm.WhenChanging(x => x.Name, x => x.Age) + .Subscribe(v => last = v); + + for (var i = 0; i < PropertyChangeCount; i++) + { + _vm.Name = $"Name_{i}"; + _vm.Age = i; + } + } + + /// Subscribing and reading the first value, with no changes driven. + /// The observed value. + [Benchmark(Description = "First Observation")] + public string FirstObservation() + { + var result = string.Empty; + using var sub = _vm.WhenChanging(x => x.Name) + .Subscribe(v => result = v); + return result; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413.csproj b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413.csproj new file mode 100644 index 00000000..b1a94d80 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413/ReactiveUI.Binding.Generator.Benchmarks.Roslyn413.csproj @@ -0,0 +1,32 @@ + + + + + net10.0;net11.0 + ReactiveUI.Binding.Generator.Benchmarks.Roslyn413 + ReactiveUI.Binding.Generator.Benchmarks + + + + + + + + + + + + + + + + + + + + diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/AdapterGenerationBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/AdapterGenerationBenchmarks.cs new file mode 100644 index 00000000..a1e984eb --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/AdapterGenerationBenchmarks.cs @@ -0,0 +1,196 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.Generator.Benchmarks.Support; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// Measures generation for native observations, commands, collection setters and typed conversions. +public class AdapterGenerationBenchmarks +{ + /// The number of native command bindings in the command corpus. + private const int CommandWorkers = 3; + + /// The number of typed bindings in the conversion corpus. + private const int ConversionWorkers = 4; + + /// The number of binding workers in each other corpus. + private const int PairedWorkers = 2; + + /// The prepared consumer compilation. + private Compilation _compilation = null!; + + /// The dispatch file required by the selected corpus. + private string _dispatchHint = string.Empty; + + /// The validated dispatch size for the fixed consumer input. + private int _dispatchCharacters; + + /// Gets or sets the adapter family to measure. + [Params("Observation", "Commands", "Collections", "Conversions")] + public string Family { get; set; } = "Observation"; + + /// Prepares the consumer and verifies that every generated file compiles. + /// The corpus fails compilation. + [GlobalSetup] + public void Setup() + { + _compilation = CreateCompilation(); + var driver = GeneratorHarness.CreateDriver(false).RunGeneratorsAndUpdateCompilation(_compilation, out var output, out _); + ValidateCompilation(output); + _dispatchHint = Family switch + { + "Observation" => "WhenChangedDispatch.g.cs", + "Commands" => "BindCommandDispatch.g.cs", + _ => "BindToDispatch.g.cs", + }; + ValidateWorkers(driver.GetRunResult()); + _dispatchCharacters = CountDispatchCharacters(driver.GetRunResult()); + } + + /// Runs selection and emission with a fresh generator driver. + /// The dispatch size, to keep the generated work observable. + /// The output differs from the validated corpus. + [Benchmark] + public int Generate() + { + var characters = CountDispatchCharacters(GeneratorHarness.CreateDriver(false).RunGenerators(_compilation).GetRunResult()); + return characters == _dispatchCharacters + ? characters + : throw new InvalidOperationException("A generation pass changed the validated dispatch output."); + } + + /// Rejects output that cannot compile before collecting timings. + /// The generated consumer compilation. + /// The output contains compiler errors. + private static void ValidateCompilation(Compilation output) + { + var errors = new List(); + foreach (var diagnostic in output.GetDiagnostics()) + { + if (diagnostic.Severity == DiagnosticSeverity.Error) + { + errors.Add(diagnostic.ToString()); + } + } + + if (errors.Count != 0) + { + throw new InvalidOperationException(string.Join(Environment.NewLine, errors)); + } + } + + /// Builds the consumer with the same referenced runtime assemblies its output needs. + /// The compilation passed to the generator. + private CSharpCompilation CreateCompilation() + { + var compilation = GeneratorHarness.BuildCompilation(false); + var references = new List(compilation.References); + var paths = new HashSet(StringComparer.Ordinal); + foreach (var reference in references) + { + _ = paths.Add(reference.Display); + } + + foreach (var assembly in new[] + { + typeof(ReactiveUI.Primitives.LinqExtensions).Assembly, + typeof(ReactiveUI.Primitives.SubscribeExtensions).Assembly, + typeof(ReactiveUI.Primitives.Disposables.EmptyDisposable).Assembly, + typeof(ReactiveUI.Primitives.Advanced.ImmediateReturnSignal).Assembly, + typeof(Splat.AppLocator).Assembly, + }) + { + if (paths.Add(assembly.Location)) + { + references.Add(MetadataReference.CreateFromFile(assembly.Location)); + } + } + + return compilation.RemoveAllSyntaxTrees().WithReferences(references) + .AddSyntaxTrees(CSharpSyntaxTree.ParseText(AdapterBenchmarkCorpus.Source(Family), GeneratorHarness.ParseOptions(false))); + } + + /// Counts API workers so unrelated view dispatch cannot satisfy a missing binding. + /// The generated consumer. + /// The selected corpus did not produce every binding worker. + private void ValidateWorkers(GeneratorDriverRunResult result) + { + var expected = Family switch { "Commands" => CommandWorkers, "Conversions" => ConversionWorkers, _ => PairedWorkers }; + var prefix = Family switch { "Observation" => "__WhenChanged_", "Commands" => "__BindCommand_", _ => "__BindTo_" }; + var workers = new HashSet(StringComparer.Ordinal); + foreach (var generated in result.Results[0].GeneratedSources) + { + if (generated.HintName != _dispatchHint) + { + continue; + } + + ValidateMechanisms(generated.SourceText.ToString()); + var root = CSharpSyntaxTree.ParseText(generated.SourceText).GetRoot(); + foreach (var node in root.DescendantNodes()) + { + if (node is MethodDeclarationSyntax method && method.Identifier.ValueText.StartsWith(prefix, StringComparison.Ordinal)) + { + _ = workers.Add(method.Identifier.ValueText); + } + } + } + + if (workers.Count != expected) + { + throw new InvalidOperationException($"{Family}: expected {expected} binding workers, found {workers.Count}."); + } + } + + /// Requires the native operations the corpus is intended to measure. + /// The validated API dispatch. + /// A native mechanism was replaced by a fallback. + private void ValidateMechanisms(string source) + { + // The Commands corpus is compiled for net10.0, which has no AppKitCommandTarget (only the macOS head declares it), + // so the UIKit target and the WinForms event are the mechanisms it can require. + string[] required = Family switch + { + "Observation" => ["CallbackPropertyObservable", "AddObserver"], + "Commands" => ["AddTarget", ".Click +="], + "Collections" => ["SuspendLayout", "AddRange", ".Owner", ".Container"], + _ => [".ToString(", ".Visible", "__value.HasValue", "global::Foundation.NSDate"], + }; + foreach (var operation in required) + { + if (source.IndexOf(operation, StringComparison.Ordinal) < 0) + { + throw new InvalidOperationException($"{Family}: missing generated operation {operation}."); + } + } + } + + /// Rejects a benchmark corpus that fails to select any binding call sites. + /// The generator output. + /// The number of emitted dispatch characters. + /// No dispatch was emitted. + private int CountDispatchCharacters(GeneratorDriverRunResult result) + { + if (!result.Diagnostics.IsEmpty || result.Results[0].Exception is not null) + { + throw new InvalidOperationException("The generator reported diagnostics or an exception."); + } + + var count = 0; + foreach (var generated in result.Results[0].GeneratedSources) + { + if (generated.HintName == _dispatchHint) + { + count += generated.SourceText.Length; + } + } + + return count != 0 ? count : throw new InvalidOperationException("The adapter corpus produced no binding dispatch."); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/GenerationBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/GenerationBenchmarks.cs new file mode 100644 index 00000000..e61e879d --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/GenerationBenchmarks.cs @@ -0,0 +1,60 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using ReactiveUI.Binding.Generator.Benchmarks.Support; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// Measures a full generation pass over the mock consumer source. +/// +/// The driver is rebuilt per iteration so each measurement is a cold generation, which is what a consumer's +/// build actually pays. Reusing a primed driver would measure the incremental cache instead, and hoisting the +/// driver into setup would let one iteration's caches serve the next. +/// +public class GenerationBenchmarks +{ + /// The mock consumer compilation, built once per parameter set. + private Compilation _compilation = null!; + + /// + /// Gets or sets a value indicating whether the build lists the generated namespace, which is what decides + /// between claiming each call site outright and offering an overload that competes for them all. + /// + [Params(false, true)] + public bool Intercept { get; set; } + + /// + /// Builds the mock consumer compilation once per parameter set. Loading a framework's worth of metadata + /// references costs far more than a generation pass and is work the host build does once, so measuring it + /// per iteration would bury what this benchmark is for. + /// + [GlobalSetup] + public void Setup() => _compilation = GeneratorHarness.BuildCompilation(Intercept); + + /// Runs a whole cold generation: syntax scan, extraction, and emission. + /// The number of generated characters, returned so the work cannot be optimized away. + /// The mock consumer source generated nothing, so there is no result to report. + [Benchmark] + public int Generate() + { + // A fresh driver per iteration: a reused one would serve the next iteration from its caches and + // measure the incremental path rather than the cold generation a consumer's build pays for. + var driver = GeneratorHarness.CreateDriver(Intercept); + var result = driver.RunGenerators(_compilation).GetRunResult(); + + var characters = 0; + foreach (var generated in result.Results[0].GeneratedSources) + { + characters += generated.SourceText.Length; + } + + // Mock source that stopped matching the APIs would generate nothing and quietly turn this into a + // measurement of driver overhead, so refuse to report a number for it. + return characters == 0 + ? throw new InvalidOperationException("The mock consumer source generated nothing; the benchmark is measuring nothing.") + : characters; + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/AddressViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/AddressViewModel.cs new file mode 100644 index 00000000..fe7a69a5 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/AddressViewModel.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// A nested view model, so the mock bindings observe a chain of two properties. +public class AddressViewModel : INotifyPropertyChanged +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets or sets the city. + public string City + { + get => field; + set + { + if (field == value) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new(nameof(City))); + } + } = string.Empty; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonBindings.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonBindings.cs new file mode 100644 index 00000000..66791341 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonBindings.cs @@ -0,0 +1,129 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// One call site for each observation and binding API the generator writes code for. +public static class PersonBindings +{ + /// Observes the name. + /// The view model to observe. + /// The name, now and after each change. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveName(PersonViewModel viewModel) => + viewModel.WhenChanged(x => x.Name); + + /// Observes the city through the address. + /// The view model to observe. + /// The city, now and after each change to either link. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveCity(PersonViewModel viewModel) => + viewModel.WhenChanged(x => x.Address.City); + + /// Observes the name and the age together. + /// The view model to observe. + /// Both values, now and after each change to either. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable> ObserveNameAndAge(PersonViewModel viewModel) => + viewModel.WhenChanged(x => x.Name, x => x.Age); + + /// Observes the age before each change. + /// The view model to observe. + /// The age, now and before each change. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveAgeChanging(PersonViewModel viewModel) => + viewModel.WhenChanging(x => x.Age); + + /// Observes the name under the ReactiveUI-compatible name. + /// The view model to observe. + /// The name, now and after each change. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveNameValue(PersonViewModel viewModel) => + viewModel.WhenAnyValue(x => x.Name); + + /// Observes the name through WhenAny, which delivers the whole change. + /// The view model to observe. + /// The name, now and after each change. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveNameChange(PersonViewModel viewModel) => + viewModel.WhenAny(x => x.Name, static change => change.Value); + + /// Observes the ticks the person reports. + /// The view model to observe. + /// Each tick of the current observable. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IObservable ObserveTicks(PersonViewModel viewModel) => + viewModel.WhenAnyObservable(x => x.Ticks); + + /// Runs the save command for each value a source produces. + /// The values that trigger the command. + /// The view model holding the command. + /// The subscription. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable RunSaveFor(IObservable source, PersonViewModel viewModel) => + source.InvokeCommand(viewModel, x => x.Save); + + /// Answers the confirmation the view model asks for. + /// The view model holding the interaction. + /// The view that answers it. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindConfirm(PersonViewModel viewModel, PersonView view) => + view.BindInteraction(viewModel, x => x.Confirm, static context => + { + context.SetOutput(true); + return System.Threading.Tasks.Task.CompletedTask; + }); + + /// Writes the name to the view. + /// The view model to read. + /// The view to write. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindName(PersonViewModel viewModel, PersonView view) => + viewModel.BindOneWay(view, x => x.Name, x => x.NameText); + + /// Keeps the active flag and the active box in step. + /// The view model to bind. + /// The view to bind. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindIsActive(PersonViewModel viewModel, PersonView view) => + viewModel.BindTwoWay(view, x => x.IsActive, x => x.IsActiveValue); + + /// Writes the name to the view, starting from the view. + /// The view model to read. + /// The view to write. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable OneWayBindName(PersonViewModel viewModel, PersonView view) => + view.OneWayBind(viewModel, x => x.Name, x => x.NameText); + + /// Keeps the name and the name text in step, starting from the view. + /// The view model to bind. + /// The view to bind. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindNameBothWays(PersonViewModel viewModel, PersonView view) => + view.Bind(viewModel, x => x.Name, x => x.NameText); + + /// Runs the save command when the save button is clicked. + /// The view model holding the command. + /// The view holding the button. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindSave(PersonViewModel viewModel, PersonView view) => + view.BindCommand(viewModel, x => x.Save, x => x.SaveButton); + + /// Writes each name the view model reports into the view. + /// The view model to observe. + /// The view to write. + /// The binding. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static IDisposable BindNameTo(PersonViewModel viewModel, PersonView view) => + viewModel.WhenChanged(x => x.Name).BindTo(view, x => x.NameText); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonSummaryViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonSummaryViewModel.cs new file mode 100644 index 00000000..cf01df7a --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonSummaryViewModel.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// A view model whose derived properties are backed by observables through ToProperty. +/// Its public event-args raise method is how generated code raises its notifications. +public sealed class PersonSummaryViewModel : INotifyPropertyChanged, IDisposable +{ + /// Backs . + private readonly ObservableAsPropertyHelper _displayName; + + /// Backs . + private readonly ObservableAsPropertyHelper _age; + + /// Backs . + private readonly ObservableAsPropertyHelper _isAdult; + + /// Initializes a new instance of the class. + /// The values takes. + /// The values takes. + /// The values takes. + public PersonSummaryViewModel(IObservable names, IObservable ages, IObservable adults) + { + _displayName = names.ToProperty(this, static x => x.DisplayName); + _age = ages.ToProperty(this, nameof(Age), -1); + _isAdult = adults.ToProperty(this, static x => x.IsAdult, false, true); + } + + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Gets the display name. + public string DisplayName => _displayName.Value; + + /// Gets the age. + public int Age => _age.Value; + + /// Gets a value indicating whether the person is an adult. + public bool IsAdult => _isAdult.Value; + + /// Raises . + /// The event arguments. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void RaisePropertyChanged(PropertyChangedEventArgs args) => PropertyChanged?.Invoke(this, args); + + /// + public void Dispose() + { + _displayName.Dispose(); + _age.Dispose(); + _isAdult.Dispose(); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonView.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonView.cs new file mode 100644 index 00000000..4bc13b52 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonView.cs @@ -0,0 +1,62 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Generic; +using System.ComponentModel; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// A view with the controls the mock bindings write to. +public class PersonView : IViewFor, INotifyPropertyChanged +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// + public PersonViewModel? ViewModel + { + get => field; + set => SetField(ref field, value, nameof(ViewModel)); + } + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (PersonViewModel?)value; + } + + /// Gets or sets the text showing the name. + public string NameText + { + get => field; + set => SetField(ref field, value, nameof(NameText)); + } = string.Empty; + + /// Gets or sets a value indicating whether the active box is checked. + public bool IsActiveValue + { + get => field; + set => SetField(ref field, value, nameof(IsActiveValue)); + } + + /// Gets the button that runs the save command. + public SaveButton SaveButton { get; } = new(); + + /// Writes a property's value, raising the change event after the write. + /// The property type. + /// The property's backing field. + /// The new value. + /// The property being written. + private void SetField(ref T storage, T value, string propertyName) + { + if (EqualityComparer.Default.Equals(storage, value)) + { + return; + } + + storage = value; + PropertyChanged?.Invoke(this, new(propertyName)); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonViewModel.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonViewModel.cs new file mode 100644 index 00000000..e72f186c --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/PersonViewModel.cs @@ -0,0 +1,78 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Input; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// A view model with the property shapes the mock bindings read: text, a number, a flag, a nested object and a command. +public class PersonViewModel : INotifyPropertyChanged, INotifyPropertyChanging +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// + public event PropertyChangingEventHandler? PropertyChanging; + + /// Gets or sets the person's name. + public string Name + { + get => field; + set => SetField(ref field, value, nameof(Name)); + } = string.Empty; + + /// Gets or sets the person's age. + public int Age + { + get => field; + set => SetField(ref field, value, nameof(Age)); + } + + /// Gets or sets a value indicating whether the person is active. + public bool IsActive + { + get => field; + set => SetField(ref field, value, nameof(IsActive)); + } + + /// Gets or sets the person's address. + public AddressViewModel Address + { + get => field; + set => SetField(ref field, value, nameof(Address)); + } = new(); + + /// Gets or sets the command that saves the person. + public ICommand? Save + { + get => field; + set => SetField(ref field, value, nameof(Save)); + } + + /// Gets an observable that ticks when something happens to the person. + public IObservable? Ticks { get; init; } + + /// Gets the interaction that asks the user to confirm a change. + public IInteraction Confirm { get; init; } = null!; + + /// Writes a property's value, raising the change events around the write. + /// The property type. + /// The property's backing field. + /// The new value. + /// The property being written. + private void SetField(ref T storage, T value, string propertyName) + { + if (EqualityComparer.Default.Equals(storage, value)) + { + return; + } + + PropertyChanging?.Invoke(this, new(propertyName)); + storage = value; + PropertyChanged?.Invoke(this, new(propertyName)); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/SaveButton.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/SaveButton.cs new file mode 100644 index 00000000..2aff9549 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Mocks/SaveButton.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Mocks; + +/// A button the mock command binding attaches to through its click event. +public class SaveButton +{ + /// Occurs when the button is clicked. + public event EventHandler? Click; + + /// Raises . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void PerformClick() => Click?.Invoke(this, EventArgs.Empty); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ObservableAsPropertyDiscoveryBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ObservableAsPropertyDiscoveryBenchmarks.cs new file mode 100644 index 00000000..c2e05416 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ObservableAsPropertyDiscoveryBenchmarks.cs @@ -0,0 +1,171 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using System.Text; +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Text; +using ReactiveUI.Binding.Generator.Benchmarks.Support; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// +/// Measures the two ways a generator can find [ObservableAsProperty] properties, so the choice of +/// ForAttributeWithMetadataName is backed by numbers: the compiler's attribute index, and a syntax predicate +/// over every attributed property followed by a semantic check of its attributes. +/// +/// +/// Each approach is measured on a fresh driver, and again after one unrelated file changes, which is the run an +/// editor repeats on every keystroke. Both find the same properties; only the discovery differs. +/// +public class ObservableAsPropertyDiscoveryBenchmarks +{ + /// The number of files in the corpus. + private const int FileCount = 50; + + /// The number of properties in each file, one of which carries the attribute. + private const int PropertiesPerFile = 20; + + /// The attribute's metadata name. + private const string AttributeMetadataName = "ReactiveUI.Binding.ObservableAsPropertyAttribute"; + + /// The corpus compilation. + private Compilation _compilation = null!; + + /// The corpus with one unrelated file edited. + private Compilation _edited = null!; + + /// A driver that has already run the attribute-index generator over the corpus. + private GeneratorDriver _warmIndex = null!; + + /// A driver that has already run the syntax-scan generator over the corpus. + private GeneratorDriver _warmScan = null!; + + /// Builds the corpus and warms one driver per approach. + [GlobalSetup] + public void Setup() + { + var parseOptions = GeneratorHarness.ParseOptions(false); + var trees = new SyntaxTree[FileCount]; + for (var f = 0; f < FileCount; f++) + { + var source = new StringBuilder() + .AppendLine("using ReactiveUI.Binding;") + .AppendLine("namespace Corpus;") + .Append("public partial class Vm").Append(f).AppendLine() + .AppendLine("{") + .AppendLine(" [ObservableAsProperty]") + .AppendLine(" public partial string Backed { get; }"); + for (var p = 1; p < PropertiesPerFile; p++) + { + _ = source.Append(" [System.ComponentModel.Description(\"p\")] public int P").Append(p).AppendLine(" { get; set; }"); + } + + _ = source.AppendLine("}"); + trees[f] = CSharpSyntaxTree.ParseText(source.ToString(), parseOptions, $"Vm{f}.cs"); + } + + _compilation = GeneratorHarness.BuildCompilation(false).AddSyntaxTrees(trees); + var last = trees[FileCount - 1]; + _edited = _compilation.ReplaceSyntaxTree(last, last.WithChangedText(last.GetText().WithChanges(new TextChange(new TextSpan(0, 0), "// edited\n")))); + _warmIndex = CreateDriver(new AttributeIndexGenerator(), parseOptions).RunGenerators(_compilation); + _warmScan = CreateDriver(new SyntaxScanGenerator(), parseOptions).RunGenerators(_compilation); + } + + /// Finds the properties through the compiler's attribute index, on a fresh driver. + /// The run result's generated source count, read so the run is not elided. + [Benchmark(Baseline = true, Description = "Cold: ForAttributeWithMetadataName")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int ColdIndex() => + CreateDriver(new AttributeIndexGenerator(), GeneratorHarness.ParseOptions(false)).RunGenerators(_compilation).GetRunResult().GeneratedTrees.Length; + + /// Finds the properties by scanning attributed properties and checking each one semantically, on a fresh driver. + /// The run result's generated source count, read so the run is not elided. + [Benchmark(Description = "Cold: syntax scan + semantic check")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int ColdScan() => + CreateDriver(new SyntaxScanGenerator(), GeneratorHarness.ParseOptions(false)).RunGenerators(_compilation).GetRunResult().GeneratedTrees.Length; + + /// Reruns the attribute-index generator after one unrelated file changed. + /// The run result's generated source count, read so the run is not elided. + [Benchmark(Description = "Edit: ForAttributeWithMetadataName")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EditIndex() => _warmIndex.RunGenerators(_edited).GetRunResult().GeneratedTrees.Length; + + /// Reruns the syntax-scan generator after one unrelated file changed. + /// The run result's generated source count, read so the run is not elided. + [Benchmark(Description = "Edit: syntax scan + semantic check")] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int EditScan() => _warmScan.RunGenerators(_edited).GetRunResult().GeneratedTrees.Length; + + /// Creates a driver that tracks incremental steps, as the IDE's driver does. + /// The generator. + /// The parse options. + /// The driver. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static CSharpGeneratorDriver CreateDriver(IIncrementalGenerator generator, CSharpParseOptions parseOptions) => + CSharpGeneratorDriver.Create([generator.AsSourceGenerator()], parseOptions: parseOptions); + + /// Emits one file listing the property names it was given. + /// The output context. + /// The property names. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void Emit(SourceProductionContext context, ImmutableArray names) => + context.AddSource("Found.g.cs", $"// {names.Length}"); + + /// Finds the attribute through ForAttributeWithMetadataName, as the shipped generator does. + private sealed class AttributeIndexGenerator : IIncrementalGenerator + { + /// + public void Initialize(IncrementalGeneratorInitializationContext context) + { + var names = context.SyntaxProvider.ForAttributeWithMetadataName( + AttributeMetadataName, + static (node, _) => node is PropertyDeclarationSyntax, + static (attributeContext, _) => attributeContext.TargetSymbol.Name); + context.RegisterSourceOutput(names.Collect(), Emit); + } + } + + /// Finds the attribute by filtering attributed properties in syntax, then checking each one's attributes. + private sealed class SyntaxScanGenerator : IIncrementalGenerator + { + /// + public void Initialize(IncrementalGeneratorInitializationContext context) + { + var names = context.SyntaxProvider.CreateSyntaxProvider( + static (node, _) => node is PropertyDeclarationSyntax { AttributeLists.Count: > 0 }, + ReadName) + .Where(static name => name is not null) + .Select(static (name, _) => name!); + context.RegisterSourceOutput(names.Collect(), Emit); + } + + /// Returns the property's name when it carries the attribute. + /// The syntax context. + /// The cancellation token. + /// The name, or null when the property does not carry the attribute. + private static string? ReadName(GeneratorSyntaxContext context, CancellationToken ct) + { + if (context.SemanticModel.GetDeclaredSymbol(context.Node, ct) is not IPropertySymbol property) + { + return null; + } + + foreach (var attribute in property.GetAttributes()) + { + if (attribute.AttributeClass?.ToDisplayString() == AttributeMetadataName) + { + return property.Name; + } + } + + return null; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Program.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Program.cs new file mode 100644 index 00000000..395bae91 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Program.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Running; +using ReactiveUI.Binding.Benchmarks.Configs; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// Entry point that hands the command line to the BenchmarkDotNet switcher. +internal static class Program +{ + /// Runs the benchmark selected by the command line. + /// The command-line arguments passed to the switcher. + [STAThread] + internal static void Main(string[] args) + { + var count = BenchmarkRunValidation.CountVerified(BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, new ProfilerConfig())); + BenchmarkRunValidation.RequireMeasurements(count, args); + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ReactiveUI.Binding.Generator.Benchmarks.csproj b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ReactiveUI.Binding.Generator.Benchmarks.csproj new file mode 100644 index 00000000..1f1007d5 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ReactiveUI.Binding.Generator.Benchmarks.csproj @@ -0,0 +1,26 @@ + + + + net10.0;net11.0 + + + + + + + + + + + + + + + + + + + diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/AdapterBenchmarkCorpus.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/AdapterBenchmarkCorpus.cs new file mode 100644 index 00000000..573b40a9 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/AdapterBenchmarkCorpus.cs @@ -0,0 +1,173 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Generator.Benchmarks.Support; + +/// Provides small consumer compilations for the platform adapter families. +internal static class AdapterBenchmarkCorpus +{ + /// Observes native control events and sender-filtered Apple notifications. + private const string Observation = """ + using System; + using ReactiveUI.Binding; + namespace Foundation + { + public class NSObject : IDisposable { public void Dispose() {} } + public class NSString : NSObject {} + public class NSNotification : NSObject {} + public class NSNotificationCenter + { + public static NSNotificationCenter DefaultCenter { get; } = new NSNotificationCenter(); + public NSObject AddObserver(NSString name, Action handler, NSObject sender) => new NSObject(); + public void RemoveObserver(NSObject token) {} + } + } + namespace UIKit + { + public class UIControl : Foundation.NSObject { public double Value { get; set; } public event EventHandler ValueChanged; } + public class UITextField : UIControl + { + public string Text { get; set; } + public static Foundation.NSString TextFieldTextDidChangeNotification { get; } = new Foundation.NSString(); + } + } + public static class Usage + { + public static void Observe(UIKit.UIControl control, UIKit.UITextField text) + { + var value = control.WhenChanged(x => x.Value); + var content = text.WhenChanged(x => x.Text); + } + } + """; + + /// Binds Android, UIKit and AppKit controls through their native command members. + private const string Commands = """ + using System; + using System.Windows.Input; + using ReactiveUI.Binding; + namespace Foundation + { + public class NSObject : IDisposable { public void Dispose() {} } + public class ExportAttribute : Attribute { public ExportAttribute(string name) {} } + } + namespace ObjCRuntime { public class Selector : IDisposable { public Selector(string name) {} public void Dispose() {} } } + namespace Android.Views { public class View { public event EventHandler Click; public bool Enabled { get; set; } } } + namespace UIKit + { + public enum UIControlEvent { TouchUpInside } + public class UIControl : Foundation.NSObject + { + public bool Enabled { get; set; } + public void AddTarget(EventHandler handler, UIControlEvent kind) {} + public void RemoveTarget(EventHandler handler, UIControlEvent kind) {} + } + } + namespace AppKit + { + public class NSControl : Foundation.NSObject + { + public Foundation.NSObject Target { get; set; } + public ObjCRuntime.Selector Action { get; set; } + public bool Enabled { get; set; } + } + public class NSMenuItem : NSControl {} + } + public class Model { public ICommand Command { get; set; } } + public class View : IViewFor + { + public Model ViewModel { get; set; } + object IViewFor.ViewModel { get { return ViewModel; } set { ViewModel = (Model)value; } } + public Android.Views.View Android { get; set; } + public UIKit.UIControl UIKit { get; set; } + public AppKit.NSControl AppKit { get; set; } + public void Bind(Model model) + { + this.BindCommand(model, x => x.Command, x => x.Android); + this.BindCommand(model, x => x.Command, x => x.UIKit); + this.BindCommand(model, x => x.Command, x => x.AppKit); + } + } + """; + + /// Writes typed control arrays into both WinForms collection contracts. + private const string Collections = """ + using System; + using ReactiveUI.Binding; + namespace System.Windows.Forms + { + public class Control + { + public void SuspendLayout() {} + public void ResumeLayout() {} + public class ControlCollection + { + public Control Owner { get; set; } + public void Clear() {} + public void AddRange(Control[] controls) {} + } + } + public class Button : Control {} + public class TableLayoutControlCollection : Control.ControlCollection { public Control Container => Owner; } + } + public class Target + { + public System.Windows.Forms.Control.ControlCollection Panel { get; } + public System.Windows.Forms.TableLayoutControlCollection Table { get; } + } + public static class Usage + { + public static void Bind(IObservable source, Target target) + { + source.BindTo(target, x => x.Panel); + source.BindTo(target, x => x.Table); + } + } + """; + + /// Converts nullable numbers, visibility values and Apple dates with concrete types. + private const string Conversions = """ + using System; + using ReactiveUI.Binding; + namespace System.Windows { public enum Visibility { Visible, Collapsed, Hidden } } + namespace Foundation + { + public class NSDate + { + public static explicit operator NSDate(DateTime value) => new NSDate(); + public static explicit operator DateTime(NSDate value) => default(DateTime); + } + } + public class Target + { + public string Text { get; set; } + public int? Number { get; set; } + public System.Windows.Visibility Visibility { get; set; } + public Foundation.NSDate Date { get; set; } + } + public static class Usage + { + public static void Bind(IObservable number, IObservable visible, IObservable date, Target target) + { + number.BindTo(target, x => x.Text); + number.BindTo(target, x => x.Number); + visible.BindTo(target, x => x.Visibility); + date.BindTo(target, x => x.Date); + } + } + """; + + /// Returns the requested adapter family's consumer. + /// The family named by the benchmark parameter. + /// The C# source to compile. + /// The family is unknown. + internal static string Source(string family) => family switch + { + nameof(Observation) => Observation, + nameof(Commands) => Commands, + nameof(Collections) => Collections, + nameof(Conversions) => Conversions, + _ => throw new ArgumentOutOfRangeException(nameof(family), family, "Unknown adapter family."), + }; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/GeneratorHarness.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/GeneratorHarness.cs new file mode 100644 index 00000000..cba8d2a1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/GeneratorHarness.cs @@ -0,0 +1,98 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Support; + +/// Builds the compilation and the generator driver the generation benchmarks run. +internal static class GeneratorHarness +{ + /// The assembly name given to the compilation the generator runs against. + private const string CompilationAssemblyName = "Mocks"; + + /// The folder beside the benchmark assembly that holds the mock consumer source. + private const string MocksFolder = "Mocks"; + + /// Matches the C# source files in the mocks folder. + private const string SourceFilePattern = "*.cs"; + + /// The feature a build lists interceptable namespaces under. + private const string InterceptorsNamespacesFeature = "InterceptorsNamespaces"; + + /// The namespace the generator emits interceptors into. + private const string InterceptorNamespace = "ReactiveUI.Binding.Generated.Interceptors"; + + /// + /// The parse options of a build that lists the generated namespace, which is what the shipped targets set + /// wherever the compiler can honour an interceptor emitted into it. + /// + /// Whether the build lists the namespace. + /// The parse options. + internal static CSharpParseOptions ParseOptions(bool intercept) + { + var parseOptions = new CSharpParseOptions(LanguageVersion.Latest); + + return intercept + ? parseOptions.WithFeatures([new KeyValuePair(InterceptorsNamespacesFeature, InterceptorNamespace)]) + : parseOptions; + } + + /// Builds a compilation over the mock consumer source copied beside the benchmark assembly. + /// Whether the build lists the generated namespace for interception. + /// The compilation. + internal static CSharpCompilation BuildCompilation(bool intercept) + { + var parseOptions = ParseOptions(intercept); + var paths = Directory.GetFiles(Path.Combine(AppContext.BaseDirectory, MocksFolder), SourceFilePattern); + Array.Sort(paths, StringComparer.Ordinal); + + var syntaxTrees = new SyntaxTree[paths.Length]; + for (var i = 0; i < paths.Length; i++) + { + using var reader = File.OpenText(paths[i]); + syntaxTrees[i] = CSharpSyntaxTree.ParseText(reader.ReadToEnd(), parseOptions, paths[i]); + } + + return BuildCompilation(CompilationAssemblyName, syntaxTrees); + } + + /// Builds a compilation over the given source, referencing the framework and the runtime library. + /// The compilation's assembly name. + /// The source. + /// The compilation. + internal static CSharpCompilation BuildCompilation(string assemblyName, SyntaxTree[] syntaxTrees) + { +#if NET11_0_OR_GREATER + var references = new List(Basic.Reference.Assemblies.Net110.References.All) +#else + var references = new List(Basic.Reference.Assemblies.Net100.References.All) +#endif + { + MetadataReference.CreateFromFile(typeof(ReactiveUIBindingExtensions).Assembly.Location), + MetadataReference.CreateFromFile(typeof(ReactiveUI.Primitives.Concurrency.ISequencer).Assembly.Location), + MetadataReference.CreateFromFile(typeof(Splat.IEnableLogger).Assembly.Location), + }; + + return CSharpCompilation.Create( + assemblyName, + syntaxTrees, + references, + new(OutputKind.DynamicallyLinkedLibrary)); + } + + /// Creates a cold generator driver, carrying no caches from a previous run. + /// Whether the build lists the generated namespace for interception. + /// The generator driver. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static GeneratorDriver CreateDriver(bool intercept) => + CSharpGeneratorDriver.Create( + [new BindingGenerator().AsSourceGenerator()], + null, + ParseOptions(intercept), + null); +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/XamlViewCorpus.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/XamlViewCorpus.cs new file mode 100644 index 00000000..137ea2ad --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/Support/XamlViewCorpus.cs @@ -0,0 +1,323 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Diagnostics.CodeAnalysis; +using System.Text; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Text; +using ReactiveUI.Binding.SourceGenerators; + +namespace ReactiveUI.Binding.Generator.Benchmarks.Support; + +/// Builds Avalonia-style views that name their controls in XAML and bind them all in one activation lambda. +/// +/// A named control is a field Avalonia's own generator writes, and each view model has a [Reactive] field. Either +/// one makes the binding generator read the call sites from its private copy of the compilation. With the XAML pages +/// left out, the views declare their controls as fields, as a WPF build does, and the call sites are read from the +/// consumer's compilation. +/// +internal static class XamlViewCorpus +{ + /// The assembly name of the consumer compilation. + private const string AssemblyName = "XamlViews"; + + /// The source files each view adds: its view model and its code-behind. + private const int FilesPerView = 2; + + /// The directive every corpus file starts with. + private const string NullableDirective = "#nullable enable"; + + /// The controls, the activation stub and the attribute ReactiveUI.SourceGenerators would supply. + private const string Support = """ + #nullable enable + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Windows.Input; + + namespace ReactiveUI.SourceGenerators + { + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public sealed class ReactiveAttribute : Attribute { } + } + + namespace Bench.Controls + { + public abstract class Control : INotifyPropertyChanged + { + public event PropertyChangedEventHandler? PropertyChanged; + protected void Raise(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + } + + public class TextBox : Control { private string? _text; public string? Text { get => _text; set { _text = value; Raise(nameof(Text)); } } } + public class TextBlock : Control { private string? _text; public string? Text { get => _text; set { _text = value; Raise(nameof(Text)); } } } + public class Button : Control { public ICommand? Command { get; set; } public event EventHandler? Click; public void PerformClick() => Click?.Invoke(this, EventArgs.Empty); } + } + + namespace Bench + { + public sealed class Disposables : IDisposable + { + private readonly List _items = new List(); + public void Add(IDisposable item) => _items.Add(item); + public void Dispose() { foreach (var item in _items) { item.Dispose(); } } + } + + public static class ActivationExtensions + { + public static void WhenActivated(this object view, Action block) => block(new Disposables()); + public static T DisposeWith(this T item, Disposables disposables) where T : IDisposable { disposables.Add(item); return item; } + } + } + """; + + /// The control each binding targets, in rotation: a text box bound both ways, a text block, a button. + private static readonly string[] Controls = ["TextBox", "TextBlock", "Button"]; + + /// The binding each control gets, in the same rotation. + private static readonly string[] Calls = ["Bind", "OneWayBind", "BindCommand"]; + + /// The control member each binding writes, in the same rotation; a command binds the control itself. + private static readonly string[] Targets = [".Text", ".Text", string.Empty]; + + /// The view model property type each binding reads, in the same rotation. + private static readonly string[] PropertyTypes = ["string?", "string?", "ICommand?"]; + + /// Builds the consumer compilation. + /// The number of views. + /// The number of controls each view names and binds. + /// Whether the controls come from XAML pages, which is the path that reads a copy of the compilation. + /// The XAML pages, empty when is false. + /// The compilation. + internal static CSharpCompilation Build(int views, int bindings, bool xaml, out ImmutableArray pages) + { + var parseOptions = GeneratorHarness.ParseOptions(false); + var trees = new List((views * FilesPerView) + 1) { CSharpSyntaxTree.ParseText(Support, parseOptions, "Support.cs") }; + var pageBuilder = ImmutableArray.CreateBuilder(xaml ? views : 0); + for (var view = 0; view < views; view++) + { + trees.Add(CSharpSyntaxTree.ParseText(ViewModel(view, bindings, xaml), parseOptions, $"ViewModel{view}.cs")); + trees.Add(CSharpSyntaxTree.ParseText(CodeBehind(view, bindings, xaml), parseOptions, $"View{view}.axaml.cs")); + if (xaml) + { + pageBuilder.Add(new InMemoryText($"View{view}.axaml", Page(view, bindings))); + } + } + + pages = pageBuilder.MoveToImmutable(); + var compilation = GeneratorHarness.BuildCompilation(AssemblyName, [.. trees]); + return compilation.AddReferences(RuntimeDependencies(compilation)); + } + + /// Writes the members Avalonia's and ReactiveUI.SourceGenerators' generators would add. + /// The number of views. + /// The number of controls each view names. + /// The source, which lets the generated output be compiled as a full build would. + internal static SyntaxTree OtherGeneratorsOutput(int views, int bindings) + { + var lines = new List { NullableDirective }; + for (var view = 0; view < views; view++) + { + lines.Add($"namespace Bench.ViewModels {{ public partial class ViewModel{view} {{ public string Title {{ get; set; }} = string.Empty; }} }}"); + lines.Add($"namespace Bench.Views {{ public partial class View{view} {{"); + AddFields(lines, bindings); + lines.Add("} }"); + } + + return CSharpSyntaxTree.ParseText(string.Join("\n", lines), GeneratorHarness.ParseOptions(false), "OtherGenerators.g.cs"); + } + + /// Creates a cold driver that sees the XAML pages as Avalonia marks them. + /// The XAML pages. + /// The driver. + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + internal static GeneratorDriver CreateDriver(ImmutableArray pages) => + CSharpGeneratorDriver.Create( + [new BindingGenerator().AsSourceGenerator()], + pages, + GeneratorHarness.ParseOptions(false), + new PageOptionsProvider()); + + /// Lists the runtime library's dependencies the compilation does not reference yet. + /// The compilation. + /// The references to add. + /// + /// The generated code names types from Splat, ReactiveUI.Primitives and ReactiveUI.Disposables, so the output can + /// only be checked to compile with all of their assemblies referenced. + /// + private static List RuntimeDependencies(Compilation compilation) + { + var present = new HashSet(StringComparer.Ordinal); + foreach (var reference in compilation.References) + { + _ = present.Add(Path.GetFileName(reference.Display ?? string.Empty)); + } + + var extra = new List(); + foreach (var path in Directory.GetFiles(AppContext.BaseDirectory, "*.dll")) + { + var name = Path.GetFileName(path); + if (IsRuntimeDependency(name) && present.Add(name)) + { + extra.Add(MetadataReference.CreateFromFile(path)); + } + } + + return extra; + } + + /// Determines whether an assembly file belongs to one of the runtime library's dependencies. + /// The file name. + /// for a Splat, ReactiveUI.Primitives or ReactiveUI.Disposables assembly. + private static bool IsRuntimeDependency(string name) => + name.StartsWith("Splat", StringComparison.Ordinal) + || name.StartsWith("ReactiveUI.Primitives", StringComparison.Ordinal) + || name.StartsWith("ReactiveUI.Disposables", StringComparison.Ordinal); + + /// Writes a view model with a property per control, and a [Reactive] field when XAML is on. + /// The view's index. + /// The number of controls. + /// Whether the view model carries a [Reactive] field. + /// The source. + private static string ViewModel(int view, int bindings, bool xaml) + { + var lines = new List + { + NullableDirective, + "using System.ComponentModel;", + "using System.Windows.Input;", + "namespace Bench.ViewModels {", + $"public partial class ViewModel{view} : INotifyPropertyChanged {{", + "public event PropertyChangedEventHandler? PropertyChanged;", + }; + if (xaml) + { + lines.Add("[ReactiveUI.SourceGenerators.Reactive] private string _title = string.Empty;"); + } + + for (var i = 0; i < bindings; i++) + { + lines.Add($"public {PropertyTypes[i % PropertyTypes.Length]} P{i} {{ get; set; }}"); + } + + lines.Add("} }"); + return string.Join("\n", lines); + } + + /// Writes a view's code-behind, binding every control in one activation lambda. + /// The view's index. + /// The number of controls. + /// Whether the controls come from the page; otherwise the class declares them. + /// The source. + private static string CodeBehind(int view, int bindings, bool xaml) + { + var lines = new List + { + NullableDirective, + "using ReactiveUI.Binding;", + "using Bench.ViewModels;", + "namespace Bench.Views {", + $"public partial class View{view} : IViewFor {{", + $"public ViewModel{view}? ViewModel {{ get; set; }}", + $"object? IViewFor.ViewModel {{ get => ViewModel; set => ViewModel = (ViewModel{view}?)value; }}", + }; + if (!xaml) + { + AddFields(lines, bindings); + } + + lines.Add($"public View{view}() {{"); + lines.Add("this.WhenActivated(disposables => {"); + for (var i = 0; i < bindings; i++) + { + lines.Add($"this.{Calls[i % Calls.Length]}(ViewModel, vm => vm.P{i}, v => v.C{i}{Targets[i % Targets.Length]}).DisposeWith(disposables);"); + } + + lines.Add("}); } } }"); + return string.Join("\n", lines); + } + + /// Adds a field per control, as Avalonia's generator or a WPF build declares them. + /// The lines to add to. + /// The number of controls. + private static void AddFields(List lines, int bindings) + { + for (var i = 0; i < bindings; i++) + { + var type = Controls[i % Controls.Length]; + lines.Add($"internal global::Bench.Controls.{type} C{i} = new global::Bench.Controls.{type}();"); + } + } + + /// Writes a view's XAML page, naming every control. + /// The view's index. + /// The number of controls. + /// The page. + private static string Page(int view, int bindings) + { + var lines = new List + { + $"", + "", + }; + for (var i = 0; i < bindings; i++) + { + lines.Add($""); + } + + lines.Add(""); + lines.Add(""); + return string.Join("\n", lines); + } + + /// An additional file held in memory. + /// The file's path. + /// The file's text. + private sealed class InMemoryText(string path, string content) : AdditionalText + { + /// The file's text. + private readonly SourceText _text = SourceText.From(content, Encoding.UTF8); + + /// + public override string Path { get; } = path; + + /// + public override SourceText GetText(CancellationToken cancellationToken = default) => _text; + } + + /// Marks every additional file as an Avalonia XAML page. + private sealed class PageOptionsProvider : AnalyzerConfigOptionsProvider + { + /// The options every file carries: the item metadata Avalonia marks its XAML files with. + private static readonly AnalyzerConfigOptions PageOptions = new Options("build_metadata.AdditionalFiles.SourceItemGroup", "AvaloniaXaml"); + + /// The build's options, which set nothing. + private static readonly AnalyzerConfigOptions NoOptions = new Options(null, null); + + /// + public override AnalyzerConfigOptions GlobalOptions => NoOptions; + + /// + public override AnalyzerConfigOptions GetOptions(SyntaxTree tree) => NoOptions; + + /// + public override AnalyzerConfigOptions GetOptions(AdditionalText textFile) => PageOptions; + } + + /// Options holding at most one key. + /// The key, or null for none. + /// The key's value. + private sealed class Options(string? optionKey, string? optionValue) : AnalyzerConfigOptions + { + /// + public override bool TryGetValue(string key, [NotNullWhen(true)] out string? value) + { + value = string.Equals(optionKey, key, StringComparison.Ordinal) ? optionValue : null; + return value is not null; + } + } +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ToPropertyExtractionBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ToPropertyExtractionBenchmarks.cs new file mode 100644 index 00000000..499ae9b1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/ToPropertyExtractionBenchmarks.cs @@ -0,0 +1,117 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Text; +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReactiveUI.Binding.Generator.Benchmarks.Support; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// +/// Measures the two checks a ToProperty call site can be turned away by, so the order the extractor runs them in is +/// backed by numbers: the selector's shape, read from syntax, and the call's resolution, which asks the semantic model. +/// +/// +/// Each benchmark visits the same call sites. The shape check is what the extractor runs first; the resolution is what +/// it would have to run for every call site if it asked the model first. A fresh semantic model per invocation keeps +/// the model's binding cache from serving one iteration with the previous one's work. +/// +public class ToPropertyExtractionBenchmarks +{ + /// The number of call sites in the corpus. + private const int CallSiteCount = 200; + + /// The compilation holding the call sites. + private Compilation _compilation = null!; + + /// The syntax tree holding the call sites. + private SyntaxTree _tree = null!; + + /// The ToProperty invocations, found once so neither benchmark measures the scan. + private InvocationExpressionSyntax[] _invocations = []; + + /// Builds a corpus of ToProperty call sites whose selectors reach past the source object. + [GlobalSetup] + public void Setup() + { + var source = new StringBuilder() + .AppendLine("using System;") + .AppendLine("using System.ComponentModel;") + .AppendLine("using ReactiveUI.Binding;") + .AppendLine("namespace Corpus;") + .AppendLine("public partial class Vm : INotifyPropertyChanged") + .AppendLine("{") + .AppendLine(" public event PropertyChangedEventHandler? PropertyChanged;") + .AppendLine(" public string Name { get; set; } = \"\";") + .AppendLine(" public void Wire(IObservable lengths)") + .AppendLine(" {"); + for (var i = 0; i < CallSiteCount; i++) + { + _ = source.AppendLine(" lengths.ToProperty(this, x => x.Name.Length);"); + } + + _ = source.AppendLine(" }").AppendLine("}"); + + _tree = CSharpSyntaxTree.ParseText(source.ToString(), GeneratorHarness.ParseOptions(false)); + _compilation = GeneratorHarness.BuildCompilation(false).AddSyntaxTrees(_tree); + var invocations = new List(CallSiteCount); + foreach (var descendant in _tree.GetRoot().DescendantNodes()) + { + if (descendant is InvocationExpressionSyntax invocation) + { + invocations.Add(invocation); + } + } + + _invocations = [.. invocations]; + } + + /// Reads each selector's shape from syntax, the check the extractor runs before asking the model. + /// The number of call sites the shape check turned away. + [Benchmark(Baseline = true, Description = "Syntax: selector shape")] + public int SyntaxShape() + { + var rejected = 0; + for (var i = 0; i < _invocations.Length; i++) + { + if (!IsDirectMemberSelector(_invocations[i].ArgumentList.Arguments[1].Expression)) + { + rejected++; + } + } + + return rejected; + } + + /// Resolves each call through the semantic model, what the extractor would pay if it asked the model first. + /// The number of call sites that resolved to a method. + [Benchmark(Description = "Semantic: resolve the call")] + public int SemanticResolve() + { + var model = _compilation.GetSemanticModel(_tree); + var resolved = 0; + for (var i = 0; i < _invocations.Length; i++) + { + if (model.GetSymbolInfo(_invocations[i]).Symbol is IMethodSymbol) + { + resolved++; + } + } + + return resolved; + } + + /// The shape test the extractor makes: one member read straight off the lambda's own parameter. + /// The property argument. + /// for x => x.Property. + private static bool IsDirectMemberSelector(ExpressionSyntax expression) => + expression is SimpleLambdaExpressionSyntax + { + Body: MemberAccessExpressionSyntax { Expression: IdentifierNameSyntax receiver }, + } lambda + && receiver.Identifier.ValueText == lambda.Parameter.Identifier.ValueText; +} diff --git a/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/XamlViewGenerationBenchmarks.cs b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/XamlViewGenerationBenchmarks.cs new file mode 100644 index 00000000..88c152f1 --- /dev/null +++ b/src/benchmarks/ReactiveUI.Binding.Generator.Benchmarks/XamlViewGenerationBenchmarks.cs @@ -0,0 +1,125 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Text; +using ReactiveUI.Binding.Generator.Benchmarks.Support; + +namespace ReactiveUI.Binding.Generator.Benchmarks; + +/// Measures a generation pass over Avalonia-style views that bind every named control in one lambda. +/// +/// With on, the controls are named in XAML pages and a view model has a [Reactive] field, so +/// the call sites are read from the generator's private copy of the compilation. With it off, the views declare their +/// controls and the call sites are read from the consumer's compilation. Growing shows how the +/// cost of one view grows with the call sites in its lambda. +/// +public class XamlViewGenerationBenchmarks +{ + /// The number of views in the corpus. + private const int Views = 4; + + /// The consumer compilation. + private Compilation _compilation = null!; + + /// The consumer compilation after a one-line edit to one view. + private Compilation _edited = null!; + + /// A driver that has already run over the unedited compilation. + private GeneratorDriver _primed = null!; + + /// The XAML pages the driver sees. + private ImmutableArray _pages; + + /// The validated size of the generated output. + private int _characters; + + /// Gets or sets the number of controls each view names and binds. + [Params(10, 50, 100)] + public int Bindings { get; set; } + + /// Gets or sets a value indicating whether the controls come from XAML pages. + [Params(false, true)] + public bool Xaml { get; set; } + + /// Builds the corpus and checks the generated output compiles and covers every call site. + /// The output does not compile. + [GlobalSetup] + public void Setup() + { + _compilation = XamlViewCorpus.Build(Views, Bindings, Xaml, out _pages); + var driver = XamlViewCorpus.CreateDriver(_pages).RunGeneratorsAndUpdateCompilation(_compilation, out var output, out _); + + // The other generators do not run here, so their members are added the way a full build would add them. + var full = Xaml ? output.AddSyntaxTrees(XamlViewCorpus.OtherGeneratorsOutput(Views, Bindings)) : output; + foreach (var diagnostic in full.GetDiagnostics()) + { + if (diagnostic.Severity == DiagnosticSeverity.Error) + { + throw new InvalidOperationException($"The generated output does not compile: {diagnostic}"); + } + } + + _characters = Count(driver.GetRunResult()); + + // A one-line edit to one view, as a developer makes between two builds. + foreach (var tree in _compilation.SyntaxTrees) + { + if (!tree.FilePath.EndsWith(".axaml.cs", StringComparison.Ordinal)) + { + continue; + } + + var text = tree.GetText(); + _edited = _compilation.ReplaceSyntaxTree(tree, tree.WithChangedText(text.WithChanges(new TextChange(new(text.Length, 0), "\n// edited")))); + break; + } + } + + /// Primes a driver with a run over the unedited views, so the next run is incremental. + [IterationSetup(Target = nameof(Edit))] + public void PrimeDriver() => _primed = XamlViewCorpus.CreateDriver(_pages).RunGenerators(_compilation); + + /// Runs the generation that follows a one-line edit to one view, reusing the previous run's caches. + /// The number of generated characters. + /// The pass generated something other than the validated output. + [Benchmark] + public int Edit() + { + // The primed driver's caches serve every step whose input the edit did not change. + var result = _primed.RunGenerators(_edited).GetRunResult(); + var characters = Count(result); + return characters == _characters + ? characters + : throw new InvalidOperationException("An edit pass changed the validated output."); + } + + /// Runs a whole cold generation over the views. + /// The number of generated characters. + /// The pass generated something other than the validated output. + [Benchmark] + public int Generate() + { + var characters = Count(XamlViewCorpus.CreateDriver(_pages).RunGenerators(_compilation).GetRunResult()); + return characters == _characters + ? characters + : throw new InvalidOperationException("A generation pass changed the validated output."); + } + + /// Counts the generated characters. + /// The run result. + /// The number of characters. + private static int Count(GeneratorDriverRunResult result) + { + var characters = 0; + foreach (var generated in result.Results[0].GeneratedSources) + { + characters += generated.SourceText.Length; + } + + return characters; + } +} diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/AnalyzerBenchmarks.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/AnalyzerBenchmarks.cs new file mode 100644 index 00000000..8ba3096e --- /dev/null +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/AnalyzerBenchmarks.cs @@ -0,0 +1,137 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Attributes; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using ReactiveUI.SourceGenerators.Benchmarks.Support; +using ReactiveUI.SourceGenerators.CodeFixers; +using ReactiveUI.SourceGenerators.Diagnostics.Suppressions; + +namespace ReactiveUI.SourceGenerators.Benchmarks; + +/// Measures what each analyzer and suppressor the package ships costs a compilation. +/// +/// Each measurement starts a fresh CompilationWithAnalyzers, which is the state a host build starts an analysis +/// with. A suppressor decides on diagnostics other analyzers report, so the suppressor benchmarks run beside a source of +/// the diagnostics they exist to silence. +/// +public class AnalyzerBenchmarks +{ + /// How many times each mock file is repeated, each copy in its own namespace. + private const int Copies = 20; + + /// The analyzer for [Reactive] on members that are not partial. + private readonly ReactiveAttributeMisuseAnalyzer _misuseAnalyzer = new(); + + /// The analyzer for [ReactiveCommand] methods the generator skips. + private readonly ReactiveCommandAnalyzer _commandAnalyzer = new(); + + /// The analyzer for properties that could be [Reactive] fields. + private readonly PropertyToReactiveFieldAnalyzer _propertyAnalyzer = new(); + + /// The analyzer for WinForms hosts written without ObservedProperty. + private readonly ControlHostAnalyzer _controlHostAnalyzer = new(); + + /// Reports the diagnostics the suppressors silence. + private readonly SuppressibleDiagnosticSource _source = new(); + + /// The mock consumer compilation, built once per parameter set. + private Compilation _compilation = null!; + + /// Gets the corpus names. + public static IEnumerable Corpora => ["Reactive", "ReactiveCommand", "RoutedControlHost", GeneratorHarness.AllCorpus]; + + /// Gets or sets the corpus: one generator's mock file, or every mock file. + [ParamsSource(nameof(Corpora))] + public string Corpus { get; set; } = GeneratorHarness.AllCorpus; + + /// Builds the mock consumer compilation once per parameter set. + [GlobalSetup] + public void Setup() => _compilation = GeneratorHarness.BuildCompilation(Corpus, Copies); + + /// Runs the analyzer for [Reactive] misuse. + /// The number of diagnostics reported. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task AnalyzeReactiveMisuse() => CountAsync(_misuseAnalyzer); + + /// Runs the analyzer for [ReactiveCommand] methods the generator skips. + /// The number of diagnostics reported. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task AnalyzeReactiveCommand() => CountAsync(_commandAnalyzer); + + /// Runs the analyzer for properties that could be [Reactive] fields. + /// The number of diagnostics reported. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task AnalyzePropertyToReactiveField() => CountAsync(_propertyAnalyzer); + + /// Runs the analyzer for WinForms hosts written without ObservedProperty. + /// The number of diagnostics reported. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task AnalyzeControlHost() => CountAsync(_controlHostAnalyzer); + + /// Runs the suppressor for CS0657 on [Reactive] fields. + /// The number of diagnostics suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task SuppressFieldAttributeTargets() => CountSuppressedAsync(new ReactiveAttributeWithFieldTargetDiagnosticSuppressor()); + + /// Runs the suppressor for CS0657 on [Reactive] properties. + /// The number of diagnostics suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task SuppressPropertyAttributeTargets() => CountSuppressedAsync(new ReactiveAttributeWithPropertyTargetDiagnosticSuppressor()); + + /// Runs the suppressor for CS0657 on [ReactiveCommand] methods. + /// The number of diagnostics suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task SuppressCommandAttributeTargets() => CountSuppressedAsync(new ReactiveCommandAttributeWithFieldOrPropertyTargetDiagnosticSuppressor()); + + /// Runs the suppressor for static-member recommendations on [ReactiveCommand] methods. + /// The number of diagnostics suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task SuppressStaticMemberRecommendation() => CountSuppressedAsync(new ReactiveCommandMethodDoesNotNeedToBeStaticDiagnosticSuppressor()); + + /// Runs the suppressor for read-only recommendations on [Reactive] fields. + /// The number of diagnostics suppressed. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [Benchmark] + public Task SuppressReadOnlyRecommendation() => CountSuppressedAsync(new ReactiveFieldDoesNotNeedToBeReadOnlyDiagnosticSuppressor()); + + /// Runs one analyzer over the compilation and counts what it reports. + /// The analyzer. + /// The number of diagnostics reported. + private async Task CountAsync(DiagnosticAnalyzer analyzer) + { + var diagnostics = await _compilation.WithAnalyzers([analyzer]).GetAnalyzerDiagnosticsAsync().ConfigureAwait(false); + return diagnostics.Length; + } + + /// Runs a suppressor beside the diagnostic source and counts the diagnostics it suppressed. + /// The suppressor. + /// The number of diagnostics suppressed. + private async Task CountSuppressedAsync(DiagnosticSuppressor suppressor) + { + ImmutableArray analyzers = [_source, suppressor]; + var diagnostics = await _compilation.WithAnalyzers(analyzers).GetAllDiagnosticsAsync().ConfigureAwait(false); + var suppressed = 0; + foreach (var diagnostic in diagnostics) + { + if (diagnostic.IsSuppressed) + { + suppressed++; + } + } + + return suppressed; + } +} diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/GenerationBenchmarks.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/GenerationBenchmarks.cs index b1994694..2efcb1b2 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/GenerationBenchmarks.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/GenerationBenchmarks.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using BenchmarkDotNet.Attributes; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Mocks/IViewFor.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Mocks/IViewFor.cs new file mode 100644 index 00000000..cc67792f --- /dev/null +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Mocks/IViewFor.cs @@ -0,0 +1,27 @@ +using ReactiveUI.Reactive; +using ReactiveUI.SourceGenerators; + +namespace Mocks.IViewFor__N__; + +public sealed class LoginViewModel : ReactiveObject +{ +} + +public sealed class DashboardViewModel : ReactiveObject +{ +} + +[IViewFor] +public partial class LoginView : System.Windows.Controls.UserControl +{ +} + +[IViewFor] +public partial class DashboardView : System.Windows.Forms.UserControl +{ +} + +[IViewFor("Mocks.IViewFor__N__.LoginViewModel")] +public partial class LoginWindow : System.Windows.Window +{ +} diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Program.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Program.cs index 5db93579..6cefdb8f 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Program.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Program.cs @@ -1,11 +1,12 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Diagnostics.Tracing; using BenchmarkDotNet.Configs; using BenchmarkDotNet.Diagnosers; using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Loggers; using BenchmarkDotNet.Running; using Microsoft.Diagnostics.NETCore.Client; using Microsoft.Diagnostics.Tracing.Parsers; @@ -22,19 +23,20 @@ internal static class Program /// Runs the benchmarks the command line selects, --smoke to run each corpus once, or --eventpipe dir to trace allocations. /// The command-line arguments. - internal static void Main(string[] args) + /// A task representing the run. + internal static async Task Main(string[] args) { if (args is ["--eventpipe", var outputDirectory]) { // Allocation figures: GCAllocationTick events from an EventPipe session over a fixed number of runs. - _ = EventPipeAllocations.Measure(GenerationScenarios.Create(), outputDirectory); + _ = await EventPipeAllocations.MeasureAsync(GenerationScenarios.Create(), outputDirectory, CancellationToken.None).ConfigureAwait(false); return; } if (args is ["--eventpipe-discovery", var discoveryDirectory]) { // Attribute discovery strategies against each other, measured the same way. - _ = EventPipeAllocations.Measure(DiscoveryScenarios.Create(), discoveryDirectory); + _ = await EventPipeAllocations.MeasureAsync(DiscoveryScenarios.Create(), discoveryDirectory, CancellationToken.None).ConfigureAwait(false); return; } @@ -45,18 +47,18 @@ internal static void Main(string[] args) { var benchmark = new GenerationBenchmarks { Corpus = corpus }; benchmark.Setup(); - Console.WriteLine($"{corpus}: {benchmark.Generate():N0} characters, {GeneratorHarness.CountErrors(corpus)} compile errors"); + ConsoleLogger.Default.WriteLine(LogKind.Info, $"{corpus}: {benchmark.Generate():N0} characters, {GeneratorHarness.CountErrors(corpus)} compile errors"); } foreach (var finding in DiscoveryScenarios.DescribeFindings()) { - Console.WriteLine(finding); + ConsoleLogger.Default.WriteLine(LogKind.Info, finding); } return; } - _ = BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, CreateConfig()); + _ = await BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).RunAsync(args, CreateConfig(), CancellationToken.None).ConfigureAwait(false); } /// Creates the run configuration. diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj index 7cb7d323..bdfa15fe 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/ReactiveUI.SourceGenerators.Benchmarks.csproj @@ -1,21 +1,17 @@ - net10.0 + net10.0;net11.0 Exe false enable enable - - $(NoWarn);CA1515;CA1822;CA1001 - - @@ -29,6 +25,7 @@ + diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryGenerators.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryGenerators.cs index c13e4ec8..d5578ea8 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryGenerators.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryGenerators.cs @@ -1,7 +1,8 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -50,6 +51,7 @@ private static bool HasReactiveAttribute(ISymbol symbol) /// Writes the number of fields found, so every strategy's pipeline runs to its end. /// The generator initialization context. /// The names of the fields found. + [MethodImpl(MethodImplOptions.AggressiveInlining)] private static void RegisterCount(in IncrementalGeneratorInitializationContext context, IncrementalValuesProvider names) => context.RegisterSourceOutput(names.Collect(), static (context, all) => context.AddSource("Count.g.cs", $"// {all.Length}")); @@ -57,6 +59,7 @@ private static void RegisterCount(in IncrementalGeneratorInitializationContext c private sealed class ForAttributeWithMetadataNameDiscovery : IIncrementalGenerator { /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Initialize(IncrementalGeneratorInitializationContext context) => RegisterCount(context, context.SyntaxProvider.ForAttributeWithMetadataName( AttributeMetadataName, @@ -68,6 +71,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context) => private sealed class SyntaxNameThenSymbolDiscovery : IIncrementalGenerator { /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Initialize(IncrementalGeneratorInitializationContext context) => RegisterCount(context, context.SyntaxProvider.CreateSyntaxProvider( static (node, _) => NamesReactiveAttribute(node), @@ -112,6 +116,7 @@ private static bool NamesReactiveAttribute(SyntaxNode node) private sealed class DeclaredSymbolScanDiscovery : IIncrementalGenerator { /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Initialize(IncrementalGeneratorInitializationContext context) => RegisterCount(context, context.SyntaxProvider.CreateSyntaxProvider( static (node, _) => IsAttributedField(node), diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryScenarios.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryScenarios.cs index 8b9272ad..6b57aabc 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryScenarios.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/DiscoveryScenarios.cs @@ -1,7 +1,8 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using ReactiveUI.SourceGenerators.Benchmarks.Shared; @@ -81,6 +82,7 @@ internal static IEnumerable DescribeFindings() /// Creates a cold driver for one discovery generator. /// The generator. /// The driver. + [MethodImpl(MethodImplOptions.AggressiveInlining)] private static CSharpGeneratorDriver CreateDriver(IIncrementalGenerator generator) => CSharpGeneratorDriver.Create([generator.AsSourceGenerator()], parseOptions: new(LanguageVersion.CSharp13)); @@ -88,6 +90,7 @@ private static CSharpGeneratorDriver CreateDriver(IIncrementalGenerator generato /// The compilation. /// The file name. /// The tree. + /// Thrown when the input is not valid. private static SyntaxTree FindTree(Compilation compilation, string fileName) { foreach (var tree in compilation.SyntaxTrees) @@ -105,6 +108,7 @@ private static SyntaxTree FindTree(Compilation compilation, string fileName) /// The driver. /// The compilation. /// The generated length. + [MethodImpl(MethodImplOptions.AggressiveInlining)] private static long Run(GeneratorDriver driver, Compilation compilation) => driver.RunGenerators(compilation).GetRunResult().Results[0].GeneratedSources[0].SourceText.Length; } diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GenerationScenarios.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GenerationScenarios.cs index e6220fa3..d639ad31 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GenerationScenarios.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GenerationScenarios.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorCatalog.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorCatalog.cs index 9ee7b5a6..845d1022 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorCatalog.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorCatalog.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using Microsoft.CodeAnalysis; @@ -18,6 +18,7 @@ internal static class GeneratorCatalog "ReactiveObject", "BindableDerivedList", "ReactiveCollection", + "IViewFor", "ViewModelControlHost", "RoutedControlHost", GeneratorHarness.AllCorpus, @@ -38,6 +39,7 @@ internal static ISourceGenerator[] Create(string corpus) => "ReactiveObject" => [new ReactiveGenerator().AsSourceGenerator(), new ReactiveObjectGenerator().AsSourceGenerator()], "BindableDerivedList" => [new ReactiveGenerator().AsSourceGenerator(), new BindableDerivedListGenerator().AsSourceGenerator()], "ReactiveCollection" => [new ReactiveGenerator().AsSourceGenerator(), new ReactiveCollectionGenerator().AsSourceGenerator()], + "IViewFor" => [new ReactiveGenerator().AsSourceGenerator(), new IViewForGenerator().AsSourceGenerator()], "ViewModelControlHost" => [new ReactiveGenerator().AsSourceGenerator(), new ViewModelControlHostGenerator().AsSourceGenerator()], "RoutedControlHost" => [new ReactiveGenerator().AsSourceGenerator(), new RoutedControlHostGenerator().AsSourceGenerator()], _ => Create(), @@ -52,6 +54,7 @@ internal static ISourceGenerator[] Create() => new ReactiveObjectGenerator().AsSourceGenerator(), new BindableDerivedListGenerator().AsSourceGenerator(), new ReactiveCollectionGenerator().AsSourceGenerator(), + new IViewForGenerator().AsSourceGenerator(), new ViewModelControlHostGenerator().AsSourceGenerator(), new RoutedControlHostGenerator().AsSourceGenerator(), ]; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorHarness.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorHarness.cs index 08d5a11e..f719b2af 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorHarness.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/GeneratorHarness.cs @@ -1,8 +1,10 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Reflection; +using System.Runtime.CompilerServices; +using BenchmarkDotNet.Loggers; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -70,6 +72,7 @@ internal static CSharpCompilation BuildCompilation(string corpus, int copies) /// Creates a cold generator driver for a corpus, carrying no caches from a previous run. /// The corpus whose generators the driver runs. /// The generator driver. + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static GeneratorDriver CreateDriver(string corpus) => CSharpGeneratorDriver.Create( GeneratorCatalog.Create(corpus), @@ -84,11 +87,13 @@ internal static int CountErrors(string corpus) var errors = 0; foreach (var diagnostic in output.GetDiagnostics()) { - if (diagnostic.Severity == DiagnosticSeverity.Error) + if (diagnostic.Severity != DiagnosticSeverity.Error) { - errors++; - Console.WriteLine($" {diagnostic}"); + continue; } + + errors++; + ConsoleLogger.Default.WriteLine(LogKind.Error, $" {diagnostic}"); } return errors; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/SuppressibleDiagnosticSource.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/SuppressibleDiagnosticSource.cs new file mode 100644 index 00000000..43c447b3 --- /dev/null +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Benchmarks/Support/SuppressibleDiagnosticSource.cs @@ -0,0 +1,59 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; + +namespace ReactiveUI.SourceGenerators.Benchmarks.Support; + +/// +/// Reports the diagnostics the package's suppressors exist to silence, on every field and method, so a benchmark has +/// something for them to decide on without referencing a third-party analyzer. +/// +public sealed class SuppressibleDiagnosticSource : DiagnosticAnalyzer +{ + /// The readonly-field recommendation the field suppressor silences on [Reactive] fields. + private static readonly DiagnosticDescriptor ReadOnlyFieldRecommendation = new( + "RCS1169", + "Make field read-only", + "Make field read-only", + "Roslynator", + DiagnosticSeverity.Info, + isEnabledByDefault: true); + + /// The static-member recommendation the command suppressor silences on [ReactiveCommand] methods. + private static readonly DiagnosticDescriptor StaticMemberRecommendation = new( + "CA1822", + "Mark members as static", + "Mark members as static", + "Performance", + DiagnosticSeverity.Info, + isEnabledByDefault: true); + + /// + public override ImmutableArray SupportedDiagnostics { get; } = [ReadOnlyFieldRecommendation, StaticMemberRecommendation]; + + /// + public override void Initialize(AnalysisContext context) + { + context.EnableConcurrentExecution(); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.RegisterSymbolAction(static symbolContext => Report(in symbolContext), SymbolKind.Field, SymbolKind.Method); + } + + /// Reports the recommendation that fits a field or a method. + /// The symbol analysis context. + private static void Report(in SymbolAnalysisContext context) + { + var descriptor = context.Symbol.Kind == SymbolKind.Field ? ReadOnlyFieldRecommendation : StaticMemberRecommendation; + foreach (var location in context.Symbol.Locations) + { + if (location.IsInSource) + { + context.ReportDiagnostic(Diagnostic.Create(descriptor, location)); + } + } + } +} diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkPlainObject.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkPlainObject.cs index 09e9cc89..cd9f45b1 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkPlainObject.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkPlainObject.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkViewModel.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkViewModel.cs index dbc09844..502805db 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkViewModel.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/BenchmarkViewModel.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.ObjectModel; diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/GeneratedCodeBenchmarks.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/GeneratedCodeBenchmarks.cs index 5e861daf..d1a1d583 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/GeneratedCodeBenchmarks.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/GeneratedCodeBenchmarks.cs @@ -1,9 +1,10 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Collections.ObjectModel; using System.ComponentModel; +using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; namespace ReactiveUI.SourceGenerators.Runtime.Benchmarks; @@ -85,6 +86,7 @@ public int SetGeneratedReactiveObjectProperty() /// Reads a generated command, which is created on first use. /// The command's hash code, so the read cannot be optimized away. + [MethodImpl(MethodImplOptions.AggressiveInlining)] [Benchmark] public int ReadCommand() => _viewModel.IncrementCommand.GetHashCode(); diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/Program.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/Program.cs index cee73063..cf77a988 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/Program.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/Program.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Diagnostics.Tracing; @@ -21,16 +21,17 @@ internal static class Program /// Runs the benchmarks the command line selects, or --eventpipe dir to trace allocations. /// The command-line arguments. - internal static void Main(string[] args) + /// A task representing the run. + internal static async Task Main(string[] args) { if (args is ["--eventpipe", var outputDirectory]) { // Allocation figures: GCAllocationTick events from an EventPipe session over a fixed number of operations. - _ = EventPipeAllocations.Measure(RuntimeScenarios.Create(), outputDirectory); + _ = await EventPipeAllocations.MeasureAsync(RuntimeScenarios.Create(), outputDirectory, CancellationToken.None).ConfigureAwait(false); return; } - _ = BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, CreateConfig()); + _ = await BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).RunAsync(args, CreateConfig(), CancellationToken.None).ConfigureAwait(false); } /// Creates the run configuration. diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj index 357ab2c0..0aa4f96f 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks.csproj @@ -1,17 +1,14 @@ - net10.0 + net10.0;net11.0 Exe false enable enable - - $(NoWarn);CA1515;CA1822;CA1001 - diff --git a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/RuntimeScenarios.cs b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/RuntimeScenarios.cs index 30c577e0..46723d1b 100644 --- a/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/RuntimeScenarios.cs +++ b/src/benchmarks/ReactiveUI.SourceGenerators.Runtime.Benchmarks/RuntimeScenarios.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using ReactiveUI.SourceGenerators.Benchmarks.Shared; diff --git a/src/benchmarks/Shared/AllocationScenario.cs b/src/benchmarks/Shared/AllocationScenario.cs index 751e5a13..d2f943e2 100644 --- a/src/benchmarks/Shared/AllocationScenario.cs +++ b/src/benchmarks/Shared/AllocationScenario.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. namespace ReactiveUI.SourceGenerators.Benchmarks.Shared; diff --git a/src/benchmarks/Shared/Configs/BenchmarkConfig.cs b/src/benchmarks/Shared/Configs/BenchmarkConfig.cs new file mode 100644 index 00000000..4e349079 --- /dev/null +++ b/src/benchmarks/Shared/Configs/BenchmarkConfig.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Environments; +using BenchmarkDotNet.Exporters; +using BenchmarkDotNet.Jobs; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Runs benchmarks on .NET 10 and 11, with the memory diagnoser and an EventPipe trace. +public class BenchmarkConfig : ProfilerConfig +{ + /// Initializes a new instance of the class. + public BenchmarkConfig() + { + _ = AddJob(new Job().WithRuntime(CoreRuntime.Core10_0)); + _ = AddJob(new Job().WithRuntime(CoreRuntime.Core11_0)); + _ = AddExporter(MarkdownExporter.GitHub); + } +} diff --git a/src/benchmarks/Shared/Configs/BenchmarkProfiling.cs b/src/benchmarks/Shared/Configs/BenchmarkProfiling.cs new file mode 100644 index 00000000..a02df17b --- /dev/null +++ b/src/benchmarks/Shared/Configs/BenchmarkProfiling.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Reads whether the benchmark configs attach their profilers. +/// +/// An A/B comparison measures timing only. It sets BENCHMARK_PROFILERS to false, which skips the +/// second pass each profiler adds to every benchmark. +/// +public static class BenchmarkProfiling +{ + /// The environment variable that turns the profilers off when set to false. + private const string VariableName = "BENCHMARK_PROFILERS"; + + /// Gets a value indicating whether the profilers are attached. + public static bool Enabled => + !string.Equals(Environment.GetEnvironmentVariable(VariableName), "false", StringComparison.OrdinalIgnoreCase); +} diff --git a/src/benchmarks/Shared/Configs/BenchmarkRunValidation.cs b/src/benchmarks/Shared/Configs/BenchmarkRunValidation.cs new file mode 100644 index 00000000..003f3bdb --- /dev/null +++ b/src/benchmarks/Shared/Configs/BenchmarkRunValidation.cs @@ -0,0 +1,93 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Engines; +using BenchmarkDotNet.Reports; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Rejects benchmark reports with failed processes or missing workload measurements. +public static class BenchmarkRunValidation +{ + /// Validates every scheduled case and returns the number actually measured. + /// The completed benchmark runs. + /// The number of valid reports. + /// A run failed or did not measure all scheduled cases. + public static int CountVerified(IEnumerable summaries) + { + var count = 0; + foreach (var summary in summaries) + { + if (summary.HasCriticalValidationErrors || summary.Reports.Length != summary.BenchmarksCases.Length) + { + throw new InvalidOperationException($"Benchmark validation failed: {summary.Title}"); + } + + foreach (var report in summary.Reports) + { + ValidateReport(report); + count++; + } + } + + BenchmarkDotNet.Loggers.ConsoleLogger.Default.WriteLine(BenchmarkDotNet.Loggers.LogKind.Info, $"Verified benchmark cases: {count}."); + return count; + } + + /// Allows informational CLI commands while rejecting an empty measurement run. + /// The number of verified cases. + /// The CLI arguments. + /// No benchmark was measured. + public static void RequireMeasurements(int count, string[] args) + { + if (count != 0 || Array.IndexOf(args, "--help") >= 0 || Array.IndexOf(args, "--list") >= 0 || Array.IndexOf(args, "--info") >= 0) + { + return; + } + + throw new InvalidOperationException("No benchmark cases produced verified measurements."); + } + + /// Requires a positive finite workload result rather than only warmup or overhead samples. + /// The measurements from one benchmark. + /// True when actual workload results exist. + internal static bool HasWorkloadResult(IReadOnlyList measurements) + { + foreach (var measurement in measurements) + { + if (measurement.IterationMode == IterationMode.Workload && measurement.IterationStage == IterationStage.Result + && measurement.Operations > 0 && measurement.Nanoseconds > 0 + && !double.IsNaN(measurement.Nanoseconds) && !double.IsInfinity(measurement.Nanoseconds)) + { + return true; + } + } + + return false; + } + + /// Checks both process outcomes and the data underlying a reported mean. + /// One scheduled benchmark case. + /// The benchmark did not produce valid measurements. + private static void ValidateReport(BenchmarkReport report) + { + if (!report.Success || report.ResultStatistics is null || report.ExecuteResults.Count == 0) + { + throw new InvalidOperationException($"Missing benchmark measurements: {report.BenchmarkCase.DisplayInfo}"); + } + + foreach (var execution in report.ExecuteResults) + { + if (!execution.IsSuccess || execution.ExitCode != 0 || execution.Errors.Count != 0) + { + throw new InvalidOperationException($"Benchmark process failed: {report.BenchmarkCase.DisplayInfo}"); + } + } + + if (!HasWorkloadResult(report.AllMeasurements)) + { + throw new InvalidOperationException($"No workload results: {report.BenchmarkCase.DisplayInfo}"); + } + } +} diff --git a/src/benchmarks/Shared/Configs/NativeAotBenchmarkConfig.cs b/src/benchmarks/Shared/Configs/NativeAotBenchmarkConfig.cs new file mode 100644 index 00000000..43f93ca8 --- /dev/null +++ b/src/benchmarks/Shared/Configs/NativeAotBenchmarkConfig.cs @@ -0,0 +1,20 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Environments; +using BenchmarkDotNet.Jobs; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Adds the NativeAOT 10 and 11 runtimes. +public class NativeAotBenchmarkConfig : ManualConfig +{ + /// Initializes a new instance of the class. + public NativeAotBenchmarkConfig() + { + _ = AddJob(new Job(nameof(RuntimeMoniker.NativeAot10_0)).WithRuntime(NativeAotRuntime.Net10_0)); + _ = AddJob(new Job(nameof(RuntimeMoniker.NativeAot11_0)).WithRuntime(NativeAotRuntime.Net11_0)); + } +} diff --git a/src/benchmarks/Shared/Configs/NativeAotMemoryConfig.cs b/src/benchmarks/Shared/Configs/NativeAotMemoryConfig.cs new file mode 100644 index 00000000..61c66562 --- /dev/null +++ b/src/benchmarks/Shared/Configs/NativeAotMemoryConfig.cs @@ -0,0 +1,50 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Diagnosers; +using BenchmarkDotNet.Exporters; +using BenchmarkDotNet.Filters; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Runs benchmarks on NativeAOT 10 and 11 with the memory diagnoser. +/// +/// EventPipe cannot attach to a NativeAOT process built with the default settings, and a run keeps one set of +/// diagnosers, so these jobs run apart from . A benchmark type marked +/// [RequiresUnreferencedCode] or [RequiresDynamicCode] measures a reflection path that an ahead-of-time +/// publish cannot keep, so the filter leaves it out. The attributes are matched by name, because .NET Framework +/// builds see only the polyfill copies. +/// +public class NativeAotMemoryConfig : ManualConfig +{ + /// Initializes a new instance of the class. + public NativeAotMemoryConfig() + { + Add(DefaultConfig.Instance); + Add(new NativeAotBenchmarkConfig()); + _ = AddDiagnoser(MemoryDiagnoser.Default); + _ = AddColumn(CategoriesColumn.Default); + _ = AddExporter(MarkdownExporter.GitHub); + _ = AddFilter(new SimpleFilter(static benchmark => PublishesAheadOfTime(benchmark.Descriptor.Type))); + _ = WithOption(ConfigOptions.DontOverwriteResults, true); + } + + /// Gets a value indicating whether a benchmark type's code can publish ahead of time. + /// The benchmark type. + /// unless the type is marked as needing unreferenced or dynamic code. + private static bool PublishesAheadOfTime(Type type) + { + foreach (var attribute in type.GetCustomAttributesData()) + { + if (attribute.AttributeType.Name is "RequiresUnreferencedCodeAttribute" or "RequiresDynamicCodeAttribute") + { + return false; + } + } + + return true; + } +} diff --git a/src/benchmarks/Shared/Configs/ProfilerConfig.cs b/src/benchmarks/Shared/Configs/ProfilerConfig.cs new file mode 100644 index 00000000..9bab7b95 --- /dev/null +++ b/src/benchmarks/Shared/Configs/ProfilerConfig.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Diagnostics.Tracing; +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Diagnosers; +using Microsoft.Diagnostics.NETCore.Client; +using Microsoft.Diagnostics.Tracing.Parsers; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// The settings every .NET run shares: the memory diagnoser, and an EventPipe trace of CPU samples and verbose GC events. +/// +/// Benchmark classes carry no configuration attributes; each host passes the config for its run. A config keeps one +/// EventPipe profiler, and the CPU and GC profiles both enable the runtime provider. So the sample profiler is added +/// beside the GC profile, and the runtime provider carries the keywords of both. +/// +public class ProfilerConfig : ManualConfig +{ + /// The provider that samples CPU stacks. + private const string SampleProfilerProviderName = "Microsoft-DotNETCore-SampleProfiler"; + + /// The runtime keywords of both profiles: the CPU profile's defaults, which include GC and exceptions, plus GC handles. + private const ClrTraceEventParser.Keywords RuntimeKeywords = + ClrTraceEventParser.Keywords.Default | ClrTraceEventParser.Keywords.GCHandle; + + /// Initializes a new instance of the class. + public ProfilerConfig() + { + Add(DefaultConfig.Instance); + _ = AddDiagnoser(MemoryDiagnoser.Default); + _ = AddColumn(CategoriesColumn.Default); + + if (!BenchmarkProfiling.Enabled) + { + return; + } + + EventPipeProvider[] providers = + [ + new(SampleProfilerProviderName, EventLevel.Informational), + new(ClrTraceEventParser.ProviderName, EventLevel.Verbose, (long)RuntimeKeywords), + ]; + + _ = AddDiagnoser(new EventPipeProfiler(EventPipeProfile.GcVerbose, providers)); + } +} diff --git a/src/benchmarks/Shared/EventPipeAllocations.cs b/src/benchmarks/Shared/EventPipeAllocations.cs index 4f9c2438..cd4108cd 100644 --- a/src/benchmarks/Shared/EventPipeAllocations.cs +++ b/src/benchmarks/Shared/EventPipeAllocations.cs @@ -1,10 +1,11 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using System.Diagnostics.Tracing; using System.Globalization; using System.Text; +using BenchmarkDotNet.Loggers; using Microsoft.Diagnostics.NETCore.Client; using Microsoft.Diagnostics.Tracing; using Microsoft.Diagnostics.Tracing.Parsers; @@ -38,8 +39,9 @@ public static class EventPipeAllocations /// Traces each scenario and writes a markdown table of the allocations per operation. /// The scenarios to measure. /// The directory the traces and the table are written to. + /// Cancels the measurement. /// The table, also written to allocations.md in . - public static string Measure(IReadOnlyList scenarios, string outputDirectory) + public static async Task MeasureAsync(IReadOnlyList scenarios, string outputDirectory, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(scenarios); _ = Directory.CreateDirectory(outputDirectory); @@ -50,25 +52,26 @@ public static string Measure(IReadOnlyList scenarios, string foreach (var scenario in scenarios) { - var result = Measure(scenario, Path.Combine(outputDirectory, $"{scenario.Name}.nettrace")); + var result = await MeasureAsync(scenario, Path.Combine(outputDirectory, $"{scenario.Name}.nettrace"), cancellationToken).ConfigureAwait(false); _ = table.Append("| ").Append(scenario.Name) .Append(" | ").Append(scenario.Operations.ToString("N0", CultureInfo.InvariantCulture)) .Append(" | ").Append((result.Bytes / scenario.Operations).ToString("N0", CultureInfo.InvariantCulture)) .Append(" | ").Append(result.Ticks.ToString("N0", CultureInfo.InvariantCulture)) .AppendLine(" |"); - Console.WriteLine($"{scenario.Name}: {result.Bytes / scenario.Operations:N0} bytes/op ({result.Ticks:N0} ticks)"); + ConsoleLogger.Default.WriteLine(LogKind.Info, $"{scenario.Name}: {result.Bytes / scenario.Operations:N0} bytes/op ({result.Ticks:N0} ticks)"); } var text = table.ToString(); - File.WriteAllText(Path.Combine(outputDirectory, "allocations.md"), text); + await File.WriteAllTextAsync(Path.Combine(outputDirectory, "allocations.md"), text, cancellationToken).ConfigureAwait(false); return text; } /// Traces one scenario. /// The scenario. /// The file the trace is written to. + /// Cancels the measurement. /// The sampled bytes and the number of allocation ticks. - private static (long Bytes, long Ticks) Measure(AllocationScenario scenario, string tracePath) + private static async Task<(long Bytes, long Ticks)> MeasureAsync(AllocationScenario scenario, string tracePath, CancellationToken cancellationToken) { scenario.Setup(); var sink = 0L; @@ -77,19 +80,18 @@ private static (long Bytes, long Ticks) Measure(AllocationScenario scenario, str sink += scenario.Operation(); } - GC.Collect(); - GC.WaitForPendingFinalizers(); - GC.Collect(); - + // Allocation ticks count what the session allocates, so garbage left from the warm-up needs no collection first. var client = new DiagnosticsClient(Environment.ProcessId); EventPipeProvider[] providers = [new(ClrTraceEventParser.ProviderName, EventLevel.Verbose, (long)SessionKeywords)]; - using (var session = client.StartEventPipeSession(providers, requestRundown: true, circularBufferMB: 1024)) + using (var session = await client.StartEventPipeSessionAsync(providers, requestRundown: true, circularBufferMB: 1024, cancellationToken).ConfigureAwait(false)) { - var copy = Task.Run(() => - { - using var file = File.Create(tracePath); - session.EventStream.CopyTo(file); - }); + var copy = Task.Run( + async () => + { + await using var file = File.Create(tracePath); + await session.EventStream.CopyToAsync(file, cancellationToken).ConfigureAwait(false); + }, + cancellationToken); for (var i = 0; i < scenario.Operations; i++) { @@ -97,7 +99,7 @@ private static (long Bytes, long Ticks) Measure(AllocationScenario scenario, str } session.Stop(); - copy.Wait(); + await copy.ConfigureAwait(false); } GC.KeepAlive(sink); diff --git a/src/benchmarks/Shared/ObjFolderToolchain.cs b/src/benchmarks/Shared/ObjFolderToolchain.cs index a48b6c48..99ba9eab 100644 --- a/src/benchmarks/Shared/ObjFolderToolchain.cs +++ b/src/benchmarks/Shared/ObjFolderToolchain.cs @@ -1,5 +1,5 @@ -// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved. -// ReactiveUI Association Incorporated licenses this file to you under the MIT license. +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. using BenchmarkDotNet.Environments; diff --git a/src/benchmarks/Shared/Platforms/unix/BenchmarkHost.cs b/src/benchmarks/Shared/Platforms/unix/BenchmarkHost.cs new file mode 100644 index 00000000..2aee0e7e --- /dev/null +++ b/src/benchmarks/Shared/Platforms/unix/BenchmarkHost.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using BenchmarkDotNet.Running; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Runs the selected .NET 10 and 11 benchmarks with EventPipe. +public static class BenchmarkHost +{ + /// Runs the benchmarks the command line selects. + /// The assembly holding the benchmarks. + /// The command line arguments passed to the benchmark switcher. + public static void Run(Assembly assembly, string[] args) + { + var switcher = BenchmarkSwitcher.FromAssembly(assembly); + var count = BenchmarkRunValidation.CountVerified(switcher.Run(args, new BenchmarkConfig())); + count += BenchmarkRunValidation.CountVerified(switcher.Run(args, new NativeAotMemoryConfig())); + BenchmarkRunValidation.RequireMeasurements(count, args); + } +} diff --git a/src/benchmarks/Shared/Platforms/windows/BenchmarkHost.cs b/src/benchmarks/Shared/Platforms/windows/BenchmarkHost.cs new file mode 100644 index 00000000..635a859a --- /dev/null +++ b/src/benchmarks/Shared/Platforms/windows/BenchmarkHost.cs @@ -0,0 +1,24 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using BenchmarkDotNet.Running; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Runs the benchmarks on .NET with EventPipe, on .NET Framework with ETW, and on NativeAOT with the memory diagnoser. +public static class BenchmarkHost +{ + /// Runs the benchmarks the command line selects. + /// The assembly holding the benchmarks. + /// The command line arguments passed to the benchmark switcher. + public static void Run(Assembly assembly, string[] args) + { + var switcher = BenchmarkSwitcher.FromAssembly(assembly); + var count = BenchmarkRunValidation.CountVerified(switcher.Run(args, new BenchmarkConfig())); + count += BenchmarkRunValidation.CountVerified(switcher.Run(args, new NetFrameworkConfig())); + count += BenchmarkRunValidation.CountVerified(switcher.Run(args, new NativeAotMemoryConfig())); + BenchmarkRunValidation.RequireMeasurements(count, args); + } +} diff --git a/src/benchmarks/Shared/Platforms/windows/NetFrameworkConfig.cs b/src/benchmarks/Shared/Platforms/windows/NetFrameworkConfig.cs new file mode 100644 index 00000000..5ad54c60 --- /dev/null +++ b/src/benchmarks/Shared/Platforms/windows/NetFrameworkConfig.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Diagnosers; +using BenchmarkDotNet.Diagnostics.Windows; +using BenchmarkDotNet.Environments; +using BenchmarkDotNet.Exporters; +using BenchmarkDotNet.Jobs; + +namespace ReactiveUI.Binding.Benchmarks.Configs; + +/// Runs benchmarks on .NET Framework 4.6.2 with the memory diagnoser, traced with ETW. +/// EventPipe cannot attach to .NET Framework, and a run keeps one set of profilers, so this runs apart from . +public class NetFrameworkConfig : ManualConfig +{ + /// Initializes a new instance of the class. + public NetFrameworkConfig() + { + Add(DefaultConfig.Instance); + _ = AddJob(new Job(nameof(RuntimeMoniker.Net462)).WithRuntime(ClrRuntime.Net462)); + _ = AddDiagnoser(MemoryDiagnoser.Default); + _ = AddColumn(CategoriesColumn.Default); + _ = AddExporter(MarkdownExporter.GitHub); + _ = WithOption(ConfigOptions.DontOverwriteResults, true); + + if (BenchmarkProfiling.Enabled) + { + _ = AddDiagnoser(new EtwProfiler(new EtwProfilerConfig())); + } + } +} diff --git a/src/build/NoDeviceSelection.targets b/src/build/NoDeviceSelection.targets new file mode 100644 index 00000000..0b176aad --- /dev/null +++ b/src/build/NoDeviceSelection.targets @@ -0,0 +1,9 @@ + + + + false + + diff --git a/src/build/SkipMakePriOnNonWindows.targets b/src/build/SkipMakePriOnNonWindows.targets new file mode 100644 index 00000000..a3c4dc94 --- /dev/null +++ b/src/build/SkipMakePriOnNonWindows.targets @@ -0,0 +1,26 @@ + + + + false + false + + + + + false + + + + + + diff --git a/src/examples/.editorconfig b/src/examples/.editorconfig new file mode 100644 index 00000000..362e32e3 --- /dev/null +++ b/src/examples/.editorconfig @@ -0,0 +1,10 @@ +[*.cs] + +# Examples print their results to the console +dotnet_diagnostic.SST1449.severity = none + +# Examples may use LINQ where it reads better +dotnet_diagnostic.PSH1100.severity = none + +# Examples do not carry performance attributes +dotnet_diagnostic.PSH1410.severity = none diff --git a/src/examples/Directory.Build.props b/src/examples/Directory.Build.props new file mode 100644 index 00000000..f0325f74 --- /dev/null +++ b/src/examples/Directory.Build.props @@ -0,0 +1,12 @@ + + + + + false + false + + + + + + diff --git a/src/examples/Documentation/.editorconfig b/src/examples/Documentation/.editorconfig new file mode 100644 index 00000000..e6228552 --- /dev/null +++ b/src/examples/Documentation/.editorconfig @@ -0,0 +1,32 @@ +# This policy applies to the complete runnable documentation examples. +# All compiler, correctness, security, performance and remaining style rules are inherited. + +[*.cs] +# Explicit local types let readers understand a website block without following another method. +# Keep the style analyzer enabled and configure it to enforce explicit types in these samples only. +stylesharp.use_var = never +stylesharp.SST2271.use_var = never +csharp_style_var_for_built_in_types = false:suggestion +csharp_style_var_when_type_is_apparent = false:suggestion +csharp_style_var_elsewhere = false:suggestion + +# Readers learn from concrete values ("Ada", "print-preview", 10). Naming every literal as a constant only for +# the analyzer sends them scrolling away from the line they are reading. +dotnet_diagnostic.SST1486.severity = none +dotnet_diagnostic.SST1471.severity = none +# Samples show results as comments beside the line that produces them, which can look like commented-out code. +dotnet_diagnostic.SST1148.severity = none +# A sample's own "throw if the result is wrong" check is not part of an API contract that needs docs. +dotnet_diagnostic.SST1662.severity = none + +# Samples name the type they create ("new Person(1, \"Ada\")") so a reader never has to work out what "new(...)" builds. +dotnet_diagnostic.SST2202.severity = none +dotnet_diagnostic.IDE0090.severity = none +# One initializer entry per line, with braces on their own lines, reads better in samples than one long line. +dotnet_diagnostic.SST1531.severity = none +# Samples call methods for their effect and ignore the value, as readers do; "_ =" discards only add noise here. +dotnet_diagnostic.SST2221.severity = none +dotnet_diagnostic.IDE0058.severity = none +dotnet_diagnostic.CA1806.severity = none +# [MethodImpl(AggressiveInlining)] on small sample helpers is performance tuning that distracts from what they show. +dotnet_diagnostic.PSH1410.severity = none diff --git a/src/examples/Documentation/Common/Banking/Account.cs b/src/examples/Documentation/Common/Banking/Account.cs new file mode 100644 index 00000000..b2697cbe --- /dev/null +++ b/src/examples/Documentation/Common/Banking/Account.cs @@ -0,0 +1,77 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// A bank account. Each property raises PropertyChanged, and changes with . +[System.Diagnostics.DebuggerDisplay("Account: {Id} {Name}: {Balance} {Currency}")] +public sealed class Account : ObservableObject +{ + /// Gets or sets the number that identifies the account, such as ACC-1001. + public string Id + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the name the customer gave the account. + public string Name + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the kind of the account. + public AccountKind Kind + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the code of the currency the account holds, such as AUD. + public string Currency + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the money in the account. It is negative while the account is overdrawn. + public decimal Balance + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + RaisePropertyChanged(nameof(AvailableBalance)); + } + } + + /// Gets or sets how far below zero the balance may go, or when the account cannot be overdrawn. + public decimal? OverdraftLimit + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + RaisePropertyChanged(nameof(AvailableBalance)); + } + } + + /// Gets the money the customer can spend: the balance plus the overdraft limit. + public decimal AvailableBalance => Balance + (OverdraftLimit ?? 0); + + /// Creates an independent copy, as the backend returns a new object for each response. + /// A copy with the same values. + public Account Clone() => new() { Id = Id, Name = Name, Kind = Kind, Currency = Currency, Balance = Balance, OverdraftLimit = OverdraftLimit }; +} diff --git a/src/examples/Documentation/Common/Banking/AccountKind.cs b/src/examples/Documentation/Common/Banking/AccountKind.cs new file mode 100644 index 00000000..891f627c --- /dev/null +++ b/src/examples/Documentation/Common/Banking/AccountKind.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// The kind of a bank account. +public enum AccountKind +{ + /// An account for daily spending. + Everyday = 0, + + /// An account that earns interest. + Savings = 1, +} diff --git a/src/examples/Documentation/Common/Banking/AccountsView.cs b/src/examples/Documentation/Common/Banking/AccountsView.cs new file mode 100644 index 00000000..25f933a4 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/AccountsView.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// +/// The accounts screen: the accounts, the balance of the selected account and its transactions. A real UI framework +/// builds these controls from markup; here the view creates them in code. +/// +[System.Diagnostics.DebuggerDisplay("AccountsView: ViewModel = {ViewModel}")] +public sealed class AccountsView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public AccountsViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the list of accounts. + public CollectionView AccountList { get; } = new(); + + /// Gets the list of transactions of the selected account. + public CollectionView TransactionList { get; } = new(); + + /// Gets the button that loads the transactions of the selected account. + public Button LoadTransactionsButton { get; } = new() { Text = "Show transactions" }; + + /// Gets the button that loads the accounts again. + public Button RefreshButton { get; } = new() { Text = "Refresh" }; + + /// Gets the label that shows the balance of the selected account. + public Label BalanceLabel { get; } = new(); + + /// Gets the label that shows the money the customer can spend from the selected account. + public Label AvailableBalanceLabel { get; } = new(); + + /// Gets the label that shows the combined balance of all accounts. + public Label TotalBalanceLabel { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (AccountsViewModel?)value; + } +} diff --git a/src/examples/Documentation/Common/Banking/AccountsViewModel.cs b/src/examples/Documentation/Common/Banking/AccountsViewModel.cs new file mode 100644 index 00000000..9e3c59f4 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/AccountsViewModel.cs @@ -0,0 +1,116 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// +/// The view model behind the accounts screen. It lists the accounts and the transactions of the selected account. +/// Each command starts the matching method and returns; await the method itself to wait for its work. A refused +/// request never throws from a method. It sets . +/// +[System.Diagnostics.DebuggerDisplay("AccountsViewModel: Account = {SelectedAccount}, TotalBalance = {TotalBalance}")] +public sealed class AccountsViewModel : ObservableObject +{ + /// The backend the view model calls. + private readonly IBankingBackend _backend; + + /// Initializes a new instance of the class. + /// The backend to call. + public AccountsViewModel(IBankingBackend backend) + { + _backend = backend; + LoadAccountsCommand = new(() => _ = LoadAccountsAsync()); + LoadTransactionsCommand = new(() => _ = LoadTransactionsAsync(), () => SelectedAccount is not null); + } + + /// Gets the command that runs . + public Command LoadAccountsCommand { get; } + + /// Gets the command that runs ; it runs only while an account is selected. + public Command LoadTransactionsCommand { get; } + + /// Gets the accounts of the customer. + public IReadOnlyList Accounts + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the account the customer picked. A path such as SelectedAccount.Balance is empty while no account is picked. + public Account? SelectedAccount + { + get; + set + { + if (SetProperty(ref field, value)) + { + LoadTransactionsCommand.ChangeCanExecute(); + } + } + } + + /// Gets the transactions of , newest first. + public IReadOnlyList Transactions + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets the combined balance of . + public decimal TotalBalance + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last refused request, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Loads the accounts and keeps the selected account when it still exists. + /// A task that completes when the accounts are loaded or the request was refused. + public async Task LoadAccountsAsync() + { + try + { + IReadOnlyList accounts = await _backend.GetAccountsAsync().ConfigureAwait(false); + string? selectedId = SelectedAccount?.Id; + + ErrorMessage = string.Empty; + Accounts = accounts; + SelectedAccount = accounts.FirstOrDefault(account => account.Id == selectedId); + TotalBalance = accounts.Sum(static account => account.Balance); + } + catch (BankingException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } + + /// Loads the transactions of the selected account. + /// A task that completes when the transactions are loaded or the request was refused. + public async Task LoadTransactionsAsync() + { + if (SelectedAccount is not { } account) + { + return; + } + + try + { + Transactions = await _backend.GetTransactionsAsync(account.Id).ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (BankingException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } +} diff --git a/src/examples/Documentation/Common/Banking/BankingException.cs b/src/examples/Documentation/Common/Banking/BankingException.cs new file mode 100644 index 00000000..1893128f --- /dev/null +++ b/src/examples/Documentation/Common/Banking/BankingException.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// Reports that the core banking backend refused a request. +[System.Diagnostics.DebuggerDisplay("BankingException: Failure = {Failure}, Message = {Message}")] +public sealed class BankingException : Exception +{ + /// Initializes a new instance of the class. + public BankingException() + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + public BankingException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + /// The failure that caused this one. + public BankingException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// Initializes a new instance of the class. + /// Why the backend refused the request. + /// What went wrong. + public BankingException(BankingFailure failure, string message) + : base(message) => Failure = failure; + + /// Gets why the backend refused the request. + public BankingFailure Failure { get; } +} diff --git a/src/examples/Documentation/Common/Banking/BankingFailure.cs b/src/examples/Documentation/Common/Banking/BankingFailure.cs new file mode 100644 index 00000000..7b6a252c --- /dev/null +++ b/src/examples/Documentation/Common/Banking/BankingFailure.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// Why the core banking backend refused a request. +public enum BankingFailure +{ + /// The source account cannot cover the amount. + InsufficientFunds = 0, + + /// The transfers of the day would pass the daily limit. + DailyLimitExceeded = 1, + + /// The amount is above the limit the customer set for the payee. + PayeeLimitExceeded = 2, + + /// The bank holds the transfer for a fraud review. + FraudHold = 3, + + /// The transfer needs a one-time approval code. + ApprovalRequired = 4, + + /// The approval code is wrong. + InvalidApprovalCode = 5, + + /// The source account does not exist. + UnknownAccount = 6, + + /// The payee does not exist. + UnknownPayee = 7, + + /// The amount is zero or negative. + InvalidAmount = 8, + + /// The backend is down. + ServiceUnavailable = 9, +} diff --git a/src/examples/Documentation/Common/Banking/IBankingBackend.cs b/src/examples/Documentation/Common/Banking/IBankingBackend.cs new file mode 100644 index 00000000..b3ca486d --- /dev/null +++ b/src/examples/Documentation/Common/Banking/IBankingBackend.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// The part of a core banking backend that the example app calls. Every call is asynchronous, as a call to a real backend is. +public interface IBankingBackend +{ + /// Lists the accounts of the customer. + /// Copies of the accounts, by identifier. + /// The backend is down. + Task> GetAccountsAsync(); + + /// Lists the transactions of an account. + /// The identifier of the account. + /// The transactions, newest first. + /// The account does not exist or the backend is down. + Task> GetTransactionsAsync(string accountId); + + /// Lists the payees the customer can send money to. + /// The payees, by name. + /// The backend is down. + Task> GetPayeesAsync(); + + /// Checks a transfer against the rules of the bank without making it. + /// The transfer to check. + /// The rules the transfer breaks. + /// The account or payee does not exist or the backend is down. + Task ValidateTransferAsync(TransferRequest request); + + /// Makes a transfer. + /// The transfer to make. + /// The receipt for the transfer. + /// The transfer breaks a rule, the bank holds it for a fraud review, it needs an approval code, or the backend is down. + Task SubmitTransferAsync(TransferRequest request); + + /// Makes a transfer that needs a one-time approval code. + /// The transfer to make. + /// The code the customer received. + /// The receipt for the transfer. + /// The code is wrong, the transfer breaks a rule, the bank holds it for a fraud review, or the backend is down. + Task SubmitTransferAsync(TransferRequest request, string approvalCode); +} diff --git a/src/examples/Documentation/Common/Banking/InMemoryBankingBackend.cs b/src/examples/Documentation/Common/Banking/InMemoryBankingBackend.cs new file mode 100644 index 00000000..0989217b --- /dev/null +++ b/src/examples/Documentation/Common/Banking/InMemoryBankingBackend.cs @@ -0,0 +1,288 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Globalization; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// +/// A core banking backend that lives in memory. It checks a transfer against the balance of the account, the limit +/// of the payee and the limit of the day. It holds a transfer to a flagged payee for a fraud review, and it asks for +/// a one-time approval code from upwards. Its time is , which +/// starts at 09:00 UTC on Tuesday 3 March 2026 and stamps transactions and starts each day's limit. Each call +/// takes to answer. It hands out copies, so changing an account you read does not change the +/// bank until you make a transfer. +/// +[System.Diagnostics.DebuggerDisplay("InMemoryBankingBackend: DailyLimit = {DailyLimit}, IsUnavailable = {IsUnavailable}")] +public sealed class InMemoryBankingBackend : IBankingBackend +{ + /// The currency of every account. + private const string Aud = "AUD"; + + /// The account number of the payee the bank holds transfers to. + private const string FlaggedAccountNumber = "033-112 9004 5511"; + + /// The accounts a new backend starts with. + private static readonly Account[] _seedAccounts = + [ + new() { Id = "ACC-1001", Name = "Everyday Account", Kind = AccountKind.Everyday, Currency = Aud, Balance = 2450.75M, OverdraftLimit = 500M }, + new() { Id = "ACC-2002", Name = "Savings Account", Kind = AccountKind.Savings, Currency = Aud, Balance = 15230.00M }, + ]; + + /// The payees a new backend starts with. The last one is flagged for fraud review. + private static readonly Payee[] _seedPayees = + [ + new(1, "City Power and Water", "062-000 4455 1122", null), + new(2, "Sam Whitfield (rent)", "083-004 7781 2290", 1500M), + new(3, "Northwind Traders", FlaggedAccountNumber, null), + ]; + + /// The transactions a new backend starts with, newest first. + private static readonly Transaction[] _seedTransactions = + [ + new(4, "ACC-1001", new DateTimeOffset(2026, 3, 2, 23, 10, 0, TimeSpan.Zero), "Coles Supermarket", -86.40M, 2450.75M), + new(3, "ACC-1001", new DateTimeOffset(2026, 3, 1, 9, 0, 0, TimeSpan.Zero), "Rent to Sam Whitfield", -1200.00M, 2537.15M), + new(2, "ACC-1001", new DateTimeOffset(2026, 2, 27, 0, 0, 0, TimeSpan.Zero), "Salary from Acme Pty Ltd", 3200.00M, 3737.15M), + new(1, "ACC-1001", new DateTimeOffset(2026, 2, 24, 5, 30, 0, TimeSpan.Zero), "Energex electricity", -142.30M, 537.15M), + ]; + + /// The stored accounts, copies of the seed so each backend changes its own. + private readonly List _accounts = CopySeedAccounts(); + + /// The stored transactions, newest first. + private readonly List _transactions = [.. _seedTransactions]; + + /// The money sent on each day, by day. + private readonly Dictionary _sentByDay = []; + + /// The number of the last receipt. + private int _receipts; + + /// Gets the one-time code that approves a large transfer. + public static string ApprovalCode { get; } = "482913"; + + /// Gets or sets how long each call takes to answer. Zero answers on the next turn of the scheduler. + public TimeSpan Latency { get; set; } + + /// Gets or sets the time the backend reports. It stamps transactions and receipts and decides which day a transfer counts against. + public DateTimeOffset Now { get; set; } = new(2026, 3, 3, 9, 0, 0, TimeSpan.Zero); + + /// Gets or sets a value indicating whether every call fails with . + public bool IsUnavailable { get; set; } + + /// Gets or sets the most the customer can send in one day. + public decimal DailyLimit { get; set; } = 5000M; + + /// Gets or sets the amount from which a transfer needs an approval code. + public decimal ApprovalThreshold { get; set; } = 1000M; + + /// + public async Task> GetAccountsAsync() + { + await EnterAsync().ConfigureAwait(false); + + List accounts = []; + foreach (Account account in _accounts) + { + accounts.Add(account.Clone()); + } + + return accounts; + } + + /// + public async Task> GetTransactionsAsync(string accountId) + { + await EnterAsync().ConfigureAwait(false); + + _ = FindAccount(accountId); + List transactions = []; + foreach (Transaction transaction in _transactions) + { + if (transaction.AccountId == accountId) + { + transactions.Add(transaction); + } + } + + return transactions; + } + + /// + public async Task> GetPayeesAsync() + { + await EnterAsync().ConfigureAwait(false); + + return _seedPayees.ToList(); + } + + /// + public async Task ValidateTransferAsync(TransferRequest request) + { + await EnterAsync().ConfigureAwait(false); + + List errors = []; + foreach (var (_, message) in Violations(request)) + { + errors.Add(message); + } + + return new(errors); + } + + /// + public Task SubmitTransferAsync(TransferRequest request) => SubmitAsync(request, null); + + /// + public Task SubmitTransferAsync(TransferRequest request, string approvalCode) => SubmitAsync(request, approvalCode); + + /// Copies the accounts a new backend starts with. + /// Independent copies of the seed accounts. + private static List CopySeedAccounts() + { + List accounts = []; + foreach (Account account in _seedAccounts) + { + accounts.Add(account.Clone()); + } + + return accounts; + } + + /// Finds a payee. + /// The identifier of the payee. + /// The payee. + /// The payee does not exist. + private static Payee FindPayee(int payeeId) + { + foreach (Payee payee in _seedPayees) + { + if (payee.Id == payeeId) + { + return payee; + } + } + + throw new BankingException(BankingFailure.UnknownPayee, $"There is no payee {payeeId}."); + } + + /// Makes a transfer after the checks of the bank. + /// The transfer to make. + /// The code the customer entered, or when the customer has not been asked. + /// The receipt for the transfer. + /// The transfer breaks a rule, the bank holds it for a fraud review, it needs an approval code, or the code is wrong. + private async Task SubmitAsync(TransferRequest request, string? approvalCode) + { + await EnterAsync().ConfigureAwait(false); + + List<(BankingFailure Failure, string Message)> violations = Violations(request); + if (violations.Count > 0) + { + throw new BankingException(violations[0].Failure, violations[0].Message); + } + + Payee payee = FindPayee(request.PayeeId); + if (payee.AccountNumber == FlaggedAccountNumber) + { + throw new BankingException(BankingFailure.FraudHold, $"The transfer to {payee.Name} is held for a fraud review."); + } + + if (request.Amount >= ApprovalThreshold) + { + RequireApproval(approvalCode); + } + + Account account = FindAccount(request.SourceAccountId); + DateOnly day = DateOnly.FromDateTime(Now.UtcDateTime); + account.Balance -= request.Amount; + _sentByDay[day] = SentOn(day) + request.Amount; + _transactions.Insert(0, new(_transactions.Count + 1, account.Id, Now, $"Transfer to {payee.Name}", -request.Amount, account.Balance)); + _receipts++; + return new($"RCPT-{_receipts.ToString("D6", CultureInfo.InvariantCulture)}", request.Amount, account.Balance, Now); + } + + /// Waits for , then fails when the backend is unavailable. + /// A task that completes when the call may proceed. + /// The backend is unavailable. + private async Task EnterAsync() + { + if (Latency == TimeSpan.Zero) + { + await Task.Yield(); + } + else + { + await Task.Delay(Latency).ConfigureAwait(false); + } + + if (IsUnavailable) + { + throw new BankingException(BankingFailure.ServiceUnavailable, "The banking service is unavailable."); + } + } + + /// Checks the approval code of a large transfer. + /// The code the customer entered, or when the customer has not been asked. + /// The code is missing or wrong. + private void RequireApproval(string? approvalCode) + { + if (approvalCode is null) + { + throw new BankingException(BankingFailure.ApprovalRequired, $"A transfer of {ApprovalThreshold} or more needs an approval code."); + } + + if (approvalCode != ApprovalCode) + { + throw new BankingException(BankingFailure.InvalidApprovalCode, "The approval code is not correct."); + } + } + + /// Finds every rule a transfer breaks. + /// The transfer to check. + /// The broken rules, in the order the bank checks them. + /// The account or payee does not exist. + private List<(BankingFailure Failure, string Message)> Violations(TransferRequest request) + { + Account account = FindAccount(request.SourceAccountId); + Payee payee = FindPayee(request.PayeeId); + List<(BankingFailure, string)> violations = []; + + if (request.Amount <= 0) + { + violations.Add((BankingFailure.InvalidAmount, "The amount must be more than zero.")); + return violations; + } + + if (payee.TransferLimit is { } limit && request.Amount > limit) + { + violations.Add((BankingFailure.PayeeLimitExceeded, $"The limit for {payee.Name} is {limit}.")); + } + + if (request.Amount > account.AvailableBalance) + { + violations.Add((BankingFailure.InsufficientFunds, $"{account.Name} has {account.AvailableBalance} available.")); + } + + DateOnly day = DateOnly.FromDateTime(Now.UtcDateTime); + if (SentOn(day) + request.Amount > DailyLimit) + { + violations.Add((BankingFailure.DailyLimitExceeded, $"The daily limit is {DailyLimit}.")); + } + + return violations; + } + + /// Adds up the money sent on a day. + /// The day. + /// The money sent, or 0 when nothing was sent. + private decimal SentOn(DateOnly day) => _sentByDay.GetValueOrDefault(day); + + /// Finds an account. + /// The identifier of the account. + /// The stored account. + /// The account does not exist. + private Account FindAccount(string accountId) => + _accounts.Find(account => account.Id == accountId) + ?? throw new BankingException(BankingFailure.UnknownAccount, $"There is no account {accountId}."); +} diff --git a/src/examples/Documentation/Common/Banking/Payee.cs b/src/examples/Documentation/Common/Banking/Payee.cs new file mode 100644 index 00000000..35527a21 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/Payee.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// A person or business the customer sends money to. +/// The number that identifies the payee. +/// The name of the payee. +/// The account that receives the money. +/// The most the customer allows in one transfer to this payee, or when there is no limit. +[System.Diagnostics.DebuggerDisplay("Payee: {Name}")] +public sealed record Payee(int Id, string Name, string AccountNumber, decimal? TransferLimit); diff --git a/src/examples/Documentation/Common/Banking/Transaction.cs b/src/examples/Documentation/Common/Banking/Transaction.cs new file mode 100644 index 00000000..7798d208 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/Transaction.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// A line on an account statement. +/// The number that identifies the transaction. +/// The account the transaction belongs to. +/// When the bank posted the transaction. +/// What the transaction was for. +/// The money moved. It is negative when money leaves the account. +/// The balance of the account after the transaction. +[System.Diagnostics.DebuggerDisplay("Transaction: {Description}: {Amount}")] +public sealed record Transaction(int Id, string AccountId, DateTimeOffset PostedAt, string Description, decimal Amount, decimal BalanceAfter); diff --git a/src/examples/Documentation/Common/Banking/TransferDraft.cs b/src/examples/Documentation/Common/Banking/TransferDraft.cs new file mode 100644 index 00000000..c74e2bf2 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferDraft.cs @@ -0,0 +1,40 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// The transfer the customer is filling in. Each property raises PropertyChanged. +[System.Diagnostics.DebuggerDisplay("TransferDraft: {Amount} to {Payee}")] +public sealed class TransferDraft : ObservableObject +{ + /// Gets or sets the account the money leaves. + public Account? Source + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the payee the money goes to. + public Payee? Payee + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the amount to send, in the currency of the source account. + public decimal Amount + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the text that appears on the payee's statement. + public string Reference + { + get; + set => SetProperty(ref field, value); + } = string.Empty; +} diff --git a/src/examples/Documentation/Common/Banking/TransferReceipt.cs b/src/examples/Documentation/Common/Banking/TransferReceipt.cs new file mode 100644 index 00000000..c7c8d36a --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferReceipt.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// The proof that the bank made a transfer. +/// The number that identifies the transfer. +/// The amount sent. +/// The balance of the source account after the transfer. +/// When the bank made the transfer. +[System.Diagnostics.DebuggerDisplay("TransferReceipt: {ReceiptNumber}: {Amount}")] +public sealed record TransferReceipt(string ReceiptNumber, decimal Amount, decimal NewBalance, DateTimeOffset CompletedAt); diff --git a/src/examples/Documentation/Common/Banking/TransferRequest.cs b/src/examples/Documentation/Common/Banking/TransferRequest.cs new file mode 100644 index 00000000..456a110b --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferRequest.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// A transfer as the backend receives it. +/// The account the money leaves. +/// The payee the money goes to. +/// The amount to send. +/// The text that appears on the payee's statement. +[System.Diagnostics.DebuggerDisplay("TransferRequest: {Amount} from {SourceAccountId} to payee {PayeeId}")] +public sealed record TransferRequest(string SourceAccountId, int PayeeId, decimal Amount, string Reference); diff --git a/src/examples/Documentation/Common/Banking/TransferValidation.cs b/src/examples/Documentation/Common/Banking/TransferValidation.cs new file mode 100644 index 00000000..ad4a3446 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferValidation.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// What the backend found when it checked a transfer without making it. +/// The rules the transfer breaks; empty when the bank would accept it. +[System.Diagnostics.DebuggerDisplay("TransferValidation: Errors = {Errors.Count}")] +public sealed record TransferValidation(IReadOnlyList Errors) +{ + /// Gets a value indicating whether the transfer breaks no rule. + public bool IsValid => Errors.Count == 0; +} diff --git a/src/examples/Documentation/Common/Banking/TransferView.cs b/src/examples/Documentation/Common/Banking/TransferView.cs new file mode 100644 index 00000000..604de3f7 --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferView.cs @@ -0,0 +1,54 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// +/// The transfer screen: the account and payee pickers, the amount and reference boxes, and the send button. A real +/// UI framework builds these controls from markup; here the view creates them in code. +/// +[System.Diagnostics.DebuggerDisplay("TransferView: ViewModel = {ViewModel}")] +public sealed class TransferView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public TransferViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the list of accounts the money can leave. + public CollectionView SourceList { get; } = new(); + + /// Gets the list of payees. + public CollectionView PayeeList { get; } = new(); + + /// Gets the box where the customer types the amount. + public Entry AmountTextBox { get; } = new() { Placeholder = "0.00" }; + + /// Gets the box where the customer types the reference. + public Entry ReferenceTextBox { get; } = new() { Placeholder = "Reference" }; + + /// Gets the button that sends the transfer. + public Button TransferButton { get; } = new() { Text = "Send" }; + + /// Gets the label that shows what is wrong with the draft. + public Label ValidationLabel { get; } = new(); + + /// Gets the label that shows the receipt of the last transfer. + public Label ReceiptLabel { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (TransferViewModel?)value; + } +} diff --git a/src/examples/Documentation/Common/Banking/TransferViewModel.cs b/src/examples/Documentation/Common/Banking/TransferViewModel.cs new file mode 100644 index 00000000..e61718df --- /dev/null +++ b/src/examples/Documentation/Common/Banking/TransferViewModel.cs @@ -0,0 +1,215 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Banking; + +/// +/// The view model behind the transfer screen. It checks the draft as the customer edits it, and its +/// asks the view for a confirmation, sends the transfer and, when the bank asks for +/// one, asks the view for an approval code. Each command starts the matching method and returns; await the method +/// itself to wait for its work. A refused request never throws from a method. It sets . +/// +[System.Diagnostics.DebuggerDisplay("TransferViewModel: Draft = {Draft}, IsValid = {IsValid}")] +public sealed class TransferViewModel : ObservableObject +{ + /// The separator between the messages of . + private const string MessageSeparator = " "; + + /// The backend the view model calls. + private readonly IBankingBackend _backend; + + /// Initializes a new instance of the class. + /// The backend to call. + public TransferViewModel(IBankingBackend backend) + { + _backend = backend; + LoadCommand = new(() => _ = LoadAsync()); + TransferCommand = new(() => _ = TransferAsync(), () => IsValid); + Draft.PropertyChanged += OnDraftChanged; + Validate(); + } + + /// Gets the question the view answers before a transfer is sent. The input is the draft; the answer is to send it. + public Interaction ConfirmTransfer { get; } = new(); + + /// Gets the question the view answers when the bank wants a one-time code. The input is the draft; the answer is the code, or an empty string to cancel the transfer. + public Interaction ApproveTransfer { get; } = new(); + + /// Gets the command that runs . + public Command LoadCommand { get; } + + /// Gets the command that runs ; it runs only while is . + public Command TransferCommand { get; } + + /// Gets the transfer the customer is filling in. + public TransferDraft Draft { get; } = new(); + + /// Gets the accounts the money can leave. + public IReadOnlyList Accounts + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets the payees the money can go to. + public IReadOnlyList Payees + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets a value indicating whether the draft breaks none of the rules the view model can check without the bank. + public bool IsValid + { + get; + private set + { + if (SetProperty(ref field, value)) + { + TransferCommand.ChangeCanExecute(); + } + } + } + + /// Gets the rules the draft breaks, one message each. + public IReadOnlyList ValidationErrors + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets the messages of as one line, or an empty string. + public string ValidationSummary + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets the receipt of the last transfer, or before the first transfer. + public TransferReceipt? LastReceipt + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last refused request, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Loads the accounts and the payees. + /// A task that completes when both are loaded or the request was refused. + public async Task LoadAsync() + { + try + { + Accounts = await _backend.GetAccountsAsync().ConfigureAwait(false); + Payees = await _backend.GetPayeesAsync().ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (BankingException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } + + /// Confirms and sends the draft, asking for an approval code when the bank wants one. + /// A task that completes when the transfer is sent, the customer cancelled or the request was refused. + public async Task TransferAsync() + { + if (Draft.Source is not { } source || Draft.Payee is not { } payee) + { + return; + } + + if (!await ConfirmTransfer.Handle(Draft).ConfigureAwait(false)) + { + return; + } + + TransferRequest request = new(source.Id, payee.Id, Draft.Amount, Draft.Reference); + + try + { + TransferReceipt? receipt = await SendAsync(request).ConfigureAwait(false); + if (receipt is null) + { + ErrorMessage = "The transfer was cancelled."; + return; + } + + LastReceipt = receipt; + ErrorMessage = string.Empty; + source.Balance = receipt.NewBalance; + Draft.Amount = 0; + Draft.Reference = string.Empty; + } + catch (BankingException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } + + /// Sends a transfer, and sends it again with an approval code when the bank asks for one. + /// The transfer to send. + /// The receipt, or when the customer declined to enter a code. + /// The bank refused the transfer. + private async Task SendAsync(TransferRequest request) + { + try + { + return await _backend.SubmitTransferAsync(request).ConfigureAwait(false); + } + catch (BankingException ex) when (ex.Failure == BankingFailure.ApprovalRequired) + { + string code = await ApproveTransfer.Handle(Draft).ConfigureAwait(false); + return code.Length == 0 ? null : await _backend.SubmitTransferAsync(request, code).ConfigureAwait(false); + } + } + + /// Checks the draft again when one of its properties changes. + /// The draft. + /// The event data. + private void OnDraftChanged(object? sender, PropertyChangedEventArgs e) => Validate(); + + /// Checks the draft against the rules the view model can check without the bank. + private void Validate() + { + List errors = []; + + if (Draft.Source is null) + { + errors.Add("Choose the account to pay from."); + } + + if (Draft.Payee is null) + { + errors.Add("Choose who to pay."); + } + + if (Draft.Amount <= 0) + { + errors.Add("Enter an amount above zero."); + } + else if (Draft.Source is { } source && Draft.Amount > source.AvailableBalance) + { + errors.Add($"{source.Name} has {source.AvailableBalance} available."); + } + + if (Draft.Payee is { TransferLimit: { } limit } payee && Draft.Amount > limit) + { + errors.Add($"The limit for {payee.Name} is {limit}."); + } + + ValidationErrors = errors; + ValidationSummary = string.Join(MessageSeparator, errors); + IsValid = errors.Count == 0; + } +} diff --git a/src/examples/Documentation/Common/CloudStorage/Bucket.cs b/src/examples/Documentation/Common/CloudStorage/Bucket.cs new file mode 100644 index 00000000..72a45f8e --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/Bucket.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// A named container of objects in the storage service. +/// The name of the bucket, unique across the service. +/// The region that stores the bucket, such as ap-southeast-2. +/// When the bucket was created. +[System.Diagnostics.DebuggerDisplay("Bucket: {Name} ({Region})")] +public sealed record Bucket(string Name, string Region, DateTimeOffset CreatedAt); diff --git a/src/examples/Documentation/Common/CloudStorage/ConnectionState.cs b/src/examples/Documentation/Common/CloudStorage/ConnectionState.cs new file mode 100644 index 00000000..92131faa --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/ConnectionState.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// The state of the link to the storage service. +public enum ConnectionState +{ + /// There is no link, and requests fail. + Disconnected = 0, + + /// The link is being opened. + Connecting = 1, + + /// The link is open. + Connected = 2, +} diff --git a/src/examples/Documentation/Common/CloudStorage/IObjectStorage.cs b/src/examples/Documentation/Common/CloudStorage/IObjectStorage.cs new file mode 100644 index 00000000..5481d538 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/IObjectStorage.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// The part of an S3-style object storage service that the example app calls. +public interface IObjectStorage +{ + /// Gets the link to the service. + StorageConnection Connection { get; } + + /// Opens the link. moves to and then to . + /// A task that completes when the link is open. + Task ConnectAsync(); + + /// Lists the buckets of the account. + /// The buckets, by name. + /// The service throttles the request () or the link is down (). + Task> ListBucketsAsync(); + + /// Lists the objects of a bucket whose key starts with a prefix. + /// The name of the bucket. + /// The start of the keys to list; empty lists everything. + /// Copies of the objects, by key. + /// The bucket does not exist, the service throttles the request or the link is down. + Task> ListObjectsAsync(string bucket, string prefix); + + /// Uploads an object in parts. The object is stored once the sequence has been read to its end. + /// The name of the bucket. + /// The key to store the object under; an existing object with that key is replaced. + /// The size of the object in bytes. + /// The media type of the object. + /// A report after each part the service has received. + /// The bucket does not exist, the service throttles the request or the link is down. + IAsyncEnumerable UploadAsync(string bucket, string key, long sizeBytes, string contentType); + + /// Deletes an object. + /// The name of the bucket. + /// The key of the object. + /// A task that completes when the object is deleted. + /// The bucket or the object does not exist, the service throttles the request or the link is down. + Task DeleteAsync(string bucket, string key); +} diff --git a/src/examples/Documentation/Common/CloudStorage/InMemoryObjectStorage.cs b/src/examples/Documentation/Common/CloudStorage/InMemoryObjectStorage.cs new file mode 100644 index 00000000..45e278e7 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/InMemoryObjectStorage.cs @@ -0,0 +1,247 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Globalization; + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// +/// An S3-style storage service that lives in memory. makes every request, and every part of +/// an upload, take time, so an example decides how long each step lasts. and +/// make the service refuse requests. +/// +[System.Diagnostics.DebuggerDisplay("InMemoryObjectStorage: Connection = {Connection.State}, Throttled = {_throttled}")] +public sealed class InMemoryObjectStorage : IObjectStorage +{ + /// The size of one part of an upload, 4 MiB. + private const long PartSizeBytes = 4_194_304; + + /// The size of the launch banner, about 2.3 MiB. + private const long BannerSize = 2_411_724; + + /// The size of the offsite photo, about 5.3 MiB. + private const long OffsitePhotoSize = 5_562_368; + + /// The size of the warehouse photo, about 1.6 MiB. + private const long WarehousePhotoSize = 1_677_722; + + /// The size of the product tour video, about 148 MiB. + private const long ProductTourSize = 155_189_248; + + /// The size of the landing page, 12 KiB. + private const long LandingPageSize = 12_288; + + /// The size of a nightly database dump, about 96 MiB. + private const long DatabaseDumpSize = 100_663_296; + + /// The media type of a JPEG photo. + private const string JpegType = "image/jpeg"; + + /// The media type of a gzip archive. + private const string GzipType = "application/gzip"; + + /// The name of the bucket that holds the marketing files. + private const string MediaBucket = "acme-media"; + + /// The name of the bucket that holds the backups. + private const string BackupsBucket = "acme-backups"; + + /// The buckets of the account. + private readonly List _buckets = []; + + /// The objects of each bucket, by bucket name, ordered by key. + private readonly Dictionary> _objects = []; + + /// The number of following requests the service refuses. + private int _throttled; + + /// The number that makes each stored object's tag unique. + private int _version; + + /// Gets or sets how long each request, and each part of an upload, takes. Zero yields once and carries on. + public TimeSpan Latency { get; set; } + + /// + public StorageConnection Connection { get; } = new() { Endpoint = "https://s3.ap-southeast-2.storage.example", State = ConnectionState.Connected }; + + /// Creates a service with two buckets and seven objects, already connected. + /// A new service. + public static InMemoryObjectStorage CreateSeeded() + { + InMemoryObjectStorage storage = new(); + storage.AddBucket(MediaBucket, "ap-southeast-2", new(2025, 6, 12, 8, 30, 0, TimeSpan.Zero)); + storage.Seed(MediaBucket, "index.html", LandingPageSize, "text/html", new(2026, 1, 15, 10, 0, 0, TimeSpan.Zero)); + storage.Seed(MediaBucket, "photos/2025/warehouse.jpg", WarehousePhotoSize, JpegType, new(2025, 11, 20, 16, 45, 0, TimeSpan.Zero)); + storage.Seed(MediaBucket, "photos/2026/launch-banner.png", BannerSize, "image/png", new(2026, 2, 10, 9, 12, 0, TimeSpan.Zero)); + storage.Seed(MediaBucket, "photos/2026/team-offsite.jpg", OffsitePhotoSize, JpegType, new(2026, 2, 27, 18, 30, 0, TimeSpan.Zero)); + storage.Seed(MediaBucket, "videos/product-tour.mp4", ProductTourSize, "video/mp4", new(2026, 1, 30, 13, 5, 0, TimeSpan.Zero)); + storage.AddBucket(BackupsBucket, "us-east-1", new(2024, 9, 1, 0, 0, 0, TimeSpan.Zero)); + storage.Seed(BackupsBucket, "db/2026-03-01.sql.gz", DatabaseDumpSize, GzipType, new(2026, 3, 1, 2, 0, 0, TimeSpan.Zero)); + storage.Seed(BackupsBucket, "db/2026-03-02.sql.gz", DatabaseDumpSize, GzipType, new(2026, 3, 2, 2, 0, 0, TimeSpan.Zero)); + return storage; + } + + /// + public async Task ConnectAsync() + { + Connection.State = ConnectionState.Connecting; + await PauseAsync().ConfigureAwait(false); + Connection.State = ConnectionState.Connected; + } + + /// + public async Task> ListBucketsAsync() + { + await EnterAsync().ConfigureAwait(false); + + return _buckets.ToList(); + } + + /// + public async Task> ListObjectsAsync(string bucket, string prefix) + { + await EnterAsync().ConfigureAwait(false); + + List matches = []; + foreach (StorageObject stored in ObjectsOf(bucket)) + { + if (stored.Key.StartsWith(prefix, StringComparison.Ordinal)) + { + matches.Add(stored.Clone()); + } + } + + return matches; + } + + /// + public IAsyncEnumerable UploadAsync(string bucket, string key, long sizeBytes, string contentType) + { + ArgumentOutOfRangeException.ThrowIfNegativeOrZero(sizeBytes); + + return UploadPartsAsync(bucket, key, sizeBytes, contentType); + } + + /// + public async Task DeleteAsync(string bucket, string key) + { + await EnterAsync().ConfigureAwait(false); + + if (ObjectsOf(bucket).RemoveAll(existing => existing.Key == key) == 0) + { + throw new StorageException(StorageFailure.NoSuchKey, $"The key '{key}' does not exist in bucket '{bucket}'."); + } + } + + /// Makes the service refuse the next requests with . + /// How many requests to refuse. + public void ThrottleNext(int requests) => _throttled = requests; + + /// Drops the link. Requests fail with until completes. + public void Disconnect() => Connection.State = ConnectionState.Disconnected; + + /// Sends an object one part at a time, then stores it. + /// The name of the bucket. + /// The key to store the object under. + /// The size of the object in bytes. + /// The media type of the object. + /// A report after each part the service has received. + /// The bucket does not exist, the service throttles the request or the link is down. + private async IAsyncEnumerable UploadPartsAsync(string bucket, string key, long sizeBytes, string contentType) + { + await EnterAsync().ConfigureAwait(false); + + List stored = ObjectsOf(bucket); + long sent = 0; + while (sent < sizeBytes) + { + await PauseAsync().ConfigureAwait(false); + EnsureConnected(); + sent = Math.Min(sent + PartSizeBytes, sizeBytes); + yield return new(sent, sizeBytes); + } + + StorageObject uploaded = new() { Key = key, Size = sizeBytes, LastModified = new(2026, 3, 3, 9, 0, 0, TimeSpan.Zero), ContentType = contentType, ETag = NextETag() }; + + _ = stored.RemoveAll(existing => existing.Key == key); + stored.Add(uploaded); + stored.Sort(static (left, right) => string.CompareOrdinal(left.Key, right.Key)); + } + + /// Waits for , then refuses the request when the link is down or the service is throttling. + /// A task that completes when the request may proceed. + /// The link is down or the service is throttling. + private async Task EnterAsync() + { + await PauseAsync().ConfigureAwait(false); + EnsureConnected(); + + if (_throttled == 0) + { + return; + } + + _throttled--; + throw new StorageException(StorageFailure.SlowDown, "Please reduce your request rate."); + } + + /// Waits for , or yields once when it is zero. + /// A task that completes when the wait is over. + private async Task PauseAsync() + { + if (Latency == TimeSpan.Zero) + { + await Task.Yield(); + return; + } + + await Task.Delay(Latency).ConfigureAwait(false); + } + + /// Refuses the request when the link is down. + /// The link is down. + private void EnsureConnected() + { + if (Connection.State != ConnectionState.Connected) + { + throw new StorageException(StorageFailure.ConnectionLost, "The connection to the storage service was lost."); + } + } + + /// Finds the objects of a bucket. + /// The name of the bucket. + /// The stored objects, ordered by key. + /// The bucket does not exist. + private List ObjectsOf(string bucket) => + _objects.TryGetValue(bucket, out var stored) + ? stored + : throw new StorageException(StorageFailure.NoSuchBucket, $"The bucket '{bucket}' does not exist."); + + /// Creates the tag of the next stored object. + /// A tag that no other stored object has. + private string NextETag() + { + _version++; + return $"etag-{_version.ToString(CultureInfo.InvariantCulture)}"; + } + + /// Adds a bucket without waiting. + /// The name of the bucket. + /// The region of the bucket. + /// When the bucket was created. + private void AddBucket(string name, string region, DateTimeOffset createdAt) + { + _buckets.Add(new(name, region, createdAt)); + _objects[name] = []; + } + + /// Adds an object without waiting. + /// The name of the bucket. + /// The key of the object. + /// The size of the object in bytes. + /// The media type of the object. + /// When the object was written. + private void Seed(string bucket, string key, long size, string contentType, DateTimeOffset lastModified) => + _objects[bucket].Add(new() { Key = key, Size = size, LastModified = lastModified, ContentType = contentType, ETag = NextETag() }); +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageBrowserView.cs b/src/examples/Documentation/Common/CloudStorage/StorageBrowserView.cs new file mode 100644 index 00000000..1fe37c4c --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageBrowserView.cs @@ -0,0 +1,65 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// +/// The storage browser screen: a bucket list, a path box, an object list and an upload progress bar. A real UI +/// framework builds these controls from markup; here the view creates them in code. +/// +[System.Diagnostics.DebuggerDisplay("StorageBrowserView: ViewModel = {ViewModel}")] +public sealed class StorageBrowserView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public StorageBrowserViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the list of buckets. + public CollectionView BucketList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the box that holds the folder being listed. + public Entry PrefixTextBox { get; } = new() { Placeholder = "Folder" }; + + /// Gets the button that lists the objects again. + public Button RefreshButton { get; } = new() { Text = "Refresh" }; + + /// Gets the list of objects. + public CollectionView ObjectList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the button that uploads a file. + public Button UploadButton { get; } = new() { Text = "Upload" }; + + /// Gets the bar that shows how much of the running upload the service has received, from 0 to 1. + public ProgressBar UploadProgressBar { get; } = new(); + + /// Gets the label that shows the state of the link. + public Label ConnectionLabel { get; } = new(); + + /// Gets the button that reopens the link. + public Button ConnectButton { get; } = new() { Text = "Reconnect" }; + + /// Gets the label that shows the combined size of the listed objects. + public Label TotalSizeLabel { get; } = new(); + + /// Gets the label that shows the size of the selected object. + public Label SelectedSizeLabel { get; } = new(); + + /// Gets the label that shows the media type of the selected object. + public Label SelectedTypeLabel { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (StorageBrowserViewModel?)value; + } +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageBrowserViewModel.cs b/src/examples/Documentation/Common/CloudStorage/StorageBrowserViewModel.cs new file mode 100644 index 00000000..d3db19a4 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageBrowserViewModel.cs @@ -0,0 +1,222 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// +/// The view model behind the storage browser. It lists buckets and the objects under a prefix, uploads files +/// and follows the state of the link. Each command starts the matching ...Async method and returns; await +/// the method to wait for the work. A failed request never throws from either. It sets . +/// +[System.Diagnostics.DebuggerDisplay("StorageBrowserViewModel: Bucket = {SelectedBucket}, Objects = {Objects.Count}, UploadPercent = {UploadPercent}")] +public sealed class StorageBrowserViewModel : ObservableObject +{ + /// The value of when the upload is complete. + private const double FullPercent = 100; + + /// The service the view model calls. + private readonly IObjectStorage _storage; + + /// Initializes a new instance of the class. + /// The service to call. + public StorageBrowserViewModel(IObjectStorage storage) + { + _storage = storage; + LoadBucketsCommand = new(() => _ = LoadBucketsAsync()); + RefreshCommand = new(() => _ = LoadObjectsAsync(), () => SelectedBucket is not null); + UploadCommand = new(request => _ = UploadAsync(request!), request => request is not null && SelectedBucket is not null); + ConnectCommand = new(() => _ = ConnectAsync(), () => ConnectionStatus == ConnectionState.Disconnected); + ConnectionStatus = storage.Connection.State; + storage.Connection.StateChanged += OnConnectionStateChanged; + } + + /// Gets the command that runs . + public Command LoadBucketsCommand { get; } + + /// Gets the command that runs while a bucket is selected. + public Command RefreshCommand { get; } + + /// Gets the command that runs for its parameter while a bucket is selected. + public Command UploadCommand { get; } + + /// Gets the command that runs while is . + public Command ConnectCommand { get; } + + /// Gets the link to the service. It is a plain class that raises only . + public StorageConnection Connection => _storage.Connection; + + /// Gets the state of the link, kept in step with . + public ConnectionState ConnectionStatus + { + get; + private set + { + if (!SetProperty(ref field, value)) + { + return; + } + + ConnectCommand.ChangeCanExecute(); + } + } + + /// Gets the buckets of the account. + public IReadOnlyList Buckets + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the bucket the browser shows. + public Bucket? SelectedBucket + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + RefreshCommand.ChangeCanExecute(); + UploadCommand.ChangeCanExecute(); + } + } + + /// Gets or sets the folder the browser lists, such as photos/2026/. Empty lists the whole bucket. + public string CurrentPrefix + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets the objects of the selected bucket under . + public IReadOnlyList Objects + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the object the user picked. raises no change notifications. + public StorageObject? SelectedObject + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the combined size in bytes of . + public long TotalSize + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets a value indicating whether an upload is running. + public bool IsUploading + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets how much of the running upload the service has received, from 0 to 100. + public double UploadPercent + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last failed request, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Lists the buckets. + /// A task that completes when the buckets are listed or the request failed. + public async Task LoadBucketsAsync() + { + try + { + Buckets = await _storage.ListBucketsAsync().ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (StorageException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } + + /// Lists the objects of the selected bucket under the current prefix. + /// A task that completes when the objects are listed or the request failed. + public async Task LoadObjectsAsync() + { + if (SelectedBucket is not { } bucket) + { + return; + } + + try + { + IReadOnlyList objects = await _storage.ListObjectsAsync(bucket.Name, CurrentPrefix).ConfigureAwait(false); + ErrorMessage = string.Empty; + Objects = objects; + SelectedObject = null; + TotalSize = SumSizes(objects); + } + catch (StorageException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + } + + /// Uploads a file to the selected bucket, then lists the objects again. + /// The file to upload. + /// A task that completes when the file is stored or the request failed. + public async Task UploadAsync(UploadRequest request) + { + if (SelectedBucket is not { } bucket) + { + return; + } + + UploadPercent = 0; + IsUploading = true; + + try + { + await foreach (UploadProgress report in _storage.UploadAsync(bucket.Name, CurrentPrefix + request.FileName, request.SizeBytes, request.ContentType).ConfigureAwait(false)) + { + UploadPercent = report.Fraction * FullPercent; + } + + ErrorMessage = string.Empty; + await LoadObjectsAsync().ConfigureAwait(false); + } + catch (StorageException ex) + { + ErrorMessage = $"{ex.Failure}: {ex.Message}"; + } + finally + { + IsUploading = false; + } + } + + /// Reopens the link to the service. + /// A task that completes when the link is open. + public Task ConnectAsync() => _storage.ConnectAsync(); + + /// Adds up the sizes of objects. + /// The objects to add up. + /// The combined size in bytes. + private static long SumSizes(IReadOnlyList objects) => objects.Sum(static stored => stored.Size); + + /// Mirrors the state of the link. + /// The connection. + /// The event data. + private void OnConnectionStateChanged(object? sender, EventArgs e) => ConnectionStatus = _storage.Connection.State; +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageConnection.cs b/src/examples/Documentation/Common/CloudStorage/StorageConnection.cs new file mode 100644 index 00000000..9ff166cf --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageConnection.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// +/// The link to the storage service. It reports a change to through the plain +/// event, in the style of many older libraries. It does not implement +/// INotifyPropertyChanged. +/// +[System.Diagnostics.DebuggerDisplay("StorageConnection: {Endpoint}: {State}")] +public sealed class StorageConnection +{ + /// Occurs after changes. + public event EventHandler? StateChanged; + + /// Gets the address of the service. + public string Endpoint { get; init; } = string.Empty; + + /// Gets or sets the state of the link. Setting a different state raises . + public ConnectionState State + { + get; + set + { + if (field == value) + { + return; + } + + field = value; + StateChanged?.Invoke(this, EventArgs.Empty); + } + } +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageException.cs b/src/examples/Documentation/Common/CloudStorage/StorageException.cs new file mode 100644 index 00000000..296c715f --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageException.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// Reports that the storage service refused a request. +[System.Diagnostics.DebuggerDisplay("StorageException: Failure = {Failure}, Message = {Message}")] +public sealed class StorageException : Exception +{ + /// Initializes a new instance of the class. + public StorageException() + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + public StorageException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + /// The failure that caused this one. + public StorageException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// Initializes a new instance of the class. + /// Why the service refused the request. + /// What went wrong. + public StorageException(StorageFailure failure, string message) + : base(message) => Failure = failure; + + /// Gets why the service refused the request. + public StorageFailure Failure { get; } +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageFailure.cs b/src/examples/Documentation/Common/CloudStorage/StorageFailure.cs new file mode 100644 index 00000000..98a2d263 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageFailure.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// Why the storage service refused a request. +public enum StorageFailure +{ + /// The service is asking the caller to slow down and try again. + SlowDown = 0, + + /// The bucket does not exist. + NoSuchBucket = 1, + + /// The object does not exist. + NoSuchKey = 2, + + /// The link to the service is down. + ConnectionLost = 3, +} diff --git a/src/examples/Documentation/Common/CloudStorage/StorageObject.cs b/src/examples/Documentation/Common/CloudStorage/StorageObject.cs new file mode 100644 index 00000000..84ffd990 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/StorageObject.cs @@ -0,0 +1,33 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// +/// A file held in a bucket, shaped like the response types of a cloud SDK. It is a plain class: it does not +/// implement INotifyPropertyChanged and raises no event when a property changes, so nothing tells an observer +/// that a property changed. +/// +[System.Diagnostics.DebuggerDisplay("StorageObject: {Key} ({Size} bytes)")] +public sealed class StorageObject +{ + /// Gets or sets the full name of the object inside its bucket, such as photos/2026/launch.png. + public string Key { get; set; } = string.Empty; + + /// Gets or sets the size of the object in bytes. + public long Size { get; set; } + + /// Gets or sets when the object was last written. + public DateTimeOffset LastModified { get; set; } + + /// Gets or sets the media type of the object, such as image/png. + public string ContentType { get; set; } = string.Empty; + + /// Gets or sets the tag that changes whenever the content changes. + public string ETag { get; set; } = string.Empty; + + /// Creates an independent copy, as the service returns a new object for each response. + /// A copy with the same values. + public StorageObject Clone() => new() { Key = Key, Size = Size, LastModified = LastModified, ContentType = ContentType, ETag = ETag }; +} diff --git a/src/examples/Documentation/Common/CloudStorage/UploadProgress.cs b/src/examples/Documentation/Common/CloudStorage/UploadProgress.cs new file mode 100644 index 00000000..763406e7 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/UploadProgress.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// A report on how much of an upload the service has received. +/// The number of bytes the service has received. +/// The size of the whole upload in bytes. +[System.Diagnostics.DebuggerDisplay("UploadProgress: {BytesSent} of {TotalBytes}")] +public sealed record UploadProgress(long BytesSent, long TotalBytes) +{ + /// Gets how much has been received as a fraction from 0 to 1. + public double Fraction => TotalBytes == 0 ? 1 : (double)BytesSent / TotalBytes; +} diff --git a/src/examples/Documentation/Common/CloudStorage/UploadRequest.cs b/src/examples/Documentation/Common/CloudStorage/UploadRequest.cs new file mode 100644 index 00000000..61d593c6 --- /dev/null +++ b/src/examples/Documentation/Common/CloudStorage/UploadRequest.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.CloudStorage; + +/// A file the user chose to upload. The view model stores it in the current folder under its file name. +/// The name of the file, without a folder. +/// The size of the file in bytes. +/// The media type of the file. +[System.Diagnostics.DebuggerDisplay("UploadRequest: {FileName} ({SizeBytes} bytes)")] +public sealed record UploadRequest(string FileName, long SizeBytes, string ContentType); diff --git a/src/examples/Documentation/Common/Education/Assignment.cs b/src/examples/Documentation/Common/Education/Assignment.cs new file mode 100644 index 00000000..702af4d9 --- /dev/null +++ b/src/examples/Documentation/Common/Education/Assignment.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// A piece of work that students submit for a course. +/// The identifier of the assignment. +/// The code of the course the assignment belongs to. +/// The name of the assignment. +/// How much the assignment counts towards the course, as a percentage. +/// The highest score the assignment awards. +/// The last day a student can submit without being late. +[System.Diagnostics.DebuggerDisplay("Assignment: {Title} ({Weight}%)")] +public sealed record Assignment(int Id, string CourseCode, string Title, decimal Weight, decimal MaxScore, DateOnly DueDate); diff --git a/src/examples/Documentation/Common/Education/Course.cs b/src/examples/Documentation/Common/Education/Course.cs new file mode 100644 index 00000000..04a5402f --- /dev/null +++ b/src/examples/Documentation/Common/Education/Course.cs @@ -0,0 +1,23 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// A course with a weekly class time and a limited number of places. +/// The code that identifies the course, such as CS101. +/// The name of the course. +/// The number of students the course takes. +/// The day of the week the class meets. +/// The hour the class starts, from 0 to 23. +/// How many hours the class lasts. +/// The weighted average, as a percentage, a student needs to pass. +[System.Diagnostics.DebuggerDisplay("Course: {Code}: {Title}")] +public sealed record Course(string Code, string Title, int Capacity, DayOfWeek Day, int StartHour, int DurationHours, decimal PassMark) +{ + /// Checks whether this course meets at the same time as another. + /// The other course. + /// when the classes are on the same day and their hours overlap. + public bool ClashesWith(Course other) => + Day == other.Day && StartHour < other.StartHour + other.DurationHours && other.StartHour < StartHour + DurationHours; +} diff --git a/src/examples/Documentation/Common/Education/DropRequest.cs b/src/examples/Documentation/Common/Education/DropRequest.cs new file mode 100644 index 00000000..9c6604c8 --- /dev/null +++ b/src/examples/Documentation/Common/Education/DropRequest.cs @@ -0,0 +1,11 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// The question the gradebook asks before it takes a student out of a course. +/// The student who would be dropped. +/// The course the student would leave. +[System.Diagnostics.DebuggerDisplay("DropRequest: Drop {Student} from {Course}")] +public sealed record DropRequest(Student Student, Course Course); diff --git a/src/examples/Documentation/Common/Education/Enrolment.cs b/src/examples/Documentation/Common/Education/Enrolment.cs new file mode 100644 index 00000000..4e6d2681 --- /dev/null +++ b/src/examples/Documentation/Common/Education/Enrolment.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// A student's place in a course, with the work the student handed in and the scores received. +/// The identifier of the student. +/// The code of the course. +/// The day the student took the place. +/// The scores recorded so far. +/// The assignments the student handed in. +[System.Diagnostics.DebuggerDisplay("Enrolment: Student {StudentId} in {CourseCode}")] +public sealed record Enrolment(int StudentId, string CourseCode, DateOnly EnrolledOn, IReadOnlyList Grades, IReadOnlyList Submissions); diff --git a/src/examples/Documentation/Common/Education/Grade.cs b/src/examples/Documentation/Common/Education/Grade.cs new file mode 100644 index 00000000..e6d23f44 --- /dev/null +++ b/src/examples/Documentation/Common/Education/Grade.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// The score a teacher gave a student for an assignment. +/// The identifier of the student. +/// The identifier of the assignment. +/// The score awarded, from 0 to the assignment's maximum. +/// When the teacher recorded the score. +[System.Diagnostics.DebuggerDisplay("Grade: Assignment {AssignmentId}: {Score}")] +public sealed record Grade(int StudentId, int AssignmentId, decimal Score, DateTimeOffset RecordedOn); diff --git a/src/examples/Documentation/Common/Education/GradeCalculator.cs b/src/examples/Documentation/Common/Education/GradeCalculator.cs new file mode 100644 index 00000000..db6b61b6 --- /dev/null +++ b/src/examples/Documentation/Common/Education/GradeCalculator.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// Works out how a student is doing in a course. +public static class GradeCalculator +{ + /// The value of a percentage that means everything. + private const decimal FullPercent = 100; + + /// Works out the weighted average of the assignments that have a score. + /// The assignments of the course. + /// The scores recorded for the student. + /// The average as a percentage from 0 to 100, or 0 when no assignment has a score. + public static decimal WeightedAverage(IReadOnlyList assignments, IReadOnlyList grades) + { + decimal earned = 0; + decimal weighed = 0; + + foreach (Assignment assignment in assignments) + { + foreach (Grade grade in grades) + { + if (grade.AssignmentId != assignment.Id) + { + continue; + } + + earned += assignment.Weight * grade.Score / assignment.MaxScore; + weighed += assignment.Weight; + } + } + + return weighed == 0 ? 0 : earned / weighed * FullPercent; + } +} diff --git a/src/examples/Documentation/Common/Education/GradebookView.cs b/src/examples/Documentation/Common/Education/GradebookView.cs new file mode 100644 index 00000000..e7a95369 --- /dev/null +++ b/src/examples/Documentation/Common/Education/GradebookView.cs @@ -0,0 +1,69 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Education; + +/// +/// The gradebook screen: a course list, the roster of the selected course, the assignments and a grade entry +/// area. A MAUI page builds these controls from markup; here the view creates them in code. +/// +[System.Diagnostics.DebuggerDisplay("GradebookView: ViewModel = {ViewModel}")] +public sealed class GradebookView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public GradebookViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the list of courses. + public CollectionView CourseList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the list of students in the selected course. + public CollectionView RosterList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the list of students who could join the selected course. + public CollectionView CandidateList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the list of assignments of the selected course. + public CollectionView AssignmentList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the button that enrols the chosen candidate. + public Button EnrolButton { get; } = new() { Text = "Enrol" }; + + /// Gets the button that drops the selected student. + public Button DropButton { get; } = new() { Text = "Drop" }; + + /// Gets the entry where the teacher types a score. + public Entry ScoreEntry { get; } = new() { Placeholder = "Score" }; + + /// Gets the button that records the score. + public Button RecordGradeButton { get; } = new() { Text = "Record grade" }; + + /// Gets the label that shows the name of the selected student. + public Label StudentNameLabel { get; } = new(); + + /// Gets the label that shows the weighted average of the selected student. + public Label AverageLabel { get; } = new(); + + /// Gets the bar that shows the weighted average of the selected student. Its runs from 0 to 1. + public ProgressBar AverageBar { get; } = new(); + + /// Gets the box that is ticked while the selected student passes. + public CheckBox PassCheckBox { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (GradebookViewModel?)value; + } +} diff --git a/src/examples/Documentation/Common/Education/GradebookViewModel.cs b/src/examples/Documentation/Common/Education/GradebookViewModel.cs new file mode 100644 index 00000000..68ab85b7 --- /dev/null +++ b/src/examples/Documentation/Common/Education/GradebookViewModel.cs @@ -0,0 +1,317 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Education; + +/// +/// The view model behind the gradebook. It shows one course at a time: the roster, the assignments and, for the +/// selected student, a weighted average and a pass or fail flag. Each command starts one of the asynchronous +/// methods and returns; call the method itself to wait for the work. A refused request never throws. It sets +/// . +/// +[System.Diagnostics.DebuggerDisplay("GradebookViewModel: Course = {SelectedCourse}, Student = {SelectedStudent}, Average = {Average}")] +public sealed class GradebookViewModel : ObservableObject +{ + /// The service the view model calls. + private readonly IStudentRecords _records; + + /// Initializes a new instance of the class. + /// The service to call. + public GradebookViewModel(IStudentRecords records) + { + _records = records; + LoadCoursesCommand = new(() => _ = LoadCoursesAsync()); + OpenCourseCommand = new(() => _ = OpenCourseAsync(), () => SelectedCourse is not null); + EnrolCommand = new(candidate => _ = EnrolAsync(candidate), candidate => candidate is not null && SelectedCourse is not null); + DropCommand = new(() => _ = DropAsync(), () => SelectedCourse is not null && SelectedStudent is not null); + RecordGradeCommand = new(() => _ = RecordGradeAsync(), () => SelectedStudent is not null && SelectedAssignment is not null); + } + + /// Gets the question the view answers before a student is dropped. The answer is to drop the student. + public Interaction ConfirmDrop { get; } = new(); + + /// Gets the command that runs . + public Command LoadCoursesCommand { get; } + + /// Gets the command that runs . + public Command OpenCourseCommand { get; } + + /// Gets the command that runs . Its parameter is the to enrol. + public Command EnrolCommand { get; } + + /// Gets the command that runs . + public Command DropCommand { get; } + + /// Gets the command that runs . + public Command RecordGradeCommand { get; } + + /// Gets the courses. + public IReadOnlyList Courses + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the course the gradebook shows. + public Course? SelectedCourse + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + OpenCourseCommand.ChangeCanExecute(); + EnrolCommand.ChangeCanExecute(); + DropCommand.ChangeCanExecute(); + } + } + + /// Gets the students who take . + public IReadOnlyList Roster + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets the students who could join . + public IReadOnlyList Candidates + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets the assignments of . + public IReadOnlyList Assignments + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the student the teacher picked. A path such as SelectedStudent.Enrolments is empty while nobody is picked. + public Student? SelectedStudent + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + DropCommand.ChangeCanExecute(); + RecordGradeCommand.ChangeCanExecute(); + RecomputeAverage(); + } + } + + /// Gets or sets the assignment the teacher picked. + public Assignment? SelectedAssignment + { + get; + set + { + if (SetProperty(ref field, value)) + { + RecordGradeCommand.ChangeCanExecute(); + } + } + } + + /// Gets or sets the score the teacher typed. + public decimal ScoreToRecord + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the weighted average of the selected student in the selected course, as a percentage from 0 to 100. It is 0 until a score is recorded. + public decimal Average + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets a value indicating whether reaches the pass mark of the selected course. + public bool IsPassing + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last refused request, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Lists the courses. + /// A task that completes when the courses are listed or the request was refused. + public async Task LoadCoursesAsync() + { + try + { + Courses = await _records.GetCoursesAsync().ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (StudentRecordsException ex) + { + Refused(ex); + } + } + + /// Loads the roster, the candidates and the assignments of . + /// A task that completes when the course is loaded or the request was refused. + public async Task OpenCourseAsync() + { + if (SelectedCourse is not { } course) + { + return; + } + + try + { + await LoadCourseAsync(course).ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (StudentRecordsException ex) + { + Refused(ex); + } + } + + /// Enrols a student in . + /// The student to enrol. + /// A task that completes when the student is enrolled or the request was refused. + public async Task EnrolAsync(Student candidate) + { + if (SelectedCourse is not { } course) + { + return; + } + + try + { + _ = await _records.EnrolAsync(candidate.Id, course.Code).ConfigureAwait(false); + await LoadCourseAsync(course).ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (StudentRecordsException ex) + { + Refused(ex); + } + } + + /// Asks the view to confirm through , then drops from . + /// A task that completes when the student is dropped, the teacher declined or the request was refused. + public async Task DropAsync() + { + if (SelectedCourse is not { } course || SelectedStudent is not { } student) + { + return; + } + + if (!await ConfirmDrop.Handle(new(student, course)).ConfigureAwait(false)) + { + return; + } + + try + { + await _records.DropAsync(student.Id, course.Code).ConfigureAwait(false); + await LoadCourseAsync(course).ConfigureAwait(false); + ErrorMessage = string.Empty; + } + catch (StudentRecordsException ex) + { + Refused(ex); + } + } + + /// Records for on . + /// A task that completes when the score is recorded or the request was refused. + public async Task RecordGradeAsync() + { + if (SelectedStudent is not { } student || SelectedAssignment is not { } assignment) + { + return; + } + + try + { + _ = await _records.RecordGradeAsync(student.Id, assignment.Id, ScoreToRecord).ConfigureAwait(false); + student.Enrolments = await _records.GetEnrolmentsAsync(student.Id).ConfigureAwait(false); + ErrorMessage = string.Empty; + RecomputeAverage(); + } + catch (StudentRecordsException ex) + { + Refused(ex); + } + } + + /// Finds the enrolment of a student in a course. + /// The student. + /// The code of the course. + /// The enrolment, or when the student is not enrolled. + private static Enrolment? FindEnrolment(Student student, string courseCode) => + student.Enrolments.FirstOrDefault(enrolment => enrolment.CourseCode == courseCode); + + /// Finds a student in a list. + /// The list to search. + /// The identifier of the student. + /// The student, or when the list does not hold the student. + private static Student? FindStudent(IReadOnlyList students, int? id) => + students.FirstOrDefault(student => student.Id == id); + + /// Lists the students who are not on a roster. + /// Every student. + /// The students already on the roster. + /// The students who could join. + private static List NotOn(IReadOnlyList students, IReadOnlyList roster) => + students.Where(student => FindStudent(roster, student.Id) is null).ToList(); + + /// Loads the roster, the candidates and the assignments of a course, keeping the selected student when the student is still on the roster. + /// The course to load. + /// A task that completes when the course is loaded. + private async Task LoadCourseAsync(Course course) + { + int? selectedId = SelectedStudent?.Id; + IReadOnlyList roster = await _records.GetRosterAsync(course.Code).ConfigureAwait(false); + IReadOnlyList students = await _records.GetStudentsAsync().ConfigureAwait(false); + IReadOnlyList assignments = await _records.GetAssignmentsAsync(course.Code).ConfigureAwait(false); + + Roster = roster; + Candidates = NotOn(students, roster); + Assignments = assignments; + SelectedAssignment = null; + SelectedStudent = FindStudent(roster, selectedId); + RecomputeAverage(); + } + + /// Works out the average and the pass flag of the selected student in the selected course. + private void RecomputeAverage() + { + Enrolment? enrolment = SelectedStudent is { } student && SelectedCourse is { } course ? FindEnrolment(student, course.Code) : null; + if (enrolment is null || enrolment.Grades.Count == 0) + { + Average = 0; + IsPassing = false; + return; + } + + Average = GradeCalculator.WeightedAverage(Assignments, enrolment.Grades); + IsPassing = Average >= SelectedCourse!.PassMark; + } + + /// Shows why the service refused a request. + /// The refusal. + private void Refused(StudentRecordsException ex) => ErrorMessage = $"{ex.Failure}: {ex.Message}"; +} diff --git a/src/examples/Documentation/Common/Education/IStudentRecords.cs b/src/examples/Documentation/Common/Education/IStudentRecords.cs new file mode 100644 index 00000000..c0403e2c --- /dev/null +++ b/src/examples/Documentation/Common/Education/IStudentRecords.cs @@ -0,0 +1,69 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// The student records service of a school or university. Every call is asynchronous, as a call to a real service is. +public interface IStudentRecords +{ + /// Lists every course. + /// The courses, by code. + /// The service is down. + Task> GetCoursesAsync(); + + /// Lists every student, each with the courses the student takes. + /// Copies of the students, by identifier. + /// The service is down. + Task> GetStudentsAsync(); + + /// Lists the students who take a course, each with the courses the student takes. + /// The code of the course. + /// Copies of the students, by identifier. + /// The course does not exist or the service is down. + Task> GetRosterAsync(string courseCode); + + /// Lists the assignments of a course. + /// The code of the course. + /// The assignments, by identifier. + /// The course does not exist or the service is down. + Task> GetAssignmentsAsync(string courseCode); + + /// Lists the courses a student takes. + /// The identifier of the student. + /// The student's enrolments, by course code. + /// The student does not exist or the service is down. + Task> GetEnrolmentsAsync(int studentId); + + /// Gives a student a place in a course. + /// The identifier of the student. + /// The code of the course. + /// The new enrolment. + /// + /// The student or course does not exist, the student is already enrolled, the course is full, the class time + /// clashes with another course of the student, or the service is down. + /// + Task EnrolAsync(int studentId, string courseCode); + + /// Takes a student out of a course. The student's grades for the course are lost. + /// The identifier of the student. + /// The code of the course. + /// A task that completes when the student is out of the course. + /// The student or course does not exist, the student is not enrolled, or the service is down. + Task DropAsync(int studentId, string courseCode); + + /// Records that a student handed in an assignment. + /// The identifier of the student. + /// The identifier of the assignment. + /// The submission; is set when it arrives after the due date. + /// The student or assignment does not exist, the student is not enrolled in the course, or the service is down. + Task SubmitAssignmentAsync(int studentId, int assignmentId); + + /// Records the score a student received for an assignment, replacing an earlier score. + /// The identifier of the student. + /// The identifier of the assignment. + /// The score, from 0 to the assignment's maximum. + /// The recorded grade. + /// The student or assignment does not exist, the student is not enrolled in the course, the score is out of range, or the service is down. + Task RecordGradeAsync(int studentId, int assignmentId, decimal score); +} diff --git a/src/examples/Documentation/Common/Education/InMemoryStudentRecords.cs b/src/examples/Documentation/Common/Education/InMemoryStudentRecords.cs new file mode 100644 index 00000000..da39445b --- /dev/null +++ b/src/examples/Documentation/Common/Education/InMemoryStudentRecords.cs @@ -0,0 +1,359 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// +/// A student records service that lives in memory. It refuses a request the way a real registrar does: a full +/// course, a timetable clash, a score out of range. stamps submissions and grades, and +/// sets how long each response takes. It hands out copies, so changing a student you read +/// does not change the records. +/// +[System.Diagnostics.DebuggerDisplay("InMemoryStudentRecords: Students = {_students.Count}, Enrolments = {_enrolments.Count}, IsUnavailable = {IsUnavailable}")] +public sealed class InMemoryStudentRecords : IStudentRecords +{ + /// The courses a new service starts with. CS101 has three places, and HIST110 meets while CS101 does. + private static readonly Course[] _seedCourses = + [ + new("CS101", "Introduction to Programming", 3, DayOfWeek.Tuesday, 9, 2, 50), + new("MATH201", "Linear Algebra", 30, DayOfWeek.Wednesday, 10, 2, 50), + new("HIST110", "Modern European History", 30, DayOfWeek.Tuesday, 10, 2, 50), + ]; + + /// The assignments a new service starts with. + private static readonly Assignment[] _seedAssignments = + [ + new(1, "CS101", "Loops and functions", 20, 100, new(2026, 3, 6)), + new(2, "CS101", "Text adventure", 30, 100, new(2026, 3, 27)), + new(3, "CS101", "Final project", 50, 100, new(2026, 5, 29)), + new(4, "MATH201", "Problem set 1", 40, 50, new(2026, 3, 13)), + new(5, "MATH201", "Midterm", 60, 100, new(2026, 4, 10)), + new(6, "HIST110", "Essay on the 1848 revolutions", 100, 100, new(2026, 4, 17)), + ]; + + /// The students a new service starts with. + private static readonly (int Id, string Name)[] _seedStudents = + [ + (1, "Aisha Rahman"), + (2, "Ben Carter"), + (3, "Chloe Nguyen"), + (4, "Diego Alvarez"), + (5, "Emma Kowalski"), + ]; + + /// The enrolments a new service starts with: Aisha, Ben and Chloe fill CS101. + private static readonly Enrolment[] _seedEnrolments = + [ + new( + 1, + "CS101", + new(2026, 2, 16), + new List { new(1, 1, 85, new(2026, 3, 9, 12, 0, 0, TimeSpan.Zero)), new(1, 2, 72, new(2026, 3, 30, 12, 0, 0, TimeSpan.Zero)) }, + new List { new(1, 1, new(2026, 3, 5, 10, 0, 0, TimeSpan.Zero), false) }), + new(2, "CS101", new(2026, 2, 16), new List { new(2, 1, 40, new(2026, 3, 9, 12, 0, 0, TimeSpan.Zero)), new(2, 2, 35, new(2026, 3, 30, 12, 0, 0, TimeSpan.Zero)) }, []), + new(3, "CS101", new(2026, 2, 17), [], []), + new(3, "MATH201", new(2026, 2, 17), new List { new(3, 4, 45, new(2026, 3, 16, 12, 0, 0, TimeSpan.Zero)) }, []), + new(4, "HIST110", new(2026, 2, 18), [], []), + new(5, "MATH201", new(2026, 2, 18), new List { new(5, 4, 30, new(2026, 3, 16, 12, 0, 0, TimeSpan.Zero)) }, []), + ]; + + /// The courses, by code. + private readonly List _courses = [.. _seedCourses]; + + /// The assignments, by identifier. + private readonly List _assignments = [.. _seedAssignments]; + + /// The students, without their enrolments. + private readonly List _students = []; + + /// The enrolments of every student. An enrolment is replaced, not changed, when its grades or submissions change. + private readonly List _enrolments = [.. _seedEnrolments]; + + /// Gets or sets how long each call takes. A call yields once when the latency is zero. + public TimeSpan Latency { get; set; } + + /// Gets or sets the moment that stamps submissions and grades, and that decides whether a submission is late. + public DateTimeOffset Now { get; set; } = new(2026, 3, 3, 9, 0, 0, TimeSpan.Zero); + + /// Gets or sets a value indicating whether every call fails with . + public bool IsUnavailable { get; set; } + + /// Creates a service with three courses, five students and six assignments. + /// A new service. + public static InMemoryStudentRecords CreateSeeded() + { + InMemoryStudentRecords records = new(); + foreach (var (id, name) in _seedStudents) + { + records._students.Add(new() { Id = id, Name = name, Email = $"student{id}@example.edu" }); + } + + return records; + } + + /// + public async Task> GetCoursesAsync() + { + await EnterAsync().ConfigureAwait(false); + + return _courses.ToList(); + } + + /// + public async Task> GetStudentsAsync() + { + await EnterAsync().ConfigureAwait(false); + + List students = []; + foreach (Student student in _students) + { + students.Add(Snapshot(student)); + } + + return students; + } + + /// + public async Task> GetRosterAsync(string courseCode) + { + await EnterAsync().ConfigureAwait(false); + + _ = FindCourse(courseCode); + List roster = []; + foreach (Student student in _students) + { + if (IndexOfEnrolment(student.Id, courseCode) >= 0) + { + roster.Add(Snapshot(student)); + } + } + + return roster; + } + + /// + public async Task> GetAssignmentsAsync(string courseCode) + { + await EnterAsync().ConfigureAwait(false); + + _ = FindCourse(courseCode); + List assignments = []; + foreach (Assignment assignment in _assignments) + { + if (assignment.CourseCode == courseCode) + { + assignments.Add(assignment); + } + } + + return assignments; + } + + /// + public async Task> GetEnrolmentsAsync(int studentId) + { + await EnterAsync().ConfigureAwait(false); + + return EnrolmentsOf(FindStudent(studentId).Id); + } + + /// + public async Task EnrolAsync(int studentId, string courseCode) + { + await EnterAsync().ConfigureAwait(false); + + Student student = FindStudent(studentId); + Course course = FindCourse(courseCode); + + if (IndexOfEnrolment(student.Id, course.Code) >= 0) + { + throw new StudentRecordsException(RecordsFailure.AlreadyEnrolled, $"{student.Name} is already enrolled in {course.Code}."); + } + + if (CountEnrolled(course.Code) >= course.Capacity) + { + throw new StudentRecordsException(RecordsFailure.CourseFull, $"{course.Code} has no places left."); + } + + foreach (Enrolment existing in EnrolmentsOf(student.Id)) + { + Course other = FindCourse(existing.CourseCode); + if (course.ClashesWith(other)) + { + throw new StudentRecordsException(RecordsFailure.TimetableClash, $"{course.Code} meets at the same time as {other.Code}."); + } + } + + Enrolment enrolment = new(student.Id, course.Code, Today(), [], []); + _enrolments.Add(enrolment); + return enrolment; + } + + /// + public async Task DropAsync(int studentId, string courseCode) + { + await EnterAsync().ConfigureAwait(false); + + Student student = FindStudent(studentId); + Course course = FindCourse(courseCode); + int index = IndexOfEnrolment(student.Id, course.Code); + if (index < 0) + { + throw new StudentRecordsException(RecordsFailure.NotEnrolled, $"{student.Name} is not enrolled in {course.Code}."); + } + + _enrolments.RemoveAt(index); + } + + /// + public async Task SubmitAssignmentAsync(int studentId, int assignmentId) + { + await EnterAsync().ConfigureAwait(false); + + Assignment assignment = FindAssignment(assignmentId); + int index = RequireEnrolment(studentId, assignment.CourseCode); + Enrolment enrolment = _enrolments[index]; + + Submission submission = new(studentId, assignmentId, Now, Today() > assignment.DueDate); + List submissions = [.. enrolment.Submissions]; + _ = submissions.RemoveAll(existing => existing.AssignmentId == assignmentId); + submissions.Add(submission); + _enrolments[index] = enrolment with { Submissions = submissions }; + return submission; + } + + /// + public async Task RecordGradeAsync(int studentId, int assignmentId, decimal score) + { + await EnterAsync().ConfigureAwait(false); + + Assignment assignment = FindAssignment(assignmentId); + int index = RequireEnrolment(studentId, assignment.CourseCode); + if (score < 0 || score > assignment.MaxScore) + { + throw new StudentRecordsException(RecordsFailure.ScoreOutOfRange, $"A score for '{assignment.Title}' must be between 0 and {assignment.MaxScore}."); + } + + Enrolment enrolment = _enrolments[index]; + Grade grade = new(studentId, assignmentId, score, Now); + List grades = [.. enrolment.Grades]; + _ = grades.RemoveAll(existing => existing.AssignmentId == assignmentId); + grades.Add(grade); + _enrolments[index] = enrolment with { Grades = grades }; + return grade; + } + + /// Waits for , then fails when the service is unavailable. + /// A task that completes when the call may proceed. + /// The service is unavailable. + private async Task EnterAsync() + { + if (Latency == TimeSpan.Zero) + { + await Task.Yield(); + } + else + { + await Task.Delay(Latency).ConfigureAwait(false); + } + + if (IsUnavailable) + { + throw new StudentRecordsException(RecordsFailure.ServiceUnavailable, "The student records service is unavailable."); + } + } + + /// Gets the date of . + /// The date in UTC. + private DateOnly Today() => DateOnly.FromDateTime(Now.UtcDateTime); + + /// Copies a student together with the courses the student takes. + /// The stored student. + /// An independent copy. + private Student Snapshot(Student student) + { + Student copy = student.Clone(); + copy.Enrolments = EnrolmentsOf(student.Id); + return copy; + } + + /// Lists the enrolments of a student. + /// The identifier of the student. + /// The enrolments, in the order they were made. + private List EnrolmentsOf(int studentId) + { + List enrolments = []; + foreach (Enrolment enrolment in _enrolments) + { + if (enrolment.StudentId == studentId) + { + enrolments.Add(enrolment); + } + } + + return enrolments; + } + + /// Finds where an enrolment is stored. + /// The identifier of the student. + /// The code of the course. + /// The index of the enrolment, or -1 when the student is not enrolled. + private int IndexOfEnrolment(int studentId, string courseCode) => + _enrolments.FindIndex(enrolment => enrolment.StudentId == studentId && enrolment.CourseCode == courseCode); + + /// Finds where an enrolment is stored, and refuses when there is none. + /// The identifier of the student. + /// The code of the course. + /// The index of the enrolment. + /// The student does not exist or is not enrolled. + private int RequireEnrolment(int studentId, string courseCode) + { + Student student = FindStudent(studentId); + int index = IndexOfEnrolment(student.Id, courseCode); + return index >= 0 + ? index + : throw new StudentRecordsException(RecordsFailure.NotEnrolled, $"{student.Name} is not enrolled in {courseCode}."); + } + + /// Counts the students enrolled in a course. + /// The code of the course. + /// The number of enrolments. + private int CountEnrolled(string courseCode) + { + int count = 0; + foreach (Enrolment enrolment in _enrolments) + { + if (enrolment.CourseCode == courseCode) + { + count++; + } + } + + return count; + } + + /// Finds a course. + /// The code of the course. + /// The course. + /// The course does not exist. + private Course FindCourse(string courseCode) => + _courses.Find(course => course.Code == courseCode) + ?? throw new StudentRecordsException(RecordsFailure.UnknownCourse, $"There is no course {courseCode}."); + + /// Finds a student. + /// The identifier of the student. + /// The stored student. + /// The student does not exist. + private Student FindStudent(int studentId) => + _students.Find(student => student.Id == studentId) + ?? throw new StudentRecordsException(RecordsFailure.UnknownStudent, $"There is no student {studentId}."); + + /// Finds an assignment. + /// The identifier of the assignment. + /// The assignment. + /// The assignment does not exist. + private Assignment FindAssignment(int assignmentId) => + _assignments.Find(assignment => assignment.Id == assignmentId) + ?? throw new StudentRecordsException(RecordsFailure.UnknownAssignment, $"There is no assignment {assignmentId}."); +} diff --git a/src/examples/Documentation/Common/Education/RecordsFailure.cs b/src/examples/Documentation/Common/Education/RecordsFailure.cs new file mode 100644 index 00000000..5c3d0c47 --- /dev/null +++ b/src/examples/Documentation/Common/Education/RecordsFailure.cs @@ -0,0 +1,36 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// Why the student records service refused a request. +public enum RecordsFailure +{ + /// The course has no places left. + CourseFull = 0, + + /// The course meets at the same time as another course the student takes. + TimetableClash = 1, + + /// The student already has a place in the course. + AlreadyEnrolled = 2, + + /// The student has no place in the course. + NotEnrolled = 3, + + /// The student does not exist. + UnknownStudent = 4, + + /// The course does not exist. + UnknownCourse = 5, + + /// The assignment does not exist. + UnknownAssignment = 6, + + /// The score is below zero or above the assignment's maximum. + ScoreOutOfRange = 7, + + /// The service is down. + ServiceUnavailable = 8, +} diff --git a/src/examples/Documentation/Common/Education/Student.cs b/src/examples/Documentation/Common/Education/Student.cs new file mode 100644 index 00000000..bfadb1ec --- /dev/null +++ b/src/examples/Documentation/Common/Education/Student.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Education; + +/// A student. Each property raises PropertyChanged, and is replaced whenever the records change. +[System.Diagnostics.DebuggerDisplay("Student: {Id}: {Name}")] +public sealed class Student : ObservableObject +{ + /// Gets or sets the identifier of the student. + public int Id + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the name of the student. + public string Name + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the email address of the student. + public string Email + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the courses the student takes. + public IReadOnlyList Enrolments + { + get; + set => SetProperty(ref field, value); + } = []; + + /// Creates an independent copy, as the records service returns a new object for each response. + /// A copy with the same values. + public Student Clone() => new() { Id = Id, Name = Name, Email = Email, Enrolments = Enrolments.ToList() }; +} diff --git a/src/examples/Documentation/Common/Education/StudentRecordsException.cs b/src/examples/Documentation/Common/Education/StudentRecordsException.cs new file mode 100644 index 00000000..07b260f7 --- /dev/null +++ b/src/examples/Documentation/Common/Education/StudentRecordsException.cs @@ -0,0 +1,39 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// Reports that the student records service refused a request. +[System.Diagnostics.DebuggerDisplay("StudentRecordsException: Failure = {Failure}, Message = {Message}")] +public sealed class StudentRecordsException : Exception +{ + /// Initializes a new instance of the class. + public StudentRecordsException() + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + public StudentRecordsException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + /// The failure that caused this one. + public StudentRecordsException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// Initializes a new instance of the class. + /// Why the service refused the request. + /// What went wrong. + public StudentRecordsException(RecordsFailure failure, string message) + : base(message) => Failure = failure; + + /// Gets why the service refused the request. + public RecordsFailure Failure { get; } +} diff --git a/src/examples/Documentation/Common/Education/Submission.cs b/src/examples/Documentation/Common/Education/Submission.cs new file mode 100644 index 00000000..529d2100 --- /dev/null +++ b/src/examples/Documentation/Common/Education/Submission.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Education; + +/// A student's hand-in of an assignment. +/// The identifier of the student. +/// The identifier of the assignment. +/// When the student handed the work in. +/// Whether the student handed the work in after the due date. +[System.Diagnostics.DebuggerDisplay("Submission: Assignment {AssignmentId}, late = {IsLate}")] +public sealed record Submission(int StudentId, int AssignmentId, DateTimeOffset SubmittedAt, bool IsLate); diff --git a/src/examples/Documentation/Common/GitHub/GitHubApiException.cs b/src/examples/Documentation/Common/GitHub/GitHubApiException.cs new file mode 100644 index 00000000..136a2f8f --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/GitHubApiException.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Net; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// Reports that the server answered a request with an error status. +[System.Diagnostics.DebuggerDisplay("GitHubApiException: StatusCode = {StatusCode}, Message = {Message}")] +public sealed class GitHubApiException : Exception +{ + /// Initializes a new instance of the class. + public GitHubApiException() + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + public GitHubApiException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + /// The failure that caused this one. + public GitHubApiException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// Initializes a new instance of the class. + /// The status the server answered with. + /// What went wrong. + /// When the request quota renews; unless the quota ran out. + public GitHubApiException(HttpStatusCode statusCode, string message, DateTimeOffset? rateLimitResetsAt) + : base(message) + { + StatusCode = statusCode; + RateLimitResetsAt = rateLimitResetsAt; + } + + /// Gets the status the server answered with. + public HttpStatusCode StatusCode { get; } + + /// Gets when the request quota renews, or when the quota did not run out. + public DateTimeOffset? RateLimitResetsAt { get; } +} diff --git a/src/examples/Documentation/Common/GitHub/IGitHubApi.cs b/src/examples/Documentation/Common/GitHub/IGitHubApi.cs new file mode 100644 index 00000000..84b86688 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/IGitHubApi.cs @@ -0,0 +1,56 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// The part of a GitHub-style issue tracker server that the example app calls. +public interface IGitHubApi +{ + /// Gets how many requests the signed-in account may still make before the quota renews. + int RateLimitRemaining { get; } + + /// Signs in with an access token. + /// The access token. + /// The account the token belongs to. + /// The token is not valid (401) or the request quota is used up (403). + Task SignInAsync(string token); + + /// Forgets the access token. The next request fails with 401 until the caller signs in again. + void SignOut(); + + /// Lists the repositories the signed-in account can see. + /// The repositories. + /// The caller is not signed in (401) or the request quota is used up (403). + Task> ListRepositoriesAsync(); + + /// Lists the issues of a repository. + /// The repository name, such as acme/webshop. + /// Which issues to list. + /// The issues, newest first. + /// The caller is not signed in (401), the quota is used up (403) or the repository does not exist (404). + Task> ListIssuesAsync(string repository, IssueState state); + + /// Opens a new issue. + /// The repository name, such as acme/webshop. + /// The title of the issue. + /// The account to assign, or to leave the issue unassigned. + /// The new issue. + /// The caller is not signed in (401), the quota is used up (403), the repository or assignee does not exist (404) or the title is blank (422). + Task CreateIssueAsync(string repository, string title, string? assigneeLogin); + + /// Closes an issue. + /// The repository name, such as acme/webshop. + /// The number of the issue. + /// The issue after it closed. + /// The caller is not signed in (401), the quota is used up (403), the issue does not exist (404) or it is already closed (422). + Task CloseIssueAsync(string repository, int number); + + /// Adds a comment to an issue. + /// The repository name, such as acme/webshop. + /// The number of the issue. + /// The text of the comment. + /// The issue after the comment was added. + /// The caller is not signed in (401), the quota is used up (403), the issue does not exist (404) or the body is blank (422). + Task AddCommentAsync(string repository, int number, string body); +} diff --git a/src/examples/Documentation/Common/GitHub/InMemoryGitHubServer.cs b/src/examples/Documentation/Common/GitHub/InMemoryGitHubServer.cs new file mode 100644 index 00000000..013e929d --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/InMemoryGitHubServer.cs @@ -0,0 +1,358 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Net; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// +/// A GitHub-style issue tracker that lives in memory. It answers with the same statuses a real server does: +/// 401 without a valid token, 403 once the request quota is used up, 404 for an unknown repository or issue, +/// and 422 for a request it cannot accept. Every change is stamped with a fixed date that moves forward one +/// minute per change, so the data never depends on the wall clock. Set to delay each +/// response. +/// +[System.Diagnostics.DebuggerDisplay("InMemoryGitHubServer: RateLimitRemaining = {RateLimitRemaining}")] +public sealed class InMemoryGitHubServer : IGitHubApi +{ + /// The number the first issue of each repository receives. + private const int FirstIssueNumber = 101; + + /// The account name of Priya Nair. + private const string PriyaLogin = "priya-nair"; + + /// The account name of Tomas Berg. + private const string TomasLogin = "tomas-berg"; + + /// The account name of Maria Santos. + private const string MariaLogin = "maria-santos"; + + /// The name of the storefront repository. + private const string Webshop = "acme/webshop"; + + /// The name of the payments repository. + private const string PaymentsApi = "acme/payments-api"; + + /// When the request quota renews. + private static readonly DateTimeOffset _quotaRenewsAt = new(2026, 3, 3, 10, 0, 0, TimeSpan.Zero); + + /// The known accounts. + private readonly List _users = []; + + /// The access token of each account, by token. + private readonly Dictionary _tokens = []; + + /// The repositories the server hosts. + private readonly List _repositories = []; + + /// The issues of each repository, by repository name, oldest first. + private readonly Dictionary> _issues = []; + + /// The time the next change is stamped with. + private DateTimeOffset _now = new(2026, 3, 3, 9, 0, 0, TimeSpan.Zero); + + /// The number of requests made since the quota last renewed. + private int _used; + + /// The account the current token belongs to, or when nobody is signed in. + private User? _signedIn; + + /// Gets the access token of the account priya-nair. + public static string PriyaToken { get; } = "ghp_priya_2f9c1d"; + + /// Gets the access token of the account tomas-berg. + public static string TomasToken { get; } = "ghp_tomas_8b41e7"; + + /// Gets the access token of the account maria-santos. + public static string MariaToken { get; } = "ghp_maria_c07a55"; + + /// Gets the number of requests an account may make before the quota renews. + public static int HourlyQuota { get; } = 60; + + /// Gets or sets how long each response takes. Zero, the default, answers on the next turn of the scheduler. + public TimeSpan Latency { get; set; } + + /// + public int RateLimitRemaining => HourlyQuota - _used; + + /// Creates a server with three accounts, two repositories and five issues. + /// A new server; sign in with or . + public static InMemoryGitHubServer CreateSeeded() + { + InMemoryGitHubServer server = new(); + server.AddUser(PriyaLogin, "Priya Nair", PriyaToken); + server.AddUser(TomasLogin, "Tomas Berg", TomasToken); + server.AddUser(MariaLogin, "Maria Santos", MariaToken); + + server.AddRepository("acme", "webshop", "Storefront and checkout"); + Issue safari = server.Seed(Webshop, "Checkout button unresponsive on Safari", IssueState.Open, MariaLogin, PriyaLogin, "bug", "checkout"); + safari.Comments = (List) + [ + new IssueComment(TomasLogin, "Reproduced on Safari 17.", new DateTimeOffset(2026, 3, 2, 14, 20, 0, TimeSpan.Zero)), + new IssueComment(PriyaLogin, "Looking into the click handler.", new DateTimeOffset(2026, 3, 2, 15, 5, 0, TimeSpan.Zero)), + ]; + _ = server.Seed(Webshop, "Add gift-card support", IssueState.Open, TomasLogin, null, "enhancement"); + _ = server.Seed(Webshop, "Order confirmation email shows the wrong currency", IssueState.Closed, PriyaLogin, TomasLogin, "bug", "email"); + + server.AddRepository("acme", "payments-api", "Card and wallet payments"); + _ = server.Seed(PaymentsApi, "Card gateway times out under load", IssueState.Open, PriyaLogin, MariaLogin, "reliability"); + _ = server.Seed(PaymentsApi, "Document the refund endpoint", IssueState.Open, MariaLogin, null, "documentation"); + return server; + } + + /// + public async Task SignInAsync(string token) + { + await EnterAsync(requiresSignIn: false).ConfigureAwait(false); + + if (!_tokens.TryGetValue(token, out var login)) + { + throw new GitHubApiException(HttpStatusCode.Unauthorized, "Bad credentials.", null); + } + + _signedIn = FindUser(login); + return _signedIn.Clone(); + } + + /// + public void SignOut() => _signedIn = null; + + /// + public async Task> ListRepositoriesAsync() + { + await EnterAsync(requiresSignIn: true).ConfigureAwait(false); + + List repositories = []; + foreach (Repository repository in _repositories) + { + repositories.Add(repository with { OpenIssueCount = CountOpen(repository.FullName) }); + } + + return repositories; + } + + /// + public async Task> ListIssuesAsync(string repository, IssueState state) + { + await EnterAsync(requiresSignIn: true).ConfigureAwait(false); + + List stored = IssuesOf(repository); + List matches = []; + for (var index = stored.Count - 1; index >= 0; index--) + { + if (stored[index].State == state) + { + matches.Add(stored[index].Clone()); + } + } + + return matches; + } + + /// + public async Task CreateIssueAsync(string repository, string title, string? assigneeLogin) + { + await EnterAsync(requiresSignIn: true).ConfigureAwait(false); + + List stored = IssuesOf(repository); + User? assignee = assigneeLogin is null ? null : FindUser(assigneeLogin); + + if (string.IsNullOrWhiteSpace(title)) + { + throw new GitHubApiException(HttpStatusCode.UnprocessableEntity, "Validation failed: the title is required.", null); + } + + Issue issue = new() { Number = FirstIssueNumber + stored.Count, Title = title.Trim(), State = IssueState.Open, Author = _signedIn!.Clone(), Assignee = assignee?.Clone(), UpdatedAt = Stamp() }; + + stored.Add(issue); + return issue.Clone(); + } + + /// + public async Task CloseIssueAsync(string repository, int number) + { + await EnterAsync(requiresSignIn: true).ConfigureAwait(false); + + Issue issue = FindIssue(repository, number); + if (issue.State == IssueState.Closed) + { + throw new GitHubApiException(HttpStatusCode.UnprocessableEntity, $"Issue {number} is already closed.", null); + } + + issue.State = IssueState.Closed; + issue.UpdatedAt = Stamp(); + return issue.Clone(); + } + + /// + public async Task AddCommentAsync(string repository, int number, string body) + { + await EnterAsync(requiresSignIn: true).ConfigureAwait(false); + + Issue issue = FindIssue(repository, number); + if (string.IsNullOrWhiteSpace(body)) + { + throw new GitHubApiException(HttpStatusCode.UnprocessableEntity, "Validation failed: the comment body is required.", null); + } + + DateTimeOffset stamp = Stamp(); + issue.Comments = issue.Comments.Append(new(_signedIn!.Login, body.Trim(), stamp)).ToList(); + issue.UpdatedAt = stamp; + return issue.Clone(); + } + + /// Uses up the request quota, so the next request fails with 403 until runs. + public void ExhaustQuota() => _used = HourlyQuota; + + /// Starts a new request quota, as the server does when the quota window ends. + public void RenewQuota() => _used = 0; + + /// Makes the server forget the signed-in account, as an expired token does. The next request fails with 401. + public void ExpireSession() => SignOut(); + + /// Waits for , then charges one request. + /// Whether the request needs a signed-in account. + /// A task that completes when the request may proceed. + /// The quota is used up (403) or the caller is not signed in (401). + private async Task EnterAsync(bool requiresSignIn) + { + if (Latency == TimeSpan.Zero) + { + await Task.Yield(); + } + else + { + await Task.Delay(Latency).ConfigureAwait(false); + } + + if (_used >= HourlyQuota) + { + throw new GitHubApiException(HttpStatusCode.Forbidden, "API rate limit exceeded.", _quotaRenewsAt); + } + + _used++; + + if (requiresSignIn && _signedIn is null) + { + throw new GitHubApiException(HttpStatusCode.Unauthorized, "Requires authentication.", null); + } + } + + /// Takes the time to stamp a change with, then moves it forward one minute. + /// The time of the change. + private DateTimeOffset Stamp() + { + DateTimeOffset stamp = _now; + _now = _now.AddMinutes(1); + return stamp; + } + + /// Counts the open issues of a repository. + /// The repository name. + /// The number of open issues. + private int CountOpen(string repository) + { + int open = 0; + foreach (Issue issue in _issues[repository]) + { + if (issue.State == IssueState.Open) + { + open++; + } + } + + return open; + } + + /// Finds the issues of a repository. + /// The repository name. + /// The stored issues. + /// The repository does not exist (404). + private List IssuesOf(string repository) => + _issues.TryGetValue(repository, out var issues) + ? issues + : throw new GitHubApiException(HttpStatusCode.NotFound, $"Repository '{repository}' was not found.", null); + + /// Finds an issue. + /// The repository name. + /// The number of the issue. + /// The stored issue. + /// The repository or the issue does not exist (404). + private Issue FindIssue(string repository, int number) + { + foreach (Issue issue in IssuesOf(repository)) + { + if (issue.Number == number) + { + return issue; + } + } + + throw new GitHubApiException(HttpStatusCode.NotFound, $"Issue {number} was not found in '{repository}'.", null); + } + + /// Finds an account. + /// The account name. + /// The stored account. + /// The account does not exist (404). + private User FindUser(string login) + { + foreach (User user in _users) + { + if (user.Login == login) + { + return user; + } + } + + throw new GitHubApiException(HttpStatusCode.NotFound, $"User '{login}' was not found.", null); + } + + /// Adds an account without going through the gate. + /// The account name. + /// The name the person goes by. + /// The access token that signs in as the account. + private void AddUser(string login, string displayName, string token) + { + _users.Add(new User { Login = login, DisplayName = displayName }); + _tokens[token] = login; + } + + /// Adds a repository without going through the gate. + /// The account or organisation that owns the repository. + /// The name of the repository. + /// What the repository is for. + private void AddRepository(string owner, string name, string description) + { + Repository repository = new(owner, name, description, 0); + _repositories.Add(repository); + _issues[repository.FullName] = []; + } + + /// Adds an issue without going through the gate. + /// The repository name. + /// The title of the issue. + /// Whether the issue is open or closed. + /// The account name of the reporter. + /// The account name of the assignee, or . + /// The labels of the issue. + /// The stored issue, so the caller can add comments. + private Issue Seed(string repository, string title, IssueState state, string author, string? assignee, params string[] labels) + { + List stored = _issues[repository]; + Issue issue = new() + { + Number = FirstIssueNumber + stored.Count, + Title = title, + State = state, + Author = FindUser(author).Clone(), + Assignee = assignee is null ? null : FindUser(assignee).Clone(), + Labels = labels, + UpdatedAt = Stamp(), + }; + + stored.Add(issue); + return issue; + } +} diff --git a/src/examples/Documentation/Common/GitHub/Issue.cs b/src/examples/Documentation/Common/GitHub/Issue.cs new file mode 100644 index 00000000..2fe2c853 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/Issue.cs @@ -0,0 +1,94 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// A reported problem or request. Each property raises PropertyChanged. +[System.Diagnostics.DebuggerDisplay("Issue: #{Number} {Title} ({State})")] +public sealed class Issue : ObservableObject +{ + /// Gets or sets the number the repository gave the issue. + public int Number + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the short summary of the issue. + public string Title + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets whether the issue is open or closed. + public IssueState State + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the person who reported the issue. + public User Author + { + get; + set => SetProperty(ref field, value); + } = new(); + + /// Gets or sets the person working on the issue, or when nobody is. + public User? Assignee + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the labels attached to the issue. + public IReadOnlyList Labels + { + get; + set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the comments on the issue, oldest first. + public IReadOnlyList Comments + { + get; + set => SetProperty(ref field, value); + } = []; + + /// Gets or sets when the issue last changed. + public DateTimeOffset UpdatedAt + { + get; + set => SetProperty(ref field, value); + } + + /// Creates an independent copy, as the server returns a new object for each response. + /// A copy with the same values. + public Issue Clone() => new() + { + Number = Number, + Title = Title, + State = State, + Author = Author.Clone(), + Assignee = Assignee?.Clone(), + Labels = Labels.ToList(), + Comments = Comments.ToList(), + UpdatedAt = UpdatedAt, + }; + + /// Copies the values of a newer response into this issue, so anything bound to this issue sees the change. + /// The response to copy from. + public void UpdateFrom(Issue newer) + { + Title = newer.Title; + State = newer.State; + Assignee = newer.Assignee; + Labels = newer.Labels; + Comments = newer.Comments; + UpdatedAt = newer.UpdatedAt; + } +} diff --git a/src/examples/Documentation/Common/GitHub/IssueBoardView.cs b/src/examples/Documentation/Common/GitHub/IssueBoardView.cs new file mode 100644 index 00000000..eb4c2172 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/IssueBoardView.cs @@ -0,0 +1,78 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// +/// The issue board screen: a sign-in strip, a repository list, an issue list and a detail area for the selected +/// issue. The view creates its MAUI controls in code; a real page builds them from markup. +/// +[System.Diagnostics.DebuggerDisplay("IssueBoardView: ViewModel = {ViewModel}")] +public sealed class IssueBoardView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public IssueBoardViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the entry where the user types the access token. + public Entry TokenTextBox { get; } = new() { Placeholder = "Access token" }; + + /// Gets the button that signs in. + public Button SignInButton { get; } = new() { Text = "Sign in" }; + + /// Gets the button that signs out. + public Button SignOutButton { get; } = new() { Text = "Sign out" }; + + /// Gets the label that shows who is signed in. + public Label UserLabel { get; } = new(); + + /// Gets the label that shows how many requests are left in the quota. + public Label RateLimitLabel { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// Gets the list of repositories. Its selected item is a . + public CollectionView RepositoryList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the button that loads the issues of the selected repository. + public Button LoadIssuesButton { get; } = new() { Text = "Load issues" }; + + /// Gets the list of open issues. Its selected item is an . + public CollectionView IssueList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the label that shows the title of the selected issue. + public Label IssueTitleLabel { get; } = new(); + + /// Gets the label that shows whether the selected issue is open or closed. + public Label StateLabel { get; } = new(); + + /// Gets the label that shows the account name of the selected issue's assignee. + public Label AssigneeLabel { get; } = new(); + + /// Gets the label that shows the display name of the selected issue's author. + public Label AuthorLabel { get; } = new(); + + /// Gets the button that closes the selected issue. + public Button CloseIssueButton { get; } = new() { Text = "Close issue" }; + + /// Gets the entry where the user writes a comment. + public Entry CommentTextBox { get; } = new() { Placeholder = "Leave a comment" }; + + /// Gets the button that posts the comment. + public Button AddCommentButton { get; } = new() { Text = "Comment" }; + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (IssueBoardViewModel?)value; + } +} diff --git a/src/examples/Documentation/Common/GitHub/IssueBoardViewModel.cs b/src/examples/Documentation/Common/GitHub/IssueBoardViewModel.cs new file mode 100644 index 00000000..57271628 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/IssueBoardViewModel.cs @@ -0,0 +1,298 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Globalization; +using System.Net; +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// +/// The view model behind the issue board. It signs in, lists repositories and their open issues, and closes or +/// comments on the selected issue. Each command starts the matching Async method and returns; await the +/// method to wait for the work. A failed request never throws from those methods. It sets +/// , and a 401 signs the user out. +/// +[System.Diagnostics.DebuggerDisplay("IssueBoardViewModel: IsSignedIn = {IsSignedIn}, Issues = {Issues.Count}")] +public sealed class IssueBoardViewModel : ObservableObject +{ + /// The server the view model calls. + private readonly IGitHubApi _api; + + /// Initializes a new instance of the class. + /// The server to call. + public IssueBoardViewModel(IGitHubApi api) + { + _api = api; + RateLimitRemaining = api.RateLimitRemaining; + SignInCommand = new(() => _ = SignInAsync(), () => !IsSignedIn && !string.IsNullOrWhiteSpace(Token)); + SignOutCommand = new(SignOut, () => IsSignedIn); + LoadIssuesCommand = new(() => _ = LoadIssuesAsync(), () => IsSignedIn && SelectedRepository is not null); + CloseIssueCommand = new(() => _ = CloseIssueAsync(), () => SelectedIssue is { State: IssueState.Open }); + AddCommentCommand = new(() => _ = AddCommentAsync(), () => SelectedIssue is not null && !string.IsNullOrWhiteSpace(NewCommentText)); + } + + /// Gets the question the view answers before an issue closes. The input is the issue; the answer is to close it. + public Interaction ConfirmClose { get; } = new(); + + /// Gets the command that runs . + public Command SignInCommand { get; } + + /// Gets the command that runs . + public Command SignOutCommand { get; } + + /// Gets the command that runs . + public Command LoadIssuesCommand { get; } + + /// Gets the command that runs . + public Command CloseIssueCommand { get; } + + /// Gets the command that runs . + public Command AddCommentCommand { get; } + + /// Gets or sets the access token the user typed. + public string Token + { + get; + set + { + if (SetProperty(ref field, value)) + { + SignInCommand.ChangeCanExecute(); + } + } + } = string.Empty; + + /// Gets a value indicating whether the server accepted the token. + public bool IsSignedIn + { + get; + private set + { + if (!SetProperty(ref field, value)) + { + return; + } + + SignInCommand.ChangeCanExecute(); + SignOutCommand.ChangeCanExecute(); + LoadIssuesCommand.ChangeCanExecute(); + } + } + + /// Gets the signed-in account, or when nobody is signed in. + public User? CurrentUser + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the repositories the account can see. + public IReadOnlyList Repositories + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the repository whose issues the board shows. + public Repository? SelectedRepository + { + get; + set + { + if (SetProperty(ref field, value)) + { + LoadIssuesCommand.ChangeCanExecute(); + } + } + } + + /// Gets the open issues of . + public IReadOnlyList Issues + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the issue the user picked. A path such as SelectedIssue.Assignee.Login is empty while nothing is picked or the issue has no assignee. + public Issue? SelectedIssue + { + get; + set + { + if (!SetProperty(ref field, value)) + { + return; + } + + CloseIssueCommand.ChangeCanExecute(); + AddCommentCommand.ChangeCanExecute(); + } + } + + /// Gets or sets the text of the comment the user is writing. + public string NewCommentText + { + get; + set + { + if (SetProperty(ref field, value)) + { + AddCommentCommand.ChangeCanExecute(); + } + } + } = string.Empty; + + /// Gets how many requests the account may still make before the quota renews. + public int RateLimitRemaining + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last failed request, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Signs in with and loads the repositories. + /// A task that completes when the repositories are loaded or the request failed. + public async Task SignInAsync() + { + try + { + User user = await _api.SignInAsync(Token).ConfigureAwait(false); + CurrentUser = user; + IsSignedIn = true; + ErrorMessage = string.Empty; + Repositories = await _api.ListRepositoriesAsync().ConfigureAwait(false); + } + catch (GitHubApiException ex) + { + Fail(ex); + } + finally + { + RateLimitRemaining = _api.RateLimitRemaining; + } + } + + /// Signs out and clears everything the account could see. + public void SignOut() + { + _api.SignOut(); + Reset(); + } + + /// Loads the open issues of . + /// A task that completes when the issues are loaded or the request failed. + public async Task LoadIssuesAsync() + { + if (SelectedRepository is not { } repository) + { + return; + } + + try + { + IReadOnlyList issues = await _api.ListIssuesAsync(repository.FullName, IssueState.Open).ConfigureAwait(false); + ErrorMessage = string.Empty; + Issues = issues; + SelectedIssue = null; + } + catch (GitHubApiException ex) + { + Fail(ex); + } + finally + { + RateLimitRemaining = _api.RateLimitRemaining; + } + } + + /// Asks to confirm, then closes . + /// A task that completes when the issue is closed, the user declined or the request failed. + public async Task CloseIssueAsync() + { + if (SelectedIssue is not { } issue || SelectedRepository is not { } repository) + { + return; + } + + if (!await ConfirmClose.Handle(issue).ConfigureAwait(false)) + { + return; + } + + try + { + Issue closed = await _api.CloseIssueAsync(repository.FullName, issue.Number).ConfigureAwait(false); + ErrorMessage = string.Empty; + issue.UpdateFrom(closed); + CloseIssueCommand.ChangeCanExecute(); + } + catch (GitHubApiException ex) + { + Fail(ex); + } + finally + { + RateLimitRemaining = _api.RateLimitRemaining; + } + } + + /// Posts on . + /// A task that completes when the comment is posted or the request failed. + public async Task AddCommentAsync() + { + if (SelectedIssue is not { } issue || SelectedRepository is not { } repository) + { + return; + } + + try + { + Issue updated = await _api.AddCommentAsync(repository.FullName, issue.Number, NewCommentText).ConfigureAwait(false); + ErrorMessage = string.Empty; + issue.UpdateFrom(updated); + NewCommentText = string.Empty; + } + catch (GitHubApiException ex) + { + Fail(ex); + } + finally + { + RateLimitRemaining = _api.RateLimitRemaining; + } + } + + /// Reports a failed request, and signs out when the server no longer accepts the token. + /// The failure. + private void Fail(GitHubApiException ex) + { + ErrorMessage = ex.RateLimitResetsAt is { } resetsAt + ? $"{ex.Message} Try again after {resetsAt.ToString("HH:mm", CultureInfo.InvariantCulture)} UTC." + : ex.Message; + + if (ex.StatusCode == HttpStatusCode.Unauthorized) + { + Reset(); + } + } + + /// Clears the account and everything loaded for it. + private void Reset() + { + IsSignedIn = false; + CurrentUser = null; + Repositories = []; + SelectedRepository = null; + Issues = []; + SelectedIssue = null; + } +} diff --git a/src/examples/Documentation/Common/GitHub/IssueComment.cs b/src/examples/Documentation/Common/GitHub/IssueComment.cs new file mode 100644 index 00000000..5499f5f3 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/IssueComment.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// A comment on an issue. +/// The account name of the person who wrote the comment. +/// The text of the comment. +/// When the comment was written. +[System.Diagnostics.DebuggerDisplay("IssueComment: {Author}: {Body}")] +public sealed record IssueComment(string Author, string Body, DateTimeOffset CreatedAt); diff --git a/src/examples/Documentation/Common/GitHub/IssueState.cs b/src/examples/Documentation/Common/GitHub/IssueState.cs new file mode 100644 index 00000000..56a815e0 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/IssueState.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// Whether an issue still needs work. +public enum IssueState +{ + /// The issue needs work. + Open = 0, + + /// The issue is finished. + Closed = 1, +} diff --git a/src/examples/Documentation/Common/GitHub/Repository.cs b/src/examples/Documentation/Common/GitHub/Repository.cs new file mode 100644 index 00000000..f9b1b087 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/Repository.cs @@ -0,0 +1,17 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// A repository that holds issues. +/// The account or organisation that owns the repository. +/// The name of the repository. +/// What the repository is for. +/// How many issues are open when the server reads the repository. +[System.Diagnostics.DebuggerDisplay("Repository: {FullName}")] +public sealed record Repository(string Owner, string Name, string Description, int OpenIssueCount) +{ + /// Gets the name that identifies the repository to the server, such as acme/webshop. + public string FullName => $"{Owner}/{Name}"; +} diff --git a/src/examples/Documentation/Common/GitHub/User.cs b/src/examples/Documentation/Common/GitHub/User.cs new file mode 100644 index 00000000..c52267b5 --- /dev/null +++ b/src/examples/Documentation/Common/GitHub/User.cs @@ -0,0 +1,30 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.GitHub; + +/// A person with an account on the server. Each property raises PropertyChanged. +[System.Diagnostics.DebuggerDisplay("User: {Login}")] +public sealed class User : ObservableObject +{ + /// Gets or sets the account name, such as priya-nair. + public string Login + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the name the person goes by. + public string DisplayName + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Creates an independent copy, as the server returns a new object for each response. + /// A copy with the same values. + public User Clone() => new() { Login = Login, DisplayName = DisplayName }; +} diff --git a/src/examples/Documentation/Common/Infrastructure/ObservableObject.cs b/src/examples/Documentation/Common/Infrastructure/ObservableObject.cs new file mode 100644 index 00000000..845a50b2 --- /dev/null +++ b/src/examples/Documentation/Common/Infrastructure/ObservableObject.cs @@ -0,0 +1,38 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace ReactiveUI.Binding.Documentation.Infrastructure; + +/// A base class for objects that report each property change through . +public class ObservableObject : INotifyPropertyChanged +{ + /// + public event PropertyChangedEventHandler? PropertyChanged; + + /// Stores a new value and reports the change when the value differs from the stored one. + /// The type of the property. + /// The field that holds the property value. + /// The value being assigned. + /// The name of the property; filled in by the compiler. + /// when the value changed and the event was raised. + internal bool SetProperty(ref T storage, T value, [CallerMemberName] string? propertyName = null) + { + if (EqualityComparer.Default.Equals(storage, value)) + { + return false; + } + + storage = value; + RaisePropertyChanged(propertyName); + return true; + } + + /// Reports that a property changed. + /// The name of the property that changed. + protected void RaisePropertyChanged([CallerMemberName] string? propertyName = null) => + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); +} diff --git a/src/examples/Documentation/Common/Todo/ITodoStore.cs b/src/examples/Documentation/Common/Todo/ITodoStore.cs new file mode 100644 index 00000000..c52fae31 --- /dev/null +++ b/src/examples/Documentation/Common/Todo/ITodoStore.cs @@ -0,0 +1,44 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// The to-do database. Every call is asynchronous, as a call to a real database is. +public interface ITodoStore +{ + /// Reads every item. + /// Copies of the items, oldest first. + /// The database is unreachable. + Task> QueryAsync(); + + /// Reads the items whose title or notes contain a text. + /// The text to look for. + /// Copies of the matching items, oldest first. + /// The database is unreachable. + Task> QueryAsync(string text); + + /// Reads one item. + /// The identifier of the item. + /// A copy of the item, or when no item has that identifier. + /// The database is unreachable. + Task GetAsync(int id); + + /// Stores a new item. + /// The item to store; its identifier is ignored. + /// A copy of the stored item with its identifier assigned. + /// The database is unreachable or the title is blank. + Task AddAsync(TodoItem item); + + /// Replaces the stored values of an item. + /// The item, identified by . + /// A copy of the stored item. + /// The database is unreachable or no item has that identifier. + Task UpdateAsync(TodoItem item); + + /// Removes an item. + /// The identifier of the item. + /// A task that completes when the item is removed. + /// The database is unreachable or no item has that identifier. + Task DeleteAsync(int id); +} diff --git a/src/examples/Documentation/Common/Todo/InMemoryTodoStore.cs b/src/examples/Documentation/Common/Todo/InMemoryTodoStore.cs new file mode 100644 index 00000000..d1ab063a --- /dev/null +++ b/src/examples/Documentation/Common/Todo/InMemoryTodoStore.cs @@ -0,0 +1,157 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// +/// A to-do database that lives in memory. It keeps its own rows and hands out copies, so changing an item you +/// read does not change the database until you call . +/// +[System.Diagnostics.DebuggerDisplay("InMemoryTodoStore: Rows = {RowCount}, IsOffline = {IsOffline}")] +public sealed class InMemoryTodoStore : ITodoStore +{ + /// The message of the exception thrown while the database is offline. + private const string OfflineMessage = "The to-do database is unreachable."; + + /// The due date of the car registration task. + private static readonly DateOnly RegistrationDue = new(2026, 3, 20); + + /// The due date of the dentist task. + private static readonly DateOnly DentistDue = new(2026, 4, 2); + + /// The due date of the tax return task. + private static readonly DateOnly TaxReturnDue = new(2026, 2, 28); + + /// The stored rows, in the order they were added. + private readonly List _rows = []; + + /// The identifier the next added item receives. + private int _nextId = 1; + + /// Gets or sets how long each call takes to answer; zero answers on the next turn of the scheduler. + public TimeSpan Latency { get; set; } + + /// Gets or sets a value indicating whether every call fails with a . + public bool IsOffline { get; set; } + + /// Gets the number of stored rows, without waiting for . + public int RowCount => _rows.Count; + + /// Creates a database that holds a few realistic household tasks. + /// A new database with four items, one of them finished. + public static InMemoryTodoStore CreateSeeded() + { + InMemoryTodoStore store = new(); + store.Seed("Renew car registration", "Bring the insurance certificate.", RegistrationDue, TodoPriority.High, false, "car", "admin"); + store.Seed("Book dentist appointment", "Ask about the evening slots.", DentistDue, TodoPriority.Normal, false, "health"); + store.Seed("Buy birthday present for Sam", string.Empty, null, TodoPriority.Low, false, "family"); + store.Seed("File quarterly tax return", "Receipts are in the shared folder.", TaxReturnDue, TodoPriority.High, true, "admin", "money"); + return store; + } + + /// + public Task> QueryAsync() => QueryAsync(string.Empty); + + /// + public async Task> QueryAsync(string text) + { + await EnterAsync().ConfigureAwait(false); + + List matches = []; + foreach (TodoItem row in _rows) + { + if (row.Matches(text)) + { + matches.Add(row.Clone()); + } + } + + return matches; + } + + /// + public async Task GetAsync(int id) + { + await EnterAsync().ConfigureAwait(false); + + return _rows.Find(row => row.Id == id)?.Clone(); + } + + /// + public async Task AddAsync(TodoItem item) + { + await EnterAsync().ConfigureAwait(false); + + if (string.IsNullOrWhiteSpace(item.Title)) + { + throw new TodoStoreException("A to-do item needs a title."); + } + + TodoItem row = item.Clone(); + row.Id = _nextId; + _nextId++; + _rows.Add(row); + return row.Clone(); + } + + /// + public async Task UpdateAsync(TodoItem item) + { + await EnterAsync().ConfigureAwait(false); + + int index = _rows.FindIndex(row => row.Id == item.Id); + if (index < 0) + { + throw new TodoStoreException($"There is no to-do item {item.Id}."); + } + + _rows[index] = item.Clone(); + return item.Clone(); + } + + /// + public async Task DeleteAsync(int id) + { + await EnterAsync().ConfigureAwait(false); + + if (_rows.RemoveAll(row => row.Id == id) == 0) + { + throw new TodoStoreException($"There is no to-do item {id}."); + } + } + + /// Waits for , then fails when the database is offline. + /// A task that completes when the call may proceed. + /// The database is offline. + private async Task EnterAsync() + { + if (Latency == TimeSpan.Zero) + { + await Task.Yield(); + } + else + { + await Task.Delay(Latency).ConfigureAwait(false); + } + + if (IsOffline) + { + throw new TodoStoreException(OfflineMessage); + } + } + + /// Adds a row without waiting for . + /// The title of the row. + /// The notes of the row. + /// The due date of the row. + /// The priority of the row. + /// Whether the row is finished. + /// The tags of the row. + private void Seed(string title, string notes, DateOnly? dueDate, TodoPriority priority, bool isDone, params string[] tags) + { + TodoItem row = new() { Id = _nextId, Title = title, Notes = notes, DueDate = dueDate, Priority = priority, IsDone = isDone, Tags = tags }; + _nextId++; + _rows.Add(row); + } +} diff --git a/src/examples/Documentation/Common/Todo/TodoItem.cs b/src/examples/Documentation/Common/Todo/TodoItem.cs new file mode 100644 index 00000000..d2aa6b34 --- /dev/null +++ b/src/examples/Documentation/Common/Todo/TodoItem.cs @@ -0,0 +1,73 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// One task on the to-do list. Each property raises PropertyChanged. +[System.Diagnostics.DebuggerDisplay("TodoItem: {Id}: {Title}, IsDone = {IsDone}")] +public sealed class TodoItem : ObservableObject +{ + /// Gets or sets the identifier the store assigned; zero until the item is stored. + public int Id + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the short summary of the task. + public string Title + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets the longer description of the task. + public string Notes + { + get; + set => SetProperty(ref field, value); + } = string.Empty; + + /// Gets or sets a value indicating whether the task is finished. + public bool IsDone + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets the day the task is due, or when it has no deadline. + public DateOnly? DueDate + { + get; + set => SetProperty(ref field, value); + } + + /// Gets or sets how urgent the task is. + public TodoPriority Priority + { + get; + set => SetProperty(ref field, value); + } = TodoPriority.Normal; + + /// Gets or sets the labels attached to the task. + public IReadOnlyList Tags + { + get; + set => SetProperty(ref field, value); + } = []; + + /// Creates an independent copy, as a database returns a new row each time it is read. + /// A copy with the same values. + public TodoItem Clone() => new() { Id = Id, Title = Title, Notes = Notes, IsDone = IsDone, DueDate = DueDate, Priority = Priority, Tags = Tags.ToList() }; + + /// Checks whether the title or notes contain a text, ignoring case. + /// The text to look for; blank matches every item. + /// when the item matches. + public bool Matches(string text) => + string.IsNullOrWhiteSpace(text) + || Title.Contains(text, StringComparison.OrdinalIgnoreCase) + || Notes.Contains(text, StringComparison.OrdinalIgnoreCase); +} diff --git a/src/examples/Documentation/Common/Todo/TodoListViewModel.cs b/src/examples/Documentation/Common/Todo/TodoListViewModel.cs new file mode 100644 index 00000000..d65ce544 --- /dev/null +++ b/src/examples/Documentation/Common/Todo/TodoListViewModel.cs @@ -0,0 +1,213 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.ComponentModel; +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// +/// The view model behind the to-do screen. It loads items from an , filters them by text +/// and keeps a count of the items still to do. Each command starts the matching method and returns; await the +/// method itself to wait for its work. +/// +[System.Diagnostics.DebuggerDisplay("TodoListViewModel: Items = {Items.Count}, RemainingCount = {RemainingCount}")] +public sealed class TodoListViewModel : ObservableObject +{ + /// The database the view model reads and writes. + private readonly ITodoStore _store; + + /// Every loaded item, before the filter is applied. + private List _all = []; + + /// Initializes a new instance of the class. + /// The database to read and write. + public TodoListViewModel(ITodoStore store) + { + _store = store; + LoadCommand = new(() => _ = LoadAsync()); + AddCommand = new(() => _ = AddAsync(), () => !string.IsNullOrWhiteSpace(NewTitle)); + CompleteCommand = new(() => _ = CompleteAsync(), () => SelectedItem is { IsDone: false }); + } + + /// Gets the command that runs . + public Command LoadCommand { get; } + + /// Gets the command that runs ; it runs only while is not blank. + public Command AddCommand { get; } + + /// Gets the command that runs ; it runs only while an unfinished item is selected. + public Command CompleteCommand { get; } + + /// Gets the items that match . + public IReadOnlyList Items + { + get; + private set => SetProperty(ref field, value); + } = []; + + /// Gets or sets the selected item, or when nothing is selected. + public TodoItem? SelectedItem + { + get; + set + { + if (SetProperty(ref field, value)) + { + CompleteCommand.ChangeCanExecute(); + } + } + } + + /// Gets or sets the title of the item the user is about to add. + public string NewTitle + { + get; + set + { + if (SetProperty(ref field, value)) + { + AddCommand.ChangeCanExecute(); + } + } + } = string.Empty; + + /// Gets or sets the text that is narrowed to; blank shows every item. + public string FilterText + { + get; + set + { + if (SetProperty(ref field, value)) + { + ApplyFilter(); + } + } + } = string.Empty; + + /// Gets the number of loaded items that are not finished, whatever the filter. + public int RemainingCount + { + get; + private set => SetProperty(ref field, value); + } + + /// Gets the message from the last failed database call, or an empty string. + public string ErrorMessage + { + get; + private set => SetProperty(ref field, value); + } = string.Empty; + + /// Reads every item and replaces the list. + /// A task that completes when the list is replaced. + public async Task LoadAsync() + { + try + { + IReadOnlyList rows = await _store.QueryAsync(); + ErrorMessage = string.Empty; + ReplaceAll(rows); + } + catch (TodoStoreException ex) + { + ErrorMessage = ex.Message; + } + } + + /// Stores as a new item and selects it. + /// A task that completes when the item is stored. + public async Task AddAsync() + { + try + { + TodoItem added = await _store.AddAsync(new TodoItem { Title = NewTitle.Trim() }); + ErrorMessage = string.Empty; + NewTitle = string.Empty; + ReplaceAll(_all.Append(added)); + SelectedItem = Find(added.Id); + } + catch (TodoStoreException ex) + { + ErrorMessage = ex.Message; + } + } + + /// Stores the selected item as finished. + /// A task that completes when the item is stored. + public async Task CompleteAsync() + { + if (SelectedItem is not { } item) + { + return; + } + + try + { + TodoItem update = item.Clone(); + update.IsDone = true; + TodoItem saved = await _store.UpdateAsync(update); + ErrorMessage = string.Empty; + item.IsDone = saved.IsDone; + CompleteCommand.ChangeCanExecute(); + } + catch (TodoStoreException ex) + { + ErrorMessage = ex.Message; + } + } + + /// Replaces every loaded item and follows the new items for changes to . + /// The new set of items. + private void ReplaceAll(IEnumerable rows) + { + foreach (TodoItem old in _all) + { + old.PropertyChanged -= OnItemChanged; + } + + _all = [.. rows]; + + foreach (TodoItem item in _all) + { + item.PropertyChanged += OnItemChanged; + } + + ApplyFilter(); + } + + /// Rebuilds from the loaded items and the filter, keeping the selection when it survives. + private void ApplyFilter() + { + int? selectedId = SelectedItem?.Id; + + Items = _all.Where(item => item.Matches(FilterText)).ToList(); + SelectedItem = selectedId is { } id ? Find(id) : null; + RemainingCount = CountRemaining(); + } + + /// Finds a visible item. + /// The identifier of the item. + /// The item, or when the filter hides it or it does not exist. + private TodoItem? Find(int id) => Items.FirstOrDefault(item => item.Id == id); + + /// Counts the loaded items that are not finished. + /// The number of unfinished items. + private int CountRemaining() => _all.Count(static item => !item.IsDone); + + /// Recounts the remaining items when one is finished or reopened. + /// The item that changed. + /// The event data. + private void OnItemChanged(object? sender, PropertyChangedEventArgs e) + { + if (e.PropertyName != nameof(TodoItem.IsDone)) + { + return; + } + + RemainingCount = CountRemaining(); + CompleteCommand.ChangeCanExecute(); + } +} diff --git a/src/examples/Documentation/Common/Todo/TodoPriority.cs b/src/examples/Documentation/Common/Todo/TodoPriority.cs new file mode 100644 index 00000000..40ab3fbf --- /dev/null +++ b/src/examples/Documentation/Common/Todo/TodoPriority.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// How urgent a to-do item is. +public enum TodoPriority +{ + /// The item can wait. + Low = 0, + + /// The item has no particular urgency. + Normal = 1, + + /// The item needs attention soon. + High = 2, +} diff --git a/src/examples/Documentation/Common/Todo/TodoStoreException.cs b/src/examples/Documentation/Common/Todo/TodoStoreException.cs new file mode 100644 index 00000000..de802463 --- /dev/null +++ b/src/examples/Documentation/Common/Todo/TodoStoreException.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// Reports that the to-do database could not complete a request. +public sealed class TodoStoreException : Exception +{ + /// Initializes a new instance of the class. + public TodoStoreException() + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + public TodoStoreException(string message) + : base(message) + { + } + + /// Initializes a new instance of the class. + /// What went wrong. + /// The failure that caused this one. + public TodoStoreException(string message, Exception innerException) + : base(message, innerException) + { + } +} diff --git a/src/examples/Documentation/Common/Todo/TodoView.cs b/src/examples/Documentation/Common/Todo/TodoView.cs new file mode 100644 index 00000000..f53cea32 --- /dev/null +++ b/src/examples/Documentation/Common/Todo/TodoView.cs @@ -0,0 +1,66 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Todo; + +/// +/// The to-do screen: a list with a title box to add items and a detail area for the selected item. A real UI +/// framework builds these controls from markup; here the view creates them in code. +/// +[System.Diagnostics.DebuggerDisplay("TodoView: ViewModel = {ViewModel}")] +public sealed class TodoView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public TodoListViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the entry where the user types the title of a new item. + public Entry NewTitleTextBox { get; } = new() { Placeholder = "What needs doing?" }; + + /// Gets the entry where the user narrows the list. + public Entry FilterTextBox { get; } = new() { Placeholder = "Filter" }; + + /// Gets the button that adds the new item. + public Button AddButton { get; } = new() { Text = "Add" }; + + /// Gets the button that finishes the selected item. + public Button CompleteButton { get; } = new() { Text = "Complete" }; + + /// Gets the list of items. + public CollectionView ItemsList { get; } = new() { SelectionMode = SelectionMode.Single }; + + /// Gets the label that shows how many items are left to do. + public Label RemainingLabel { get; } = new(); + + /// Gets the label that shows the last error. + public Label ErrorLabel { get; } = new(); + + /// Gets the entry that edits the title of the selected item. + public Entry SelectedTitleTextBox { get; } = new(); + + /// Gets the entry that edits the notes of the selected item. + public Entry NotesTextBox { get; } = new(); + + /// Gets the entry that edits the due date of the selected item. + public Entry DueDateTextBox { get; } = new() { Placeholder = "yyyy-MM-dd" }; + + /// Gets the check box that ticks the selected item as finished. + public CheckBox DoneCheckBox { get; } = new(); + + /// Gets the label that shows the tags of the selected item. + public Label TagsLabel { get; } = new(); + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (TodoListViewModel?)value; + } +} diff --git a/src/examples/Documentation/Pages/bindings/AccountNameView.cs b/src/examples/Documentation/Pages/bindings/AccountNameView.cs new file mode 100644 index 00000000..0f10a691 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/AccountNameView.cs @@ -0,0 +1,31 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Banking; +using ReactiveUI.Binding.Documentation.Infrastructure; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// The account detail strip: the name of the selected account in a box the customer could type into. +[System.Diagnostics.DebuggerDisplay("AccountNameView: ViewModel = {ViewModel}")] +public sealed class AccountNameView : ObservableObject, IViewFor +{ + /// Gets or sets the view model the view shows. + public AccountsViewModel? ViewModel + { + get; + set => SetProperty(ref field, value); + } + + /// Gets the box that shows the name of the selected account. + public Entry NameTextBox { get; } = new() { Placeholder = "Account name" }; + + /// + object? IViewFor.ViewModel + { + get => ViewModel; + set => ViewModel = (AccountsViewModel?)value; + } +} diff --git a/src/examples/Documentation/Pages/bindings/AuditedInteraction.cs b/src/examples/Documentation/Pages/bindings/AuditedInteraction.cs new file mode 100644 index 00000000..c07712f4 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/AuditedInteraction.cs @@ -0,0 +1,22 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// An interaction that writes each question and answer to the console, as a bank keeps an audit trail of an approval. +/// The type of the interaction's input. +/// The type of the interaction's output. +[System.Diagnostics.DebuggerDisplay("AuditedInteraction: Audited interaction")] +public sealed class AuditedInteraction : Interaction +{ + /// + public override async Task Handle(TInput input) + { + Console.WriteLine($"ask {input} of {GetHandlers().Length} handlers"); + return await base.Handle(input).ConfigureAwait(false); + } + + /// + protected override IOutputContext GenerateContext(TInput input) => new AuditingOutputContext(base.GenerateContext(input)); +} diff --git a/src/examples/Documentation/Pages/bindings/AuditingOutputContext.cs b/src/examples/Documentation/Pages/bindings/AuditingOutputContext.cs new file mode 100644 index 00000000..1ad0250d --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/AuditingOutputContext.cs @@ -0,0 +1,29 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Passes every call on to an interaction context and writes each answer to the console. +/// The type of the interaction's input. +/// The type of the interaction's output. +/// The context that holds the input and the answer. +[System.Diagnostics.DebuggerDisplay("AuditingOutputContext: Input = {Input}, IsHandled = {IsHandled}")] +public sealed class AuditingOutputContext(IOutputContext inner) : IOutputContext +{ + /// + public TInput Input => inner.Input; + + /// + public bool IsHandled => inner.IsHandled; + + /// + public void SetOutput(TOutput output) + { + Console.WriteLine($"answer {output}"); + inner.SetOutput(output); + } + + /// + public TOutput GetOutput() => inner.GetOutput(); +} diff --git a/src/examples/Documentation/Pages/bindings/BindCommandExamples.cs b/src/examples/Documentation/Pages/bindings/BindCommandExamples.cs new file mode 100644 index 00000000..4f7ddbfa --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/BindCommandExamples.cs @@ -0,0 +1,372 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Banking; +using ReactiveUI.Binding.Documentation.CloudStorage; +using ReactiveUI.Binding.Documentation.Education; +using ReactiveUI.Binding.Documentation.GitHub; +using ReactiveUI.Binding.Documentation.Todo; +using ReactiveUI.Primitives; +using ReactiveUI.Primitives.Signals; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Shows BindCommand: a button runs a view model command, follows its CanExecute and can pass it a parameter. +public static class BindCommandExamples +{ + /// The name of the event a MAUI button raises when the user presses it. + private const string ClickedEventName = "Clicked"; + + /// The title of the to-do item the add button creates. + private const string NewTodoTitle = "Book electrician"; + + /// The amount the customer sends to the utility. + private const decimal UtilityAmount = 250M; + + /// The position of Linear Algebra in the list of courses. + private const int MathCourseIndex = 1; + + /// The position of Diego Alvarez in the list of students who could join Linear Algebra. + private const int DiegoCandidateIndex = 2; + + /// The name of the file the user picks in the upload dialog. + private const string SpringCampaignFileName = "spring-campaign.png"; + + /// The size in bytes of the picked file. + private const long SpringCampaignSize = 3_145_728; + + /// The position of the uploaded file among the objects of the photos folder. + private const int SpringCampaignPosition = 1; + + /// Binds the add button of the to-do screen to the view model's add command; the button follows the command's CanExecute. + /// A task that completes when the item is stored. + public static async Task BindAddButton() + { + TodoListViewModel viewModel = new(InMemoryTodoStore.CreateSeeded()); + await viewModel.LoadAsync(); + TodoView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, x => x.AddCommand, v => v.AddButton); + + Console.WriteLine(view.AddButton.IsEnabled); + + viewModel.NewTitle = NewTodoTitle; + + Console.WriteLine(view.AddButton.IsEnabled); + + // The command starts the work and returns, so start listening for the new selection before the click. + Task added = viewModel.WhenChanged(x => x.SelectedItem).Where(static item => item is not null).FirstAsync(); + ((IButtonController)view.AddButton).SendClicked(); + await added; + + Console.WriteLine(viewModel.Items.Count); + Console.WriteLine(viewModel.SelectedItem!.Title); + Console.WriteLine(view.AddButton.IsEnabled); + + // Output: + // False + // True + // 5 + // Book electrician + // False + } + + /// Binds the complete button through its Clicked event; the binding runs the command on a click and leaves the button's enabled state alone. + /// A task that completes when the item is finished. + public static async Task BindCompleteButtonToNamedEvent() + { + TodoListViewModel viewModel = new(InMemoryTodoStore.CreateSeeded()); + await viewModel.LoadAsync(); + TodoView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, x => x.CompleteCommand, v => v.CompleteButton, toEvent: ClickedEventName); + + // No item is selected, so the command refuses the click. + ((IButtonController)view.CompleteButton).SendClicked(); + + Console.WriteLine(viewModel.RemainingCount); + + TodoItem item = viewModel.Items[0]; + viewModel.SelectedItem = item; + Task completed = item.WhenChanged(x => x.IsDone).Where(static done => done).FirstAsync(); + ((IButtonController)view.CompleteButton).SendClicked(); + await completed; + + Console.WriteLine(viewModel.RemainingCount); + Console.WriteLine(view.CompleteButton.IsEnabled); + + // Output: + // 3 + // 2 + // True + } + + /// + /// Binds one button to one command twice, with and without toEvent. Each call is its own binding: the plain one + /// attaches the command to the button and follows its CanExecute, and the event one runs the command on each click. + /// + public static void BindExportButtonWithAndWithoutEvent() + { + StatementExportViewModel viewModel = new() { HasStatement = true }; + StatementExportView view = new() { ViewModel = viewModel }; + + IDisposable attached = view.BindCommand(viewModel, x => x.ExportCommand, v => v.ExportButton); + IDisposable clicked = view.BindCommand(viewModel, x => x.ExportCommand, v => v.ExportButton, toEvent: ClickedEventName); + + Console.WriteLine(ReferenceEquals(viewModel.ExportCommand, view.ExportButton.Command)); + + // One press reaches the command through both bindings. + ((IButtonController)view.ExportButton).SendClicked(); + + Console.WriteLine(viewModel.ExportCount); + + clicked.Dispose(); + ((IButtonController)view.ExportButton).SendClicked(); + + Console.WriteLine(viewModel.ExportCount); + + // Only the plain binding follows CanExecute, so the button goes dark while no statement is chosen. + viewModel.HasStatement = false; + + Console.WriteLine(view.ExportButton.IsEnabled); + + attached.Dispose(); + + // Output: + // True + // 2 + // 3 + // False + } + + /// Binds the sign-in button; it stays disabled until the user has typed an access token. + /// A task that completes when the sign-in has finished. + public static async Task BindSignInButton() + { + IssueBoardViewModel viewModel = new(InMemoryGitHubServer.CreateSeeded()); + IssueBoardView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, x => x.SignInCommand, v => v.SignInButton); + + Console.WriteLine(view.SignInButton.IsEnabled); + + viewModel.Token = InMemoryGitHubServer.PriyaToken; + + Console.WriteLine(view.SignInButton.IsEnabled); + + Task> loaded = viewModel.WhenChanged(x => x.Repositories).Where(static repositories => repositories.Count > 0).FirstAsync(); + ((IButtonController)view.SignInButton).SendClicked(); + await loaded; + + Console.WriteLine(viewModel.CurrentUser!.Login); + Console.WriteLine(view.SignInButton.IsEnabled); + + // Output: + // False + // True + // priya-nair + // False + } + + /// Binds the close-issue button; the view model asks a confirmation handler before it closes the issue. + /// A task that completes when the issue is closed. + public static async Task BindCloseIssueButton() + { + IssueBoardViewModel viewModel = await OpenWebshopIssuesAsync(); + IssueBoardView view = new() { ViewModel = viewModel }; + using IDisposable confirmation = viewModel.ConfirmClose.RegisterHandler(static context => context.SetOutput(true)); + + using IDisposable binding = view.BindCommand(viewModel, x => x.CloseIssueCommand, v => v.CloseIssueButton); + + Console.WriteLine(view.CloseIssueButton.IsEnabled); + + Issue issue = viewModel.Issues[0]; + viewModel.SelectedIssue = issue; + + Console.WriteLine(view.CloseIssueButton.IsEnabled); + + Task requestFinished = viewModel.WhenChanged(x => x.RateLimitRemaining).Skip(1).FirstAsync(); + ((IButtonController)view.CloseIssueButton).SendClicked(); + await requestFinished; + + Console.WriteLine(issue.State); + Console.WriteLine(view.CloseIssueButton.IsEnabled); + + // Output: + // False + // True + // Closed + // False + } + + /// Binds the transfer button; it is disabled until the draft breaks none of the view model's rules. + /// A task that completes when the transfer has been sent. + public static async Task BindTransferButton() + { + TransferViewModel viewModel = new(new InMemoryBankingBackend()); + await viewModel.LoadAsync(); + using IDisposable confirmation = viewModel.ConfirmTransfer.RegisterHandler(static context => context.SetOutput(true)); + TransferView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, x => x.TransferCommand, v => v.TransferButton); + + Console.WriteLine(view.TransferButton.IsEnabled); + + viewModel.Draft.Source = viewModel.Accounts[0]; + viewModel.Draft.Payee = viewModel.Payees[0]; + + Console.WriteLine(view.TransferButton.IsEnabled); + + viewModel.Draft.Amount = UtilityAmount; + + Console.WriteLine(view.TransferButton.IsEnabled); + + // The transfer resets the amount once the bank has answered. + Task sent = viewModel.Draft.WhenChanged(x => x.Amount).Where(static amount => amount == 0M).FirstAsync(); + ((IButtonController)view.TransferButton).SendClicked(); + await sent; + + Console.WriteLine(viewModel.LastReceipt!.NewBalance); + Console.WriteLine(view.TransferButton.IsEnabled); + + // Output: + // False + // False + // True + // 2200.75 + // False + } + + /// Binds the enrol button with an observable command parameter: the student selected in the candidate list. + /// A task that completes when the student is on the roster. + public static async Task BindEnrolButtonWithObservableParameter() + { + GradebookViewModel viewModel = new(InMemoryStudentRecords.CreateSeeded()); + await viewModel.LoadCoursesAsync(); + viewModel.SelectedCourse = viewModel.Courses[MathCourseIndex]; + await viewModel.OpenCourseAsync(); + GradebookView view = new() { ViewModel = viewModel }; + view.CandidateList.ItemsSource = viewModel.Candidates.ToList(); + + using IDisposable binding = view.BindCommand(viewModel, x => x.EnrolCommand, v => v.EnrolButton, view.CandidateList.WhenChanged(x => x.SelectedItem)); + + Console.WriteLine(view.EnrolButton.IsEnabled); + + view.CandidateList.SelectedItem = viewModel.Candidates[DiegoCandidateIndex]; + + Console.WriteLine(view.EnrolButton.IsEnabled); + + Task> rosterLoaded = viewModel.WhenChanged(x => x.Roster).Skip(1).FirstAsync(); + ((IButtonController)view.EnrolButton).SendClicked(); + await rosterLoaded; + + Console.WriteLine(viewModel.Roster.Count); + + // Output: + // False + // True + // 3 + } + + /// Binds the upload button of the browser through its Clicked event with an observable command parameter: each file the user picks. + /// A task that completes when the file is stored. + public static async Task BindUploadButtonWithObservableParameterOnNamedEvent() + { + StorageBrowserViewModel browser = await OpenPhotosFolderAsync(); + StorageBrowserView view = new() { ViewModel = browser }; + Signal pickedFiles = new(); + + using IDisposable binding = view.BindCommand(browser, x => x.UploadCommand, v => v.UploadButton, pickedFiles, toEvent: ClickedEventName); + + pickedFiles.OnNext(SpringCampaign()); + Task uploaded = browser.WhenChanged(x => x.IsUploading).Skip(1).Where(static uploading => !uploading).FirstAsync(); + ((IButtonController)view.UploadButton).SendClicked(); + await uploaded; + + Console.WriteLine(browser.Objects.Count); + + // Output: + // 3 + } + + /// Binds the upload button through its Clicked event with a parameter expression. + /// A task that completes when the file is stored. + public static async Task BindUploadButtonWithParameterExpressionOnNamedEvent() + { + StorageBrowserViewModel browser = await OpenPhotosFolderAsync(); + UploadPanelViewModel viewModel = new(browser); + UploadPanelView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, panel => panel.UploadCommand, v => v.UploadButton, panel => panel.PendingUpload, toEvent: ClickedEventName); + + viewModel.PendingUpload = SpringCampaign(); + Task uploaded = browser.WhenChanged(x => x.IsUploading).Skip(1).Where(static uploading => !uploading).FirstAsync(); + ((IButtonController)view.UploadButton).SendClicked(); + await uploaded; + + Console.WriteLine(browser.Objects.Count); + + // Output: + // 3 + } + + /// Binds the upload button with a parameter expression: the file the user picked, read from the view model. + /// A task that completes when the file is stored. + public static async Task BindUploadButtonWithParameterExpression() + { + StorageBrowserViewModel browser = await OpenPhotosFolderAsync(); + UploadPanelViewModel viewModel = new(browser); + UploadPanelView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindCommand(viewModel, x => x.UploadCommand, v => v.UploadButton, x => x.PendingUpload); + + Console.WriteLine(view.UploadButton.IsEnabled); + + viewModel.PendingUpload = SpringCampaign(); + + Console.WriteLine(view.UploadButton.IsEnabled); + + Task uploaded = browser.WhenChanged(x => x.IsUploading).Skip(1).Where(static uploading => !uploading).FirstAsync(); + ((IButtonController)view.UploadButton).SendClicked(); + await uploaded; + + Console.WriteLine(browser.Objects.Count); + Console.WriteLine(browser.Objects[SpringCampaignPosition].Key); + + // Output: + // False + // True + // 3 + // photos/2026/spring-campaign.png + } + + /// Creates the file the user picks in the upload dialog. + /// The upload request. + private static UploadRequest SpringCampaign() => new(SpringCampaignFileName, SpringCampaignSize, "image/png"); + + /// Signs in as Priya Nair and loads the open issues of the webshop repository. + /// A task that completes with the view model once the issues are loaded. + private static async Task OpenWebshopIssuesAsync() + { + IssueBoardViewModel viewModel = new(InMemoryGitHubServer.CreateSeeded()) { Token = InMemoryGitHubServer.PriyaToken }; + + await viewModel.SignInAsync(); + viewModel.SelectedRepository = viewModel.Repositories[0]; + await viewModel.LoadIssuesAsync(); + return viewModel; + } + + /// Opens the 2026 photos folder of the media bucket. + /// A task that completes with the browser once the folder is listed. + private static async Task OpenPhotosFolderAsync() + { + StorageBrowserViewModel browser = new(InMemoryObjectStorage.CreateSeeded()); + + await browser.LoadBucketsAsync(); + browser.SelectedBucket = browser.Buckets[0]; + browser.CurrentPrefix = "photos/2026/"; + await browser.LoadObjectsAsync(); + return browser; + } +} diff --git a/src/examples/Documentation/Pages/bindings/BindInteractionExamples.cs b/src/examples/Documentation/Pages/bindings/BindInteractionExamples.cs new file mode 100644 index 00000000..3de560f6 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/BindInteractionExamples.cs @@ -0,0 +1,590 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Banking; +using ReactiveUI.Binding.Documentation.Education; +using ReactiveUI.Binding.Documentation.GitHub; +using ReactiveUI.Primitives.Concurrency; +using ReactiveUI.Primitives.Signals; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Demonstrates BindInteraction and the interaction types a view model and a view share. +public static class BindInteractionExamples +{ + /// The amount of a transfer large enough to need an approval code. + private const decimal LargeTransferAmount = 1200M; + + /// The position of Ben Carter on the Introduction to Programming roster. + private const int BenRosterIndex = 1; + + /// The number of the issue the interaction examples ask about. + private const int CheckoutIssueNumber = 101; + + /// The message of an exception a host raises when nobody answers close confirmations. + private const string NobodyAnswersMessage = "Nobody answers close confirmations."; + + /// The answer of the handler registered first. + private const string FirstAnswer = "first"; + + /// The answer of the handler registered last. + private const string LatestAnswer = "latest"; + + /// Binds before the view has a view model and moves the handler when the selected board changes. + /// A task that completes when both boards have answered. + public static async Task FollowTheSelectedIssueBoard() + { + IssueBoardView view = new(); + using IDisposable binding = view.BindInteraction(view.ViewModel, x => x.ConfirmClose, static context => + { + context.SetOutput(true); + return Task.CompletedTask; + }); + + Issue issue = new() { Number = CheckoutIssueNumber }; + IssueBoardViewModel first = new(InMemoryGitHubServer.CreateSeeded()); + view.ViewModel = first; + Console.WriteLine(await first.ConfirmClose.Handle(issue)); + + IssueBoardViewModel second = new(InMemoryGitHubServer.CreateSeeded()); + view.ViewModel = second; + Console.WriteLine(await second.ConfirmClose.Handle(issue)); + + try + { + _ = await first.ConfirmClose.Handle(issue); + } + catch (UnhandledInteractionException) + { + Console.WriteLine("The previous board has no handler."); + } + + // Output: + // True + // True + // The previous board has no handler. + } + + /// Answers the close confirmation through a task-based handler that waits for the user, so the close stays pending until the dialog is answered. + /// A task that completes when the issue is closed. + public static async Task ConfirmCloseWithTaskHandler() + { + IssueBoardViewModel viewModel = await OpenWebshopIssuesAsync(); + IssueBoardView view = new() { ViewModel = viewModel }; + TaskCompletionSource dialog = new(TaskCreationOptions.RunContinuationsAsynchronously); + + using IDisposable binding = view.BindInteraction(viewModel, x => x.ConfirmClose, async context => context.SetOutput(await dialog.Task)); + + Issue issue = viewModel.Issues[0]; + viewModel.SelectedIssue = issue; + Task closing = viewModel.CloseIssueAsync(); + + Console.WriteLine(closing.IsCompleted); + Console.WriteLine(issue.State); + + dialog.SetResult(true); + await closing; + + Console.WriteLine(issue.State); + + // Output: + // False + // Open + // Closed + } + + /// Answers the drop confirmation through an observable-based handler; the handler's sequence completes once the answer is set. + /// A task that completes when the second attempt has dropped the student. + public static async Task ConfirmDropWithObservableHandler() + { + GradebookViewModel viewModel = new(InMemoryStudentRecords.CreateSeeded()); + await viewModel.LoadCoursesAsync(); + viewModel.SelectedCourse = viewModel.Courses[0]; + await viewModel.OpenCourseAsync(); + viewModel.SelectedStudent = viewModel.Roster[BenRosterIndex]; + GradebookView view = new() { ViewModel = viewModel }; + bool teacherConfirms = false; + + using IDisposable binding = view.BindInteraction(viewModel, x => x.ConfirmDrop, context => + { + context.SetOutput(teacherConfirms); + return Signal.Return(context.Input.Student.Id); + }); + + await viewModel.DropAsync(); + + Console.WriteLine(viewModel.Roster.Count); + + teacherConfirms = true; + await viewModel.DropAsync(); + + Console.WriteLine(viewModel.Roster.Count); + + // Output: + // 3 + // 2 + } + + /// Binds an interaction that the view model exposes as . + /// A task that completes when the issue is closed. + public static async Task ConfirmCloseThroughInterfaceProperty() + { + IssueBoardViewModel board = await OpenWebshopIssuesAsync(); + IssueTriageViewModel viewModel = new(board); + IssueTriageView view = new() { ViewModel = viewModel }; + + using IDisposable binding = view.BindInteraction(viewModel, x => x.ConfirmClose, static context => + { + context.SetOutput(context.Input.State == IssueState.Open); + return Task.CompletedTask; + }); + + Issue issue = board.Issues[0]; + board.SelectedIssue = issue; + await board.CloseIssueAsync(); + + Console.WriteLine(issue.State); + + // Output: + // Closed + } + + /// Approves a large transfer in two steps: the view confirms the draft, and then the bank asks the view for a one-time code. + /// A task that completes when the transfer is sent. + public static async Task ApproveLargeTransferInTwoSteps() + { + var (viewModel, view) = await OpenTransferScreenAsync(); + + using IDisposable confirmation = view.BindInteraction(viewModel, x => x.ConfirmTransfer, static context => + { + Console.WriteLine("confirm"); + context.SetOutput(true); + return Task.CompletedTask; + }); + + using IDisposable approval = view.BindInteraction(viewModel, x => x.ApproveTransfer, static context => + { + Console.WriteLine("approve"); + context.SetOutput(InMemoryBankingBackend.ApprovalCode); + return Task.CompletedTask; + }); + + FillLargeTransfer(viewModel); + await viewModel.TransferAsync(); + + Console.WriteLine(viewModel.LastReceipt!.Amount); + + // Output: + // confirm + // approve + // 1200 + } + + /// Cancels a large transfer at the second step: an empty approval code tells the view model the customer gave up. + /// A task that completes when the view model has reported the cancellation. + public static async Task CancelTransferAtApprovalStep() + { + var (viewModel, view) = await OpenTransferScreenAsync(); + + using IDisposable confirmation = view.BindInteraction(viewModel, x => x.ConfirmTransfer, static context => + { + context.SetOutput(true); + return Task.CompletedTask; + }); + + using IDisposable approval = view.BindInteraction(viewModel, x => x.ApproveTransfer, static context => + { + context.SetOutput(string.Empty); + return Task.CompletedTask; + }); + + FillLargeTransfer(viewModel); + await viewModel.TransferAsync(); + + Console.WriteLine(viewModel.ErrorMessage); + Console.WriteLine(viewModel.LastReceipt is null); + + // Output: + // The transfer was cancelled. + // True + } + + /// Registers the three kinds of handler on an interaction; the handler registered last answers first, and disposing a registration removes it. + /// A task that completes when the last answer has been read. + public static async Task RegisterHandlersInReverseOrder() + { + Interaction approval = new(); + TransferDraft draft = new(); + using IDisposable first = approval.RegisterHandler(static context => context.SetOutput(FirstAnswer)); + using IDisposable ignoring = approval.RegisterHandler(static context => Signal.Return(context.IsHandled)); + IDisposable latest = approval.RegisterHandler(static context => + { + context.SetOutput(LatestAnswer); + return Task.CompletedTask; + }); + + Console.WriteLine(await approval.Handle(draft)); + + latest.Dispose(); + + Console.WriteLine(await approval.Handle(draft)); + + // Output: + // latest + // first + } + + /// Reads what a handler receives: the input, whether the interaction is handled, and the output once it is set. + /// A task that completes when the handler has run. + public static async Task InspectInteractionContext() + { + Interaction confirmClose = new(); + Issue issue = new() { Number = CheckoutIssueNumber }; + Issue? receivedInput = null; + bool handledBefore = true; + bool handledAfter = false; + bool isInteractionContext = false; + bool earlyReadRefused = false; + bool readBack = false; + bool secondAnswerRefused = false; + + using IDisposable registration = confirmClose.RegisterHandler(context => + { + receivedInput = context.Input; + handledBefore = context.IsHandled; + isInteractionContext = context is InteractionContext; + + IOutputContext output = (IOutputContext)context; + earlyReadRefused = RefusesWithInvalidOperation(() => output.GetOutput()); + + context.SetOutput(true); + handledAfter = context.IsHandled; + readBack = output.GetOutput(); + secondAnswerRefused = RefusesWithInvalidOperation(() => context.SetOutput(false)); + }); + + bool answer = await confirmClose.Handle(issue); + + Console.WriteLine(ReferenceEquals(issue, receivedInput)); + Console.WriteLine(handledBefore); + Console.WriteLine(handledAfter); + Console.WriteLine(isInteractionContext); + Console.WriteLine(earlyReadRefused); + Console.WriteLine(readBack); + Console.WriteLine(secondAnswerRefused); + Console.WriteLine(answer); + + // Output: + // True + // False + // True + // True + // True + // True + // True + // True + } + + /// Casts the context a handler receives to , the class that holds the input and the answer. + /// A task that completes when the answer has been read. + public static async Task AnswerThroughInteractionContext() + { + Interaction confirmClose = new(); + Issue issue = new() { Number = CheckoutIssueNumber }; + + using IDisposable registration = confirmClose.RegisterHandler(static context => + { + InteractionContext answer = (InteractionContext)context; + + Console.WriteLine(answer.Input.Number); + Console.WriteLine(answer.IsHandled); + + answer.SetOutput(true); + + Console.WriteLine(answer.IsHandled); + Console.WriteLine(answer.GetOutput()); + }); + + Console.WriteLine(await confirmClose.Handle(issue)); + + // Output: + // 101 + // False + // True + // True + // True + } + + /// Closes an issue while no view has bound a handler; the close faults with . + /// A task that completes when the failure has been read. + public static async Task CloseIssueWithoutHandler() + { + IssueBoardViewModel viewModel = await OpenWebshopIssuesAsync(); + Issue issue = viewModel.Issues[0]; + viewModel.SelectedIssue = issue; + UnhandledInteractionException? failure = null; + + try + { + await viewModel.CloseIssueAsync(); + } + catch (UnhandledInteractionException ex) + { + failure = ex; + } + + Console.WriteLine(failure is not null); + Console.WriteLine(failure!.Message); + Console.WriteLine(ReferenceEquals(issue, failure.Input)); + Console.WriteLine(ReferenceEquals(viewModel.ConfirmClose, failure.Interaction)); + Console.WriteLine(issue.State); + + // Output: + // True + // Failed to find a registration for an Interaction. + // True + // True + // Open + } + + /// + /// Derives from to keep an audit trail: the subclass overrides Handle, + /// reads the registered handlers with GetHandlers and wraps the context that GenerateContext creates. + /// + /// A task that completes when the approval has been given. + public static async Task AuditApprovalWithDerivedInteraction() + { + AuditedInteraction approval = new(); + using IDisposable issuer = approval.RegisterHandler(static context => context.SetOutput(InMemoryBankingBackend.ApprovalCode)); + using IDisposable observer = approval.RegisterHandler(static context => Signal.Return(context.IsHandled)); + + string code = await approval.Handle(LargeTransferAmount); + + Console.WriteLine(code); + + // Output: + // ask 1200 of 2 handlers + // answer 482913 + // 482913 + } + + /// Stops handling once the binding is disposed: the next question goes unanswered. + /// A task that completes when the second question has failed. + public static async Task DisposeBindingRemovesHandler() + { + IssueBoardViewModel viewModel = await OpenWebshopIssuesAsync(); + IssueBoardView view = new() { ViewModel = viewModel }; + Issue issue = viewModel.Issues[0]; + IDisposable binding = view.BindInteraction(viewModel, x => x.ConfirmClose, static context => + { + context.SetOutput(false); + return Task.CompletedTask; + }); + + Console.WriteLine(await viewModel.ConfirmClose.Handle(issue)); + + binding.Dispose(); + + bool unanswered = false; + try + { + _ = await viewModel.ConfirmClose.Handle(issue); + } + catch (UnhandledInteractionException) + { + unanswered = true; + } + + Console.WriteLine(unanswered); + + // Output: + // False + // True + } + + /// Binds while the view has no view model yet: nothing is registered, nothing throws, and disposing the binding is safe. + public static void BindInteractionWithoutViewModel() + { + IssueBoardView view = new(); + IssueBoardViewModel? viewModel = null; + int handlerRuns = 0; + + IDisposable binding = view.BindInteraction(viewModel, x => x.ConfirmClose, context => + { + handlerRuns++; + context.SetOutput(true); + return Task.CompletedTask; + }); + + binding.Dispose(); + + Console.WriteLine(handlerRuns); + + // Output: + // 0 + } + + /// Creates with each constructor it offers. + public static void ConstructUnhandledInteractionException() + { + Interaction confirmClose = new(); + Issue issue = new() { Number = CheckoutIssueNumber }; + InvalidOperationException cause = new("The dialog host has shut down."); + + UnhandledInteractionException empty = new(); + UnhandledInteractionException withMessage = new(NobodyAnswersMessage); + UnhandledInteractionException withCause = new(NobodyAnswersMessage, cause); + UnhandledInteractionException forQuestion = new(confirmClose, issue); + + Console.WriteLine(empty.Interaction is null); + Console.WriteLine(withMessage.Message); + Console.WriteLine(ReferenceEquals(cause, withCause.InnerException)); + Console.WriteLine(forQuestion.Message); + Console.WriteLine(ReferenceEquals(confirmClose, forQuestion.Interaction)); + Console.WriteLine(ReferenceEquals(issue, forQuestion.Input)); + + // Output: + // True + // Nobody answers close confirmations. + // True + // Failed to find a registration for an Interaction. + // True + // True + } + + /// Registers each kind of handler on an interaction, asks a question and removes a handler, using only . + /// A task that completes when the last answer has been read. + public static async Task HandleThroughInterface() + { + IssueTriageViewModel triage = new(new(InMemoryGitHubServer.CreateSeeded())); + Interaction confirmClose = triage.ConfirmClose; + Issue issue = new() { Number = CheckoutIssueNumber }; + using IDisposable declines = confirmClose.RegisterHandler(static context => context.SetOutput(false)); + using IDisposable asksAgain = confirmClose.RegisterHandler(static context => Signal.Return(context.IsHandled)); + IDisposable confirms = confirmClose.RegisterHandler(static context => + { + context.SetOutput(true); + return Task.CompletedTask; + }); + + Console.WriteLine(await confirmClose.Handle(issue)); + + confirms.Dispose(); + + Console.WriteLine(await confirmClose.Handle(issue)); + + // Output: + // True + // False + } + + /// Asks the question as an observable with WhenHandled: nothing is asked until it is subscribed, and each subscription asks again. + /// A task that completes when both answers have been read. + public static async Task AskAsAnObservable() + { + Interaction confirmClose = new(); + Issue issue = new() { Number = CheckoutIssueNumber }; + int asked = 0; + using IDisposable registration = confirmClose.RegisterHandler(context => + { + asked++; + context.SetOutput(true); + }); + + IObservable question = confirmClose.WhenHandled(issue); + + Console.WriteLine(asked); + Console.WriteLine(await Signal.ToTask(question)); + Console.WriteLine(await Signal.ToTask(question)); + Console.WriteLine(asked); + + // Output: + // 0 + // True + // True + // 2 + } + + /// Asks the question through , whose Handle returns an observable. + /// A task that completes when the answer has been read. + public static async Task AskThroughInterfaceAsAnObservable() + { + IInteraction confirmClose = new Interaction(); + Issue issue = new() { Number = CheckoutIssueNumber }; + using IDisposable registration = confirmClose.RegisterHandler(static context => context.SetOutput(context.Input.Number == CheckoutIssueNumber)); + + IObservable question = confirmClose.Handle(issue); + + Console.WriteLine(await Signal.ToTask(question)); + + // Output: + // True + } + + /// Runs every handler on the scheduler the interaction was created with; an app passes its main thread's scheduler so a dialog opens on the UI thread. + /// A task that completes when the answer has been read. + public static async Task AnswerOnTheHandlerScheduler() + { + Interaction confirmClose = new(TaskPoolSequencer.Default); + Issue issue = new() { Number = CheckoutIssueNumber }; + using IDisposable registration = confirmClose.RegisterHandler(static context => + { + Console.WriteLine(Thread.CurrentThread.IsThreadPoolThread); + context.SetOutput(true); + }); + + Console.WriteLine(await confirmClose.Handle(issue)); + + // Output: + // True + // True + } + + /// Runs an action and reports whether it threw . + /// The action to run. + /// when the action threw. + private static bool RefusesWithInvalidOperation(Action action) + { + try + { + action(); + return false; + } + catch (InvalidOperationException) + { + return true; + } + } + + /// Fills the transfer draft with a payment to the utility that needs an approval code. + /// The transfer view model. + private static void FillLargeTransfer(TransferViewModel viewModel) + { + viewModel.Draft.Source = viewModel.Accounts[0]; + viewModel.Draft.Payee = viewModel.Payees[0]; + viewModel.Draft.Amount = LargeTransferAmount; + } + + /// Loads the accounts and payees of the transfer screen. + /// A task that completes with the view model and its view. + private static async Task<(TransferViewModel ViewModel, TransferView View)> OpenTransferScreenAsync() + { + TransferViewModel viewModel = new(new InMemoryBankingBackend()); + + await viewModel.LoadAsync(); + return (viewModel, new() { ViewModel = viewModel }); + } + + /// Signs in as Priya Nair and loads the open issues of the webshop repository. + /// A task that completes with the view model once the issues are loaded. + private static async Task OpenWebshopIssuesAsync() + { + IssueBoardViewModel viewModel = new(InMemoryGitHubServer.CreateSeeded()) { Token = InMemoryGitHubServer.PriyaToken }; + + await viewModel.SignInAsync(); + viewModel.SelectedRepository = viewModel.Repositories[0]; + await viewModel.LoadIssuesAsync(); + return viewModel; + } +} diff --git a/src/examples/Documentation/Pages/bindings/BindToExamples.cs b/src/examples/Documentation/Pages/bindings/BindToExamples.cs new file mode 100644 index 00000000..13bf1b9c --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/BindToExamples.cs @@ -0,0 +1,227 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Banking; +using ReactiveUI.Binding.Documentation.CloudStorage; +using ReactiveUI.Binding.Documentation.Todo; +using ReactiveUI.Primitives; +using ReactiveUI.Primitives.Signals; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Shows how BindTo writes each value of an observable onto a property. +public static class BindToExamples +{ + /// The size of the file the upload example sends: four 4 MiB parts. + private const long UploadSizeBytes = 16_777_216; + + /// The number that turns an upload percentage into the fraction a progress bar shows. + private const double PercentPerBar = 100D; + + /// The number of decimal places a hint asks for. + private const int TwoDecimalPlaces = 2; + + /// The number format that groups digits and shows no decimals. + private const string GroupedFormat = "N0"; + + /// The text the user types into the filter box. + private const string DentistFilter = "dentist"; + + /// Fills a progress bar from the upload percentage; each value is converted to the fraction the bar shows. + /// A task that completes when the example finishes. + public static async Task BindUploadPercentToProgressBar() + { + StorageBrowserViewModel browser = await OpenBucketAsync(); + StorageBrowserView view = new(); + + using (browser.WhenChanged(x => x.UploadPercent).Select(static percent => percent / PercentPerBar).BindTo(view, v => v.UploadProgressBar.Progress)) + { + Console.WriteLine(view.UploadProgressBar.Progress); + + await browser.UploadAsync(new("launch-video.mp4", UploadSizeBytes, "video/mp4")); + Console.WriteLine(view.UploadProgressBar.Progress); + } + + // Output: + // 0 + // 1 + } + + /// Shows a count as text: the value type differs from the property type, so the registered converter for the pair runs. Disposing stops the writes. + /// A task that completes when the example finishes. + public static async Task BindRemainingCountToLabel() + { + TodoListViewModel list = await OpenTodoListAsync(); + TodoView view = new(); + + using (list.WhenChanged(x => x.RemainingCount).BindTo(view, v => v.RemainingLabel.Text)) + { + Console.WriteLine(view.RemainingLabel.Text); + + list.SelectedItem = list.Items[0]; + await list.CompleteAsync(); + Console.WriteLine(view.RemainingLabel.Text); + } + + list.SelectedItem = list.Items[1]; + await list.CompleteAsync(); + Console.WriteLine(view.RemainingLabel.Text); + + // Output: + // 3 + // 2 + // 2 + } + + /// Passes a conversion hint: the converter reads a whole number as the count of decimal places. + /// A task that completes when the example finishes. + public static async Task BindTotalBalanceWithDecimalPlacesHint() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountsView view = new(); + + using (accounts.WhenChanged(x => x.TotalBalance).BindTo(view, v => v.TotalBalanceLabel.Text, TwoDecimalPlaces)) + { + Console.WriteLine(view.TotalBalanceLabel.Text); + } + + // Output: + // 17680.75 + } + + /// Passes a conversion hint that is a number format. The argument is named because a text in that position would bind to the caller's expression parameter. + /// A task that completes when the example finishes. + public static async Task BindTotalBalanceWithFormatHint() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountsView view = new(); + + using (accounts.WhenChanged(x => x.TotalBalance).BindTo(view, v => v.TotalBalanceLabel.Text, conversionHint: GroupedFormat)) + { + Console.WriteLine(view.TotalBalanceLabel.Text); + } + + // Output: + // 17,681 + } + + /// Names the converter for this binding, which outranks every converter the library registers. + /// A task that completes when the example finishes. + public static async Task BindTotalBalanceWithConverterOverride() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountsView view = new(); + + using (accounts.WhenChanged(x => x.TotalBalance).BindTo(view, v => v.TotalBalanceLabel.Text, new CurrencyTextConverter())) + { + Console.WriteLine(view.TotalBalanceLabel.Text); + } + + // Output: + // $17,680.75 + } + + /// Names the converter and gives it a hint. + /// A task that completes when the example finishes. + public static async Task BindTotalBalanceWithHintAndConverterOverride() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountsView view = new(); + + using (accounts.WhenChanged(x => x.TotalBalance).BindTo(view, v => v.TotalBalanceLabel.Text, GroupedFormat, new CurrencyTextConverter())) + { + Console.WriteLine(view.TotalBalanceLabel.Text); + } + + // Output: + // $17,681 + } + + /// Feeds a view event into a view model property: each text the user types into the filter box narrows the list. + /// A task that completes when the example finishes. + public static async Task BindTypedTextEventsToFilter() + { + TodoListViewModel list = await OpenTodoListAsync(); + TodoView view = new(); + IObservable typedTexts = Signal.FromEventPattern(handler => view.FilterTextBox.TextChanged += handler, handler => view.FilterTextBox.TextChanged -= handler) + .Select(static pattern => pattern.EventArgs.NewTextValue); + + using (typedTexts.BindTo(list, x => x.FilterText)) + { + Console.WriteLine(list.Items.Count); + + view.FilterTextBox.Text = DentistFilter; + + Console.WriteLine(list.FilterText); + Console.WriteLine(list.Items.Count); + } + + // Output: + // 4 + // dentist + // 1 + } + + /// + /// Writes a value that arrives on a background thread. BindTo hands each write to the label's owning thread, so the + /// stream needs no ObserveOn; a console process has no UI thread, so here the write runs where the value arrived. + /// + public static void BindBackgroundConnectionStateToLabel() + { + InMemoryObjectStorage storage = InMemoryObjectStorage.CreateSeeded(); + StorageBrowserViewModel browser = new(storage); + StorageBrowserView view = new(); + int callerThread = Environment.CurrentManagedThreadId; + + using (browser.WhenChanged(x => x.ConnectionStatus) + .Do(state => Console.WriteLine($"{state} arrived on another thread: {Environment.CurrentManagedThreadId != callerThread}")) + .Select(static state => state.ToString()) + .BindTo(view, v => v.ConnectionLabel.Text)) + { + // The connection drops on a thread of its own, as a socket callback does. + Thread socketThread = new(storage.Disconnect); + socketThread.Start(); + socketThread.Join(); + + Console.WriteLine(view.ConnectionLabel.Text); + } + + // Output: + // Connected arrived on another thread: False + // Disconnected arrived on another thread: True + // Disconnected + } + + /// Loads the seeded to-do list. + /// A task that completes with the list, which holds three unfinished items and one finished item. + private static async Task OpenTodoListAsync() + { + TodoListViewModel list = new(InMemoryTodoStore.CreateSeeded()); + + await list.LoadAsync(); + return list; + } + + /// Loads the accounts of the seeded bank. + /// A task that completes with the accounts screen, which lists an everyday and a savings account and has nothing selected. + private static async Task OpenAccountsAsync() + { + AccountsViewModel accounts = new(new InMemoryBankingBackend()); + + await accounts.LoadAccountsAsync(); + return accounts; + } + + /// Lists the buckets of the storage service and picks the first. + /// A task that completes with the browser, which has a bucket selected. + private static async Task OpenBucketAsync() + { + StorageBrowserViewModel browser = new(InMemoryObjectStorage.CreateSeeded()); + + await browser.LoadBucketsAsync(); + browser.SelectedBucket = browser.Buckets[0]; + return browser; + } +} diff --git a/src/examples/Documentation/Pages/bindings/BindingErrorExamples.cs b/src/examples/Documentation/Pages/bindings/BindingErrorExamples.cs new file mode 100644 index 00000000..11e77e61 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/BindingErrorExamples.cs @@ -0,0 +1,180 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Reflection; +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Banking; +using ReactiveUI.Primitives.Signals; +using Splat; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Shows what a binding does when a write to the target faults. +public static class BindingErrorExamples +{ + /// A reference that fits on a statement. + private const string ShortReference = "Rent March"; + + /// A reference the customer types later. + private const string AprilReference = "Rent April"; + + /// A reference that is longer than the bank prints. + private const string LongReference = "Rent for the flat on Harbour Street"; + + /// A reference the conversion function cannot show. + private const string ForbiddenReference = "forbidden"; + + /// The expression a binding names when it reports a fault. + private const string BoundExpression = "x => x.Reference"; + + /// The message of a fault a conversion function raises. + private const string ConversionMessage = "The reference is not allowed."; + + /// The message of the exception a conversion function wraps. + private const string CauseMessage = "The reference list is unavailable."; + + /// Registers a logger that writes each entry of the application to the console. + public static void RegisterConsoleLogger() => + AppLocator.CurrentMutable.RegisterConstant(new ConsoleLogger { ExceptionMessageFormat = "{0}" }); + + /// + /// Raises a fault with no inner exception, as the sequence feeding a write ending in error does. The binding logs the + /// fault against its expression and rethrows nothing, because the caller can observe the sequence itself. + /// + public static void FaultWithoutInnerExceptionIsLogged() + { + TransferDraft draft = new() { Reference = ShortReference }; + Label label = new(); + + using (draft.BindOneWay(label, x => x.Reference, v => v.Text, static reference => reference == ForbiddenReference ? throw new InvalidOperationException(ConversionMessage) : reference)) + { + Console.WriteLine(label.Text); + + draft.Reference = ForbiddenReference; + + // The faulted sequence has ended, so the binding writes nothing more. + draft.Reference = ShortReference; + Console.WriteLine(label.Text); + draft.Reference = AprilReference; + Console.WriteLine(label.Text); + } + + // Output: + // Rent March + // LogHost: v => v.Text Binding received an Exception! (OnError) + // Rent March + // Rent March + } + + /// + /// Raises a fault that wraps a cause, as a setter or converter that threw does. The binding logs it and rethrows it + /// as a that names the bound expression and carries the cause. + /// + public static void FaultWithInnerExceptionIsRethrown() + { + TransferDraft draft = new() { Reference = ShortReference }; + Label label = new(); + InvalidOperationException cause = new(CauseMessage); + + using (draft.BindOneWay(label, x => x.Reference, v => v.Text, reference => reference == ForbiddenReference ? throw new InvalidOperationException(ConversionMessage, cause) : reference)) + { + try + { + draft.Reference = ForbiddenReference; + } + catch (TargetInvocationException ex) + { + Console.WriteLine(ReferenceEquals(cause, ex.InnerException)); + Console.WriteLine(ex.Message); + } + } + + // Output: + // LogHost: v => v.Text Binding received an Exception! (OnError) + // True + // v => v.Text Binding received an Exception! + } + + /// + /// Writes to a target whose setter throws. The setter runs on the thread that raised the change, so the exception + /// reaches whoever changed the view model property, and a binding created over a bad value throws while it is created. + /// + public static void SetterThatThrowsReachesTheCaller() + { + TransferDraft draft = new() { Reference = ShortReference }; + StatementReferenceView field = new(); + + using (draft.BindOneWay(field, x => x.Reference, v => v.Reference)) + { + Console.WriteLine(field.Reference); + + try + { + draft.Reference = LongReference; + } + catch (ArgumentException ex) + { + Console.WriteLine(ex.Message); + } + } + + Console.WriteLine(field.Reference); + + try + { + using IDisposable second = draft.BindOneWay(field, x => x.Reference, v => v.Reference); + } + catch (ArgumentException ex) + { + Console.WriteLine(ex.Message); + } + + // Output: + // Rent March + // A statement reference has at most 18 characters. (Parameter 'value') + // Rent March + // A statement reference has at most 18 characters. (Parameter 'value') + } + + /// Applies the fault contract directly with : values reach the write, and each kind of fault is handled as a binding handles it. + public static void SubscribeAppliesTheFaultContract() + { + List written = []; + Signal values = new(); + Signal withoutCause = new(); + Signal withCause = new(); + InvalidOperationException cause = new(CauseMessage); + + using (BindingErrors.Subscribe(values, written.Add, BoundExpression)) + using (BindingErrors.Subscribe(withoutCause, written.Add, BoundExpression)) + using (BindingErrors.Subscribe(withCause, written.Add, BoundExpression)) + { + values.OnNext(ShortReference); + values.OnCompleted(); + + Console.WriteLine(string.Join(", ", written)); + + // A fault with no cause is logged. + withoutCause.OnError(new InvalidOperationException(ConversionMessage)); + + // A fault with a cause is logged and rethrown, wrapped with the bound expression. + try + { + withCause.OnError(new InvalidOperationException(ConversionMessage, cause)); + } + catch (TargetInvocationException ex) + { + Console.WriteLine(ReferenceEquals(cause, ex.InnerException)); + Console.WriteLine(ex.Message.Contains(BoundExpression, StringComparison.Ordinal)); + } + } + + // Output: + // Rent March + // LogHost: x => x.Reference Binding received an Exception! (OnError) + // LogHost: x => x.Reference Binding received an Exception! (OnError) + // True + // True + } +} diff --git a/src/examples/Documentation/Pages/bindings/BindingHookExamples.cs b/src/examples/Documentation/Pages/bindings/BindingHookExamples.cs new file mode 100644 index 00000000..ce7c3184 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/BindingHookExamples.cs @@ -0,0 +1,226 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using ReactiveUI.Binding.Documentation.Banking; +using Splat; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Shows how an sees, and can refuse, each binding as it is created. +public static class BindingHookExamples +{ + /// A name the customer types for the everyday account. + private const string RenamedEverydayName = "Household Account"; + + /// Creates a one-way binding with no hook registered: is false, so the binding asks nobody. + /// A task that completes when the example finishes. + public static async Task BindWithoutHook() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new(); + + Console.WriteLine(BindingHooks.Any); + + using (accounts.BindOneWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + Console.WriteLine(view.NameTextBox.Text); + } + + // Output: + // False + // Everyday Account + } + + /// Writes down every binding that is created: each of the four binding methods asks the hook once, with its direction. + /// A task that completes when the example finishes. + public static async Task LogEveryBinding() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new() { ViewModel = accounts }; + + AppLocator.CurrentMutable.RegisterConstant(new LoggingBindingHook("log")); + BindingHooks.Refresh(); + + Console.WriteLine(BindingHooks.Any); + + using (accounts.BindOneWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + using (accounts.BindTwoWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + using (view.OneWayBind(accounts, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + using (view.Bind(accounts, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + Console.WriteLine("all four bound"); + } + + RemoveHooks(); + + // Output: + // True + // log: OneWay: AccountsViewModel -> AccountNameView + // log: TwoWay: AccountsViewModel -> AccountNameView + // log: OneWay: AccountsViewModel -> AccountNameView + // log: TwoWay: AccountsViewModel -> AccountNameView + // all four bound + } + + /// Refuses two-way bindings on the accounts screen: the account is shown, and an edit in the view never reaches it. + /// A task that completes when the example finishes. + public static async Task VetoTwoWayBinding() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new(); + string everydayName = accounts.SelectedAccount!.Name; + + AppLocator.CurrentMutable.RegisterConstant(new ReadOnlyAccountHook()); + BindingHooks.Refresh(); + + using (accounts.BindTwoWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + // The refused binding is an empty disposable: nothing was written to the view either. + Console.WriteLine($"'{view.NameTextBox.Text}'"); + + view.NameTextBox.Text = RenamedEverydayName; + Console.WriteLine(accounts.SelectedAccount.Name == everydayName); + } + + // One-way bindings pass the hook. + using (accounts.BindOneWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + Console.WriteLine(view.NameTextBox.Text); + } + + RemoveHooks(); + + // With the hook gone the same two-way binding writes the edit to the account. + using (accounts.BindTwoWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + view.NameTextBox.Text = RenamedEverydayName; + Console.WriteLine(accounts.SelectedAccount.Name); + } + + // Output: + // read-only: refused a two-way binding + // '' + // True + // Everyday Account + // Household Account + } + + /// A refused view-first binding returns no binding, so the caller receives . + /// A task that completes when the example finishes. + public static async Task VetoViewFirstBinding() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new() { ViewModel = accounts }; + + AppLocator.CurrentMutable.RegisterConstant(new ReadOnlyAccountHook()); + BindingHooks.Refresh(); + + IReactiveBinding refused = view.Bind(accounts, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text); + using IReactiveBinding allowed = view.OneWayBind(accounts, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text); + + Console.WriteLine(refused is null); + Console.WriteLine(allowed is null); + Console.WriteLine(view.NameTextBox.Text); + + RemoveHooks(); + + // Output: + // read-only: refused a two-way binding + // True + // False + // Everyday Account + } + + /// Asks the registered hooks directly. One refusal is enough, and the hooks after it are not asked. + /// A task that completes when the example finishes. + public static async Task AskHooksDirectly() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new(); + + AppLocator.CurrentMutable.RegisterConstant(new LoggingBindingHook("first")); + AppLocator.CurrentMutable.RegisterConstant(new ReadOnlyAccountHook()); + AppLocator.CurrentMutable.RegisterConstant(new LoggingBindingHook("last")); + BindingHooks.Refresh(); + + bool oneWay = BindingHooks.ShouldBind(accounts, view, Observed(accounts), Observed(view), BindingDirection.OneWay); + bool twoWay = BindingHooks.ShouldBind(accounts, view, Observed(accounts), Observed(view), BindingDirection.TwoWay); + + Console.WriteLine(oneWay); + Console.WriteLine(twoWay); + + RemoveHooks(); + + // Output: + // first: OneWay: AccountsViewModel -> AccountNameView + // last: OneWay: AccountsViewModel -> AccountNameView + // first: TwoWay: AccountsViewModel -> AccountNameView + // read-only: refused a two-way binding + // True + // False + } + + /// Makes a hook registered after the first binding visible: reads the registrations once, until . + /// A task that completes when the example finishes. + public static async Task RefreshAfterLateRegistration() + { + AccountsViewModel accounts = await OpenAccountsAsync(); + AccountNameView view = new(); + + Console.WriteLine(BindingHooks.Any); + + AppLocator.CurrentMutable.RegisterConstant(new LoggingBindingHook("late")); + + // The hook is registered, but the registrations were read before it arrived, so this binding does not ask it. + using (accounts.BindOneWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + Console.WriteLine("bound without the hook"); + } + + BindingHooks.Refresh(); + + Console.WriteLine(BindingHooks.Any); + + using (accounts.BindOneWay(view, x => x.SelectedAccount!.Name, v => v.NameTextBox.Text)) + { + Console.WriteLine("bound with the hook"); + } + + RemoveHooks(); + + Console.WriteLine(BindingHooks.Any); + + // Output: + // False + // bound without the hook + // True + // late: OneWay: AccountsViewModel -> AccountNameView + // bound with the hook + // False + } + + /// Reads what a hook is handed: the objects being bound, and a reader for the current values on each side. + /// The object whose values the reader returns. + /// A function that reads the object as one observed change. + private static Func[]> Observed(object root) => + () => [new ObservedChange(root, null, root)]; + + /// Removes every registered hook and tells to read the registrations again. + private static void RemoveHooks() + { + AppLocator.CurrentMutable.UnregisterAll(); + BindingHooks.Refresh(); + } + + /// Loads the accounts of the seeded bank and selects the everyday account. + /// A task that completes with the accounts screen, which has the everyday account selected. + private static async Task OpenAccountsAsync() + { + AccountsViewModel accounts = new(new InMemoryBankingBackend()); + + await accounts.LoadAccountsAsync(); + accounts.SelectedAccount = accounts.Accounts[0]; + return accounts; + } +} diff --git a/src/examples/Documentation/Pages/bindings/ClickedCommandBinder.cs b/src/examples/Documentation/Pages/bindings/ClickedCommandBinder.cs new file mode 100644 index 00000000..e0f2d436 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/ClickedCommandBinder.cs @@ -0,0 +1,63 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using System.Windows.Input; +using Microsoft.Maui.Controls; +using ReactiveUI.Primitives; +using ReactiveUI.Primitives.Disposables; +using ReactiveUI.Primitives.Signals; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Runs a command when a raises , or when any object raises the event a caller names. +public sealed class ClickedCommandBinder : ICreatesCommandBinding +{ + /// + public int GetAffinityForObject(bool hasEventTarget) => + typeof(Button).IsAssignableFrom(typeof(T)) ? BindingAffinity.ExactType : 0; + + /// + public IDisposable? BindCommandToObject(ICommand? command, T? target, IObservable commandParameter) + where T : class => + target is Button button + ? BindCommandToObject( + command, + button, + commandParameter, + handler => button.Clicked += new EventHandler(handler), + handler => button.Clicked -= new EventHandler(handler)) + : null; + + /// + public IDisposable? BindCommandToObject(ICommand? command, T? target, IObservable commandParameter, string eventName) + where T : class + { + Console.WriteLine($"The binder is asked for the {eventName} event, which carries {typeof(TEventArgs).Name}"); + + return eventName == nameof(Button.Clicked) ? BindCommandToObject(command, target, commandParameter) : null; + } + + /// + public IDisposable? BindCommandToObject( + ICommand? command, + T? target, + IObservable commandParameter, + Action> addHandler, + Action> removeHandler) + where T : class + where TEventArgs : EventArgs + { + if (command is null) + { + return null; + } + + BehaviorSignal parameter = new(null); + + return new MultipleDisposable( + commandParameter.Subscribe(parameter.OnNext), + Signal.FromEventPattern(addHandler, removeHandler).Subscribe(_ => command.Execute(parameter.Value)), + parameter); + } +} diff --git a/src/examples/Documentation/Pages/bindings/CreatesCommandBindingExamples.cs b/src/examples/Documentation/Pages/bindings/CreatesCommandBindingExamples.cs new file mode 100644 index 00000000..e026cfb0 --- /dev/null +++ b/src/examples/Documentation/Pages/bindings/CreatesCommandBindingExamples.cs @@ -0,0 +1,113 @@ +// Copyright (c) 2019-2026 ReactiveUI and Contributors. All rights reserved. +// ReactiveUI and Contributors licenses this file to you under the MIT license. +// See the LICENSE file in the project root for full license information. + +using Microsoft.Maui.Controls; +using ReactiveUI.Binding.Documentation.Todo; +using ReactiveUI.Primitives.Signals; + +namespace ReactiveUI.Binding.Documentation.Bindings; + +/// Shows , the plug-in that attaches a command to a control, by asking a binder directly. +public static class CreatesCommandBindingExamples +{ + /// The name of the event a MAUI button raises when the user presses it. + private const string ClickedEventName = "Clicked"; + + /// The name of an event the button does not have. + private const string PressedEventName = "Pressed"; + + /// The text of the filter the customer types. + private const string CarFilter = "car"; + + /// Asks a binder how well it fits two controls: the score is positive for a button and zero for an entry box. + public static void AskBinderForAffinity() + { + ICreatesCommandBinding binder = ChooseBinder(); + + Console.WriteLine(binder.GetAffinityForObject